summaryrefslogtreecommitdiff
path: root/src/gpgpu-sim/shader.h
diff options
context:
space:
mode:
authorWilson Fung <[email protected]>2012-02-19 06:02:32 -0800
committerAndrew Boktor <[email protected]>2014-08-14 13:19:03 -0700
commit85ff8940cb900dff92f459d9d24a0597997e41b7 (patch)
tree28814b5fd3fd00e557b0b964197f59e2cf6914b1 /src/gpgpu-sim/shader.h
parent141d3315afb01d0b9b73480578e536a2d4e2f176 (diff)
Grouped all instruction counting code into a common member function in shader_core_ctx. Now m_num_sim_insn counts scalar thread instructions. A new counter is added for warp instructions.
[git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 11472]
Diffstat (limited to 'src/gpgpu-sim/shader.h')
-rw-r--r--src/gpgpu-sim/shader.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/gpgpu-sim/shader.h b/src/gpgpu-sim/shader.h
index d367b7f..1d86f02 100644
--- a/src/gpgpu-sim/shader.h
+++ b/src/gpgpu-sim/shader.h
@@ -990,7 +990,8 @@ struct shader_core_config : public core_config
};
struct shader_core_stats_pod {
- unsigned *m_num_sim_insn; // number of instructions committed by this shader core
+ unsigned *m_num_sim_insn; // number of scalar thread instructions committed by this shader core
+ unsigned *m_num_sim_winsn; // number of warp instructions committed by this shader core
unsigned *m_n_diverge; // number of divergence occurring in this shader
unsigned gpgpu_n_load_insn;
unsigned gpgpu_n_store_insn;
@@ -1031,6 +1032,7 @@ public:
memset(pod,0,sizeof(shader_core_stats_pod));
m_num_sim_insn = (unsigned*) calloc(config->num_shader(),sizeof(unsigned));
+ m_num_sim_winsn = (unsigned*) calloc(config->num_shader(),sizeof(unsigned));
m_n_diverge = (unsigned*) calloc(config->num_shader(),sizeof(unsigned));
shader_cycle_distro = (unsigned*) calloc(config->warp_size+3, sizeof(unsigned));
last_shader_cycle_distro = (unsigned*) calloc(m_config->warp_size+3, sizeof(unsigned));
@@ -1144,6 +1146,7 @@ public:
void store_ack( class mem_fetch *mf );
bool warp_waiting_at_mem_barrier( unsigned warp_id );
void set_max_cta( const kernel_info_t &kernel );
+ void warp_inst_complete(const warp_inst_t &inst);
// accessors
std::list<unsigned> get_regs_written( const inst_t &fvt ) const;