diff options
| -rw-r--r-- | CHANGES | 2 | ||||
| -rw-r--r-- | src/gpgpu-sim/power_interface.cc | 2 | ||||
| -rw-r--r-- | src/gpuwattch/gpgpu_sim_wrapper.cc | 23 | ||||
| -rw-r--r-- | src/gpuwattch/gpgpu_sim_wrapper.h | 2 |
4 files changed, 25 insertions, 4 deletions
@@ -65,7 +65,7 @@ Version 3.2.0+edits (development branch) versus 3.2.0 operation was broken - Fixed a bug in setup_enironment that trashed your LD_LIBRARY_PATH if GPGPUSIM_ROOT was not the first entry in the list;. - - Fixed a GPUWattch bug where the performance counters were not being correctly + - Fixed a GPUWattch bug where the performance counters were not being correctly reset when a kernel completes. Version 3.2.0 versus 3.1.2 diff --git a/src/gpgpu-sim/power_interface.cc b/src/gpgpu-sim/power_interface.cc index 4ff6cf2..0c67039 100644 --- a/src/gpgpu-sim/power_interface.cc +++ b/src/gpgpu-sim/power_interface.cc @@ -124,5 +124,5 @@ void mcpat_cycle(const gpgpu_sim_config &config, const struct shader_core_config } void mcpat_reset_perf_count(class gpgpu_sim_wrapper *wrapper, bool do_print){ - wrapper->reset_perf_counters(do_print); + wrapper->reset_counters(do_print); } diff --git a/src/gpuwattch/gpgpu_sim_wrapper.cc b/src/gpuwattch/gpgpu_sim_wrapper.cc index bfcf4a1..df90de5 100644 --- a/src/gpuwattch/gpgpu_sim_wrapper.cc +++ b/src/gpuwattch/gpgpu_sim_wrapper.cc @@ -224,7 +224,7 @@ void gpgpu_sim_wrapper::init_mcpat(char* xmlfile, char* powerfilename, char* pow } -void gpgpu_sim_wrapper::reset_perf_counters(bool do_print){ +void gpgpu_sim_wrapper::reset_counters(bool do_print){ if(do_print) print_trace_files(); @@ -234,6 +234,27 @@ void gpgpu_sim_wrapper::reset_perf_counters(bool do_print){ for(unsigned i=0; i<num_pwr_cmps; ++i){ pwr_cmp_avg[i]= 0; } + + for(unsigned i=0; i<num_pwr_cmps; ++i){ + pwr_cmp_max[i]= 0; + } + + for(unsigned i=0; i<num_pwr_cmps; ++i){ + pwr_cmp_min[i]= 0; + } + + for(unsigned i=0; i<num_pwr_cmps; ++i){ + perf_count_avg[i]= 0; + } + + for(unsigned i=0; i<num_pwr_cmps; ++i){ + perf_count_min[i]= 0; + } + + for(unsigned i=0; i<num_pwr_cmps; ++i){ + perf_count_max[i]= 0; + } + return; } diff --git a/src/gpuwattch/gpgpu_sim_wrapper.h b/src/gpuwattch/gpgpu_sim_wrapper.h index 115db43..f37d4f8 100644 --- a/src/gpuwattch/gpgpu_sim_wrapper.h +++ b/src/gpuwattch/gpgpu_sim_wrapper.h @@ -61,7 +61,7 @@ public: void print_trace_files(); void update_components_power(); void update_coefficients(); - void reset_perf_counters(bool do_print); + void reset_counters(bool do_print); void print_power_kernel_stats(double gpu_sim_cycle, double gpu_tot_sim_cycle, double init_value, const std::string & kernel_info_string); void power_metrics_calculations(); void set_inst_power(bool clk_gated_lanes, double tot_cycles, double busy_cycles, double tot_inst, double int_inst, double fp_inst, double load_inst, double store_inst, double committed_inst); |
