From 85ff8940cb900dff92f459d9d24a0597997e41b7 Mon Sep 17 00:00:00 2001 From: Wilson Fung Date: Sun, 19 Feb 2012 06:02:32 -0800 Subject: 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] --- src/gpgpu-sim/shader.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/gpgpu-sim/shader.h') 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 get_regs_written( const inst_t &fvt ) const; -- cgit v1.3