summaryrefslogtreecommitdiff
path: root/src/gpgpu-sim/shader.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpgpu-sim/shader.cc')
-rw-r--r--src/gpgpu-sim/shader.cc117
1 files changed, 17 insertions, 100 deletions
diff --git a/src/gpgpu-sim/shader.cc b/src/gpgpu-sim/shader.cc
index 5c3d698..ef3a8c0 100644
--- a/src/gpgpu-sim/shader.cc
+++ b/src/gpgpu-sim/shader.cc
@@ -79,36 +79,13 @@
#include "../cuda-sim/cuda-sim.h"
#include "gpu-sim.h"
#include "mem_fetch.h"
+#include "mem_latency_stat.h"
+#include "visualizer.h"
#include <string.h>
#define PRIORITIZE_MSHR_OVER_WB 1
#define MAX(a,b) (((a)>(b))?(a):(b))
-extern int gpgpu_memlatency_stat;
-extern dram_t **dram;
-extern int *num_warps_issuable;
-extern int *num_warps_issuable_pershader;
-
-extern unsigned long long gpu_sim_insn;
-extern unsigned long long gpu_sim_insn_no_ld_const;
-extern unsigned long long gpu_sim_insn_last_update;
-extern unsigned long long gpu_completed_thread;
-extern unsigned long long gpu_sim_cycle;
-extern shader_core_ctx_t **sc;
-extern unsigned int gpgpu_pre_mem_stages;
-extern int gpgpu_no_divg_load;
-extern unsigned int gpgpu_thread_swizzling;
-extern unsigned int gpgpu_strict_simd_wrbk;
-extern unsigned int warp_conflict_at_writeback;
-extern unsigned int gpgpu_commit_pc_beyond_two;
-extern int gpgpu_spread_blocks_across_cores;
-extern int gpgpu_cflog_interval;
-
-extern unsigned int gpu_stall_by_MSHRwb;
-extern unsigned int gpu_stall_shd_mem;
-extern unsigned int gpu_stall_sh2icnt;
-extern int gpgpu_operand_collector;
-
enum mem_stage_access_type {
C_MEM,
T_MEM,
@@ -130,23 +107,15 @@ enum mem_stage_stall_type {
WB_CACHE_RSRV_FAIL,
N_MEM_STAGE_STALL_TYPE
};
-unsigned int gpu_stall_shd_mem_breakdown[N_MEM_STAGE_ACCESS_TYPE][N_MEM_STAGE_STALL_TYPE] = { {0} };
+unsigned int gpu_stall_shd_mem_breakdown[N_MEM_STAGE_ACCESS_TYPE][N_MEM_STAGE_STALL_TYPE] = { {0} };
unsigned warp_size = 4;
int pipe_simd_width;
-extern unsigned int **totalbankaccesses; //bankaccesses[shader id][dram chip id][bank id]
-extern unsigned int *MCB_accesses; //upon cache miss, tracks which memory controllers accessed by a warp
-extern unsigned int *num_MCBs_accessed; //tracks how many memory controllers are accessed whenever any thread in a warp misses in cache
-extern unsigned int *max_return_queue_length;
-
unsigned int *shader_cycle_distro;
-
unsigned int g_waiting_at_barrier = 0;
-
unsigned int gpgpu_shmem_size = 16384;
unsigned int gpgpu_shader_registers = 8192;
unsigned int gpgpu_shader_cta = 8;
-
unsigned int gpgpu_n_load_insn = 0;
unsigned int gpgpu_n_store_insn = 0;
unsigned int gpgpu_n_shmem_insn = 0;
@@ -154,77 +123,25 @@ unsigned int gpgpu_n_tex_insn = 0;
unsigned int gpgpu_n_const_insn = 0;
unsigned int gpgpu_n_param_insn = 0;
unsigned int gpgpu_multi_unq_fetches = 0;
-
-extern int gpgpu_cache_wt_through;
-
-int gpgpu_shmem_bkconflict = 0;
+int gpgpu_shmem_bkconflict = 0;
unsigned int gpgpu_n_shmem_bkconflict = 0;
-int gpgpu_n_shmem_bank = 16;
-
-int gpgpu_cache_bkconflict = 0;
+int gpgpu_n_shmem_bank = 16;
+int gpgpu_cache_bkconflict = 0;
unsigned int gpgpu_n_cache_bkconflict = 0;
unsigned int gpgpu_n_cmem_portconflict = 0;
-int gpgpu_n_cache_bank = 16;
-
-extern int gpu_runtime_stat_flag;
-int gpgpu_warpdistro_shader = -1;
-
-int gpgpu_interwarp_mshr_merge = 0;
-int gpgpu_n_intrawarp_mshr_merge = 0;
-
-extern int gpgpu_partial_write_mask;
-int gpgpu_n_partial_writes = 0;
-
-extern int gpgpu_n_mem_write_local;
-extern int gpgpu_n_mem_write_global;
-
-#ifndef MhZ
- #define MhZ *1000000
-#endif
-extern double core_freq;
-extern double icnt_freq;
-extern double dram_freq;
-extern double l2_freq;
-
-int gpgpu_shmem_port_per_bank = 4;
-int gpgpu_cache_port_per_bank = 4;
-int gpgpu_const_port_per_bank = 4;
-int gpgpu_shmem_pipe_speedup = 2;
-
+int gpgpu_n_cache_bank = 16;
+int gpgpu_warpdistro_shader = -1;
+int gpgpu_interwarp_mshr_merge = 0;
+int gpgpu_n_intrawarp_mshr_merge = 0;
+int gpgpu_n_partial_writes = 0;
+int gpgpu_shmem_port_per_bank = 4;
+int gpgpu_cache_port_per_bank = 4;
+int gpgpu_const_port_per_bank = 4;
+int gpgpu_shmem_pipe_speedup = 2;
unsigned int gpu_max_cta_per_shader = 8;
unsigned int gpu_padded_cta_size = 32;
-int gpgpu_local_mem_map = 1;
-
-
-int gpgpu_operand_collector_num_units = 4;
-
-extern int pdom_sched_type;
-extern int n_pdom_sc_orig_stat;
-extern int n_pdom_sc_single_stat;
-extern int gpgpu_cuda_sim;
-extern unsigned long long gpu_tot_sim_cycle;
-
-void ptx_decode_inst( void *thd, unsigned *op, int *i1, int *i2, int *i3, int *i4, int *o1, int *o2, int *o3, int *o4, int *vectorin, int *vectorout, int *arch_reg );
-void ptx_exec_inst( void *thd, address_type *addr, memory_space_t *space, unsigned *data_size, dram_callback_t* callback, unsigned warp_active_mask);
-void ptx_sim_free_sm( class ptx_thread_info** thread_info );
-unsigned ptx_sim_init_thread( class ptx_thread_info** thread_info, int sid, unsigned tid,unsigned threads_left,unsigned num_threads, core_t *core, unsigned hw_cta_id, unsigned hw_warp_id);
-unsigned ptx_sim_cta_size();
-const struct gpgpu_ptx_sim_kernel_info* ptx_sim_kernel_info();
-void set_option_gpgpu_spread_blocks_across_cores(int option);
-int ptx_thread_done( void *thr );
-unsigned ptx_thread_donecycle( void *thr );
-int ptx_thread_get_next_pc( void *thd );
-void* ptx_thread_get_next_finfo( void *thd );
-int ptx_thread_at_barrier( void *thd );
-int ptx_thread_all_at_barrier( void *thd );
-unsigned long long ptx_thread_get_cta_uid( void *thd );
-void ptx_thread_reset_barrier( void *thd );
-void ptx_thread_release_barrier( void *thd );
-void ptx_print_insn( address_type pc, FILE *fp );
-int ptx_set_tex_cache_linesize( unsigned linesize);
-void time_vector_update(unsigned int uid,int slot ,long int cycle,int type);
-
-
+int gpgpu_local_mem_map = 1;
+int gpgpu_operand_collector_num_units = 4;
/////////////////////////////////////////////////////////////////////////////
/*-------------------------------------------------------------------------*/