summaryrefslogtreecommitdiff
path: root/src/gpgpu-sim
diff options
context:
space:
mode:
authorTayler Hetherington <[email protected]>2013-07-04 13:30:23 -0800
committerAndrew Boktor <[email protected]>2014-08-14 13:50:57 -0700
commitded72b7697f0244aa789e25330b58674797929b0 (patch)
tree5fd610d011a29d6ddd02f482b179efef3421a08f /src/gpgpu-sim
parent9143e9bb4ea104933c7cda3de5abbd3b923bf67e (diff)
Review 62001: Fixing bug where labels "WarpIssueSlotBreakdown" and "WarpIssueDynamicIdBreakdown" are being printed in the visualization files without any data.
[git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 16572]
Diffstat (limited to 'src/gpgpu-sim')
-rw-r--r--src/gpgpu-sim/shader.cc54
1 files changed, 31 insertions, 23 deletions
diff --git a/src/gpgpu-sim/shader.cc b/src/gpgpu-sim/shader.cc
index e3b1ac5..767fb36 100644
--- a/src/gpgpu-sim/shader.cc
+++ b/src/gpgpu-sim/shader.cc
@@ -465,18 +465,22 @@ void shader_core_stats::visualizer_print( gzFile visualizer_file )
// warp issue breakdown
unsigned sid = m_config->gpgpu_warp_issue_shader;
- gzprintf(visualizer_file, "WarpIssueSlotBreakdown:");
unsigned count = 0;
unsigned warp_id_issued_sum = 0;
- for ( std::vector<unsigned>::const_iterator iter = m_shader_warp_slot_issue_distro[ sid ].begin();
- iter != m_shader_warp_slot_issue_distro[ sid ].end(); iter++, count++ ) {
- unsigned diff = count < m_last_shader_warp_slot_issue_distro.size() ?
- *iter - m_last_shader_warp_slot_issue_distro[ count ] :
- *iter;
- gzprintf( visualizer_file, " %d", diff );
- warp_id_issued_sum += diff;
+ gzprintf(visualizer_file, "WarpIssueSlotBreakdown:");
+ if(m_shader_warp_slot_issue_distro[sid].size() > 0){
+ for ( std::vector<unsigned>::const_iterator iter = m_shader_warp_slot_issue_distro[ sid ].begin();
+ iter != m_shader_warp_slot_issue_distro[ sid ].end(); iter++, count++ ) {
+ unsigned diff = count < m_last_shader_warp_slot_issue_distro.size() ?
+ *iter - m_last_shader_warp_slot_issue_distro[ count ] :
+ *iter;
+ gzprintf( visualizer_file, " %d", diff );
+ warp_id_issued_sum += diff;
+ }
+ m_last_shader_warp_slot_issue_distro = m_shader_warp_slot_issue_distro[ sid ];
+ }else{
+ gzprintf( visualizer_file, " 0");
}
- m_last_shader_warp_slot_issue_distro = m_shader_warp_slot_issue_distro[ sid ];
gzprintf(visualizer_file,"\n");
#define DYNAMIC_WARP_PRINT_RESOLUTION 32
@@ -484,25 +488,29 @@ void shader_core_stats::visualizer_print( gzFile visualizer_file )
unsigned dynamic_id_issued_sum = 0;
count = 0;
gzprintf(visualizer_file, "WarpIssueDynamicIdBreakdown:");
- for ( std::vector<unsigned>::const_iterator iter = m_shader_dynamic_warp_issue_distro[ sid ].begin();
- iter != m_shader_dynamic_warp_issue_distro[ sid ].end(); iter++, count++ ) {
- unsigned diff = count < m_last_shader_dynamic_warp_issue_distro.size() ?
- *iter - m_last_shader_dynamic_warp_issue_distro[ count ] :
- *iter;
- total_issued_this_resolution += diff;
- if ( ( count + 1 ) % DYNAMIC_WARP_PRINT_RESOLUTION == 0 ) {
+ if(m_shader_dynamic_warp_issue_distro[sid].size() > 0){
+ for ( std::vector<unsigned>::const_iterator iter = m_shader_dynamic_warp_issue_distro[ sid ].begin();
+ iter != m_shader_dynamic_warp_issue_distro[ sid ].end(); iter++, count++ ) {
+ unsigned diff = count < m_last_shader_dynamic_warp_issue_distro.size() ?
+ *iter - m_last_shader_dynamic_warp_issue_distro[ count ] :
+ *iter;
+ total_issued_this_resolution += diff;
+ if ( ( count + 1 ) % DYNAMIC_WARP_PRINT_RESOLUTION == 0 ) {
+ gzprintf( visualizer_file, " %d", total_issued_this_resolution );
+ dynamic_id_issued_sum += total_issued_this_resolution;
+ total_issued_this_resolution = 0;
+ }
+ }
+ if ( count % DYNAMIC_WARP_PRINT_RESOLUTION != 0 ) {
gzprintf( visualizer_file, " %d", total_issued_this_resolution );
dynamic_id_issued_sum += total_issued_this_resolution;
- total_issued_this_resolution = 0;
}
+ m_last_shader_dynamic_warp_issue_distro = m_shader_dynamic_warp_issue_distro[ sid ];
+ assert( warp_id_issued_sum == dynamic_id_issued_sum );
+ }else{
+ gzprintf( visualizer_file, " 0");
}
- if ( count % DYNAMIC_WARP_PRINT_RESOLUTION != 0 ) {
- gzprintf( visualizer_file, " %d", total_issued_this_resolution );
- dynamic_id_issued_sum += total_issued_this_resolution;
- }
- m_last_shader_dynamic_warp_issue_distro = m_shader_dynamic_warp_issue_distro[ sid ];
gzprintf(visualizer_file,"\n");
- assert( warp_id_issued_sum == dynamic_id_issued_sum );
// overall cache miss rates
gzprintf(visualizer_file, "gpgpu_n_cache_bkconflict: %d\n", gpgpu_n_cache_bkconflict);