summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick <[email protected]>2019-08-26 13:42:10 -0400
committerNick <[email protected]>2019-08-26 13:42:10 -0400
commit2a6788b59055b5ce694882a282af0cc6311854d4 (patch)
treed4857830bca95258cf98f7e8699ded359d2376c3
parent2f5b3332c9b9b3fa9fea43d61276bddb24aa7df2 (diff)
Fix a bunch of outstanding warnings and undefined behavior
-rw-r--r--libcuda/cuda_runtime_api.cc10
-rw-r--r--src/abstract_hardware_model.h18
-rw-r--r--src/cuda-sim/cuda-sim.cc18
-rw-r--r--src/cuda-sim/instructions.cc74
-rw-r--r--src/cuda-sim/ptx_parser.cc2
-rw-r--r--src/gpgpu-sim/addrdec.cc2
-rw-r--r--src/gpgpu-sim/addrdec.h2
-rw-r--r--src/gpgpu-sim/dram.cc9
-rw-r--r--src/gpgpu-sim/gpu-cache.cc6
-rw-r--r--src/gpgpu-sim/gpu-sim.cc10
-rw-r--r--src/gpgpu-sim/l2cache.cc6
-rw-r--r--src/gpgpu-sim/local_interconnect.cc2
-rw-r--r--src/gpgpu-sim/scoreboard.cc4
-rw-r--r--src/gpgpu-sim/shader.cc14
-rw-r--r--src/gpgpu-sim/shader.h6
15 files changed, 82 insertions, 101 deletions
diff --git a/libcuda/cuda_runtime_api.cc b/libcuda/cuda_runtime_api.cc
index 10a651a..43a5864 100644
--- a/libcuda/cuda_runtime_api.cc
+++ b/libcuda/cuda_runtime_api.cc
@@ -548,7 +548,7 @@ __host__ cudaError_t CUDARTAPI cudaDeviceGetLimitInternal( size_t* pValue, cudaL
break;
}
else{
- printf("ERROR:Limit %s is not supported on this architecture \n",limit);
+ printf("ERROR:Limit %d is not supported on this architecture \n", limit);
abort();
}
case 4: // cudaLimitDevRuntimePendingLaunchCount
@@ -557,12 +557,12 @@ __host__ cudaError_t CUDARTAPI cudaDeviceGetLimitInternal( size_t* pValue, cudaL
break;
}
else{
- printf("ERROR:Limit %s is not supported on this architecture \n",limit);
+ printf("ERROR:Limit %d is not supported on this architecture \n",limit);
abort();
}
#endif
default:
- printf("ERROR:Limit %s unimplemented \n",limit);
+ printf("ERROR:Limit %d unimplemented \n",limit);
abort();
}
return g_last_cudaError = cudaSuccess;
@@ -2471,7 +2471,6 @@ void cuda_runtime_api::extract_ptx_files_using_cuobjdump(CUctx_st *context){
while (std::getline(infile, line))
{
//int pos = line.find(std::string(get_app_binary_name(app_binary)));
- const char *ptx_file = line.c_str();
int pos1 = line.find("sm_");
int pos2 = line.find_last_of(".");
if (pos1==std::string::npos&&pos2==std::string::npos){
@@ -2499,11 +2498,10 @@ void cuda_runtime_api::extract_ptx_files_using_cuobjdump(CUctx_st *context){
* */
void cuda_runtime_api::extract_code_using_cuobjdump(){
CUctx_st *context = GPGPUSim_Context();
- unsigned forced_max_capability = context->get_device()->get_gpgpu()->get_config().get_forced_max_capability();
//prevent the dumping by cuobjdump everytime we execute the code!
const char *override_cuobjdump = getenv("CUOBJDUMP_SIM_FILE");
- char command[1000], ptx_file[1000];
+ char command[1000];
std::string app_binary = get_app_binary();
//Running cuobjdump using dynamic link to current process
snprintf(command,1000,"md5sum %s ", app_binary.c_str());
diff --git a/src/abstract_hardware_model.h b/src/abstract_hardware_model.h
index d13b8c6..1982e04 100644
--- a/src/abstract_hardware_model.h
+++ b/src/abstract_hardware_model.h
@@ -519,10 +519,10 @@ private:
int checkpoint_option;
int checkpoint_kernel;
int checkpoint_CTA;
- int resume_option;
- int resume_kernel;
- int resume_CTA;
- int checkpoint_CTA_t;
+ unsigned resume_option;
+ unsigned resume_kernel;
+ unsigned resume_CTA;
+ unsigned checkpoint_CTA_t;
int checkpoint_insn_Y;
int g_ptx_inst_debug_to_file;
char* g_ptx_inst_debug_file;
@@ -540,10 +540,10 @@ public:
int checkpoint_option;
int checkpoint_kernel;
int checkpoint_CTA;
- int resume_option;
- int resume_kernel;
- int resume_CTA;
- int checkpoint_CTA_t;
+ unsigned resume_option;
+ unsigned resume_kernel;
+ unsigned resume_CTA;
+ unsigned checkpoint_CTA_t;
int checkpoint_insn_Y;
//Move some cycle core stats here instead of being global
@@ -992,7 +992,7 @@ public:
printf("Printing mem access generated\n");
std::list<mem_access_t>::iterator it;
for (it = m_accessq.begin(); it != m_accessq.end(); ++it){
- printf("MEM_TXN_GEN:%s:%x, Size:%d \n",mem_access_type_str(it->get_type()), it->get_addr(),it->get_size());
+ printf("MEM_TXN_GEN:%s:%llx, Size:%d \n",mem_access_type_str(it->get_type()), it->get_addr(),it->get_size());
}
}
}
diff --git a/src/cuda-sim/cuda-sim.cc b/src/cuda-sim/cuda-sim.cc
index b9e6552..f8d0b3e 100644
--- a/src/cuda-sim/cuda-sim.cc
+++ b/src/cuda-sim/cuda-sim.cc
@@ -1491,7 +1491,6 @@ static unsigned get_tex_datasize( const ptx_instruction *pI, ptx_thread_info *th
const operand_info &src1 = pI->src1(); //the name of the texture
std::string texname = src1.name();
- gpgpu_t *gpu = thread->get_gpu();
/*
For programs with many streams, textures can be bound and unbound
asynchronously. This means we need to use the kernel's "snapshot" of
@@ -1577,7 +1576,7 @@ void ptx_thread_info::ptx_exec_inst( warp_inst_t &inst, unsigned lane_id)
}
//Tensorcore is warp synchronous operation. So these instructions needs to be executed only once. To make the simulation faster removing the redundant tensorcore operation
- if(!tensorcore_op(inst_opcode)||(tensorcore_op(inst_opcode))&&(lane_id==0)){
+ if(!tensorcore_op(inst_opcode)||((tensorcore_op(inst_opcode))&&(lane_id==0))){
switch ( inst_opcode ) {
#define OP_DEF(OP,FUNC,STR,DST,CLASSIFICATION) case OP: FUNC(pI,this); op_classification = CLASSIFICATION; break;
#define OP_W_DEF(OP,FUNC,STR,DST,CLASSIFICATION) case OP: FUNC(pI,get_core(),inst); op_classification = CLASSIFICATION; break;
@@ -2141,13 +2140,7 @@ void cuda_sim::gpgpu_cuda_ptx_sim_main_func( kernel_info_t &kernel, bool openCL
unsigned max_cta_tot = max_cta(kernel_info,kernel.threads_per_cta(), g_the_gpu()->getShaderCoreConfig()->warp_size, g_the_gpu()->getShaderCoreConfig()->n_thread_per_shader, g_the_gpu()->getShaderCoreConfig()->gpgpu_shmem_size, g_the_gpu()->getShaderCoreConfig()->gpgpu_shader_registers, g_the_gpu()->getShaderCoreConfig()->max_cta_per_core);
printf("Max CTA : %d\n",max_cta_tot);
-
-
-
-
- int inst_count=50;
int cp_op= g_the_gpu()->checkpoint_option;
- int cp_CTA = g_the_gpu()->checkpoint_CTA;
int cp_kernel= g_the_gpu()->checkpoint_kernel;
cp_count= g_the_gpu()->checkpoint_insn_Y;
cp_cta_resume= g_the_gpu()->checkpoint_CTA_t;
@@ -2184,7 +2177,7 @@ void cuda_sim::gpgpu_cuda_ptx_sim_main_func( kernel_info_t &kernel, bool openCL
{
char f1name[2048];
snprintf(f1name,2048,"checkpoint_files/global_mem_%d.txt", kernel.get_uid() );
- g_checkpoint->store_global_mem(g_the_gpu()->get_global_memory(), f1name , "%08x");
+ g_checkpoint->store_global_mem(g_the_gpu()->get_global_memory(), f1name , (char *)"%08x");
}
@@ -2312,18 +2305,15 @@ void functionalCoreSim::execute(int inst_count, unsigned ctaid_cp)
checkpoint *g_checkpoint;
g_checkpoint = new checkpoint();
- symbol * sym;
ptx_reg_t regval;
regval.u64= 123;
- symbol_table * symtab= m_kernel->entry()->get_symtab();
-
unsigned ctaid =m_kernel->get_next_cta_id_single();
if(m_gpu->checkpoint_option==1 && (m_kernel->get_uid()==m_gpu->checkpoint_kernel) && (ctaid_cp>=m_gpu->checkpoint_CTA) && (ctaid_cp<m_gpu->checkpoint_CTA_t))
{
char fname[2048];
snprintf(fname,2048,"checkpoint_files/shared_mem_%d.txt",ctaid-1 );
- g_checkpoint->store_global_mem(m_thread[0]->m_shared_mem, fname , "%08x");
+ g_checkpoint->store_global_mem(m_thread[0]->m_shared_mem, fname , (char *)"%08x");
for(int i=0; i<32*m_warp_count;i++)
{
char fname[2048];
@@ -2331,7 +2321,7 @@ void functionalCoreSim::execute(int inst_count, unsigned ctaid_cp)
m_thread[i]->print_reg_thread(fname);
char f1name[2048];
snprintf(f1name,2048,"checkpoint_files/local_mem_thread_%d_%d_reg.txt",i,ctaid-1 );
- g_checkpoint->store_global_mem(m_thread[i]->m_local_mem, f1name , "%08x");
+ g_checkpoint->store_global_mem(m_thread[i]->m_local_mem, f1name , (char *)"%08x");
m_thread[i]->set_done();
m_thread[i]->exitCore();
m_thread[i]->registerExit();
diff --git a/src/cuda-sim/instructions.cc b/src/cuda-sim/instructions.cc
index 58a077e..a44b03f 100644
--- a/src/cuda-sim/instructions.cc
+++ b/src/cuda-sim/instructions.cc
@@ -203,7 +203,7 @@ void ptx_thread_info::print_reg_thread(char * fname)
const std::string &name = it->first->name();
const std::string &dec= it->first->decl_location();
unsigned size = it->first->get_size_in_bytes();
- fprintf(fp,"%s %llu %s %d\n",name.c_str(),it->second, dec.c_str(),size );
+ fprintf(fp,"%s %llu %s %d\n", name.c_str(), it->second, dec.c_str(), size);
}
//m_regs.pop_back();
@@ -232,7 +232,6 @@ void ptx_thread_info::resume_reg_thread(char * fname, symbol_table * symtab)
pch = strtok (NULL," ");
data = atoi(pch);
pch = strtok (NULL," ");
- char * decl= pch;
pch = strtok (NULL," ");
size = atoi(pch);
@@ -1819,9 +1818,7 @@ void mma_impl( const ptx_instruction *pI, core_t *core, warp_inst_t inst )
ptx_reg_t matrix_d[16][16];
ptx_reg_t src_data;
ptx_thread_info *thread;
- int stride;
- unsigned wmma_type = pI->get_wmma_type();
unsigned a_layout = pI->get_wmma_layout(0);
unsigned b_layout = pI->get_wmma_layout(1);
unsigned type = pI->get_type();
@@ -1833,7 +1830,6 @@ void mma_impl( const ptx_instruction *pI, core_t *core, warp_inst_t inst )
tid= inst.warp_id_func()*core->get_warp_size();
else
tid= inst.warp_id()*core->get_warp_size();
- unsigned thread_group_index;
float temp;
half temp2;
@@ -1847,9 +1843,9 @@ void mma_impl( const ptx_instruction *pI, core_t *core, warp_inst_t inst )
ptx_reg_t v[8];
thread->get_vector_operand_values( src_a, v, nelem );
if(core->get_gpu()->gpgpu_ctx->debug_tensorcore){
- printf("Thread%d_Iteration=%d\n:",thrd,operand_num);
- for(k=0;k<nelem;k++){
- printf("%x ",v[k].u64);
+ printf("Thread%d_Iteration=%d\n:", thrd, operand_num);
+ for(k = 0; k < nelem; k++){
+ printf("%llx ",v[k].u64);
}
printf("\n");
}
@@ -2027,7 +2023,7 @@ void mma_impl( const ptx_instruction *pI, core_t *core, warp_inst_t inst )
printf("thread%d:",thrd);
for(k=0;k<8;k++){
- printf("%x ",matrix_d[row_t[k]][col_t[k]].f16);
+ printf("%x ", (unsigned int)matrix_d[row_t[k]][col_t[k]].f16);
}
printf("\n");
}
@@ -2038,7 +2034,7 @@ void mma_impl( const ptx_instruction *pI, core_t *core, warp_inst_t inst )
nw_data4.s64=((matrix_d[row_t[6]][col_t[6]].s64 & 0xffff))|((matrix_d[row_t[7]][col_t[7]].s64&0xffff)<<16);
thread->set_vector_operand_values(dst,nw_data1,nw_data2,nw_data3,nw_data4);
if(core->get_gpu()->gpgpu_ctx->debug_tensorcore)
- printf("thread%d=%x,%x,%x,%x",thrd,nw_data1.s64,nw_data2.s64,nw_data3.s64,nw_data4.s64);
+ printf("thread%d=%llx,%llx,%llx,%llx", thrd, nw_data1.s64, nw_data2.s64, nw_data3.s64, nw_data4.s64);
}
else{
@@ -2298,9 +2294,8 @@ unsigned int saturatei(unsigned int a, unsigned int max)
ptx_reg_t f2x( ptx_reg_t x, unsigned from_width, unsigned to_width, int to_sign, int rounding_mode, int saturation_mode )
{
- half mytemp;
- float myfloat;
- half_float::half tmp_h;
+ half mytemp;
+ half_float::half tmp_h;
//assert( from_width == 32);
enum cudaRoundMode mode = cudaRoundZero;
@@ -3085,7 +3080,7 @@ void mma_st_impl( const ptx_instruction *pI, core_t *core, warp_inst_t &inst )
size_t size;
unsigned smid;
int t;
- int thrd,odd,inx,k;
+ int thrd, odd, inx, k;
ptx_thread_info *thread;
const operand_info &src = pI->operand_lookup(1);
@@ -3105,15 +3100,15 @@ void mma_st_impl( const ptx_instruction *pI, core_t *core, warp_inst_t &inst )
_memory_op_t insn_memory_op = pI->has_memory_read() ? memory_load : memory_store;
for (thrd=0; thrd < core->get_warp_size(); thrd++) {
thread = core->get_thread_info()[tid+thrd];
- odd=thrd%2;
- inx=thrd/2;
- ptx_reg_t addr_reg = thread->get_operand_value(src1, src, type, thread, 1);
+ odd= thrd % 2;
+ inx= thrd / 2;
+ ptx_reg_t addr_reg = thread->get_operand_value(src1, src, type, thread, 1);
ptx_reg_t src2_data = thread->get_operand_value(src2, src, type, thread, 1);
const operand_info &src_a= pI->operand_lookup(1);
unsigned nelem = src_a.get_vect_nelem();
ptx_reg_t* v= new ptx_reg_t[8];
thread->get_vector_operand_values( src_a, v, nelem );
- stride=src2_data.u32;
+ stride = src2_data.u32;
memory_space_t space = pI->get_space();
@@ -3130,9 +3125,9 @@ void mma_st_impl( const ptx_instruction *pI, core_t *core, warp_inst_t &inst )
}
decode_space(space,thread,src1,mem,addr);
- type_info_key::type_decode(type,size,t);
+ type_info_key::type_decode(type, size, t);
if(core->get_gpu()->gpgpu_ctx->debug_tensorcore)
- printf("mma_st: thrd=%d,addr=%x, fp(size=%d), stride=%d\n",thrd,addr_reg.u32,size,src2_data.u32);
+ printf("mma_st: thrd=%d, addr=%x, fp(size=%zu), stride=%d\n", thrd, addr_reg.u32, size, src2_data.u32);
addr_t new_addr = addr+thread_group_offset(thrd,wmma_type,wmma_layout,type,stride)*size/8;
addr_t push_addr;
@@ -3152,7 +3147,7 @@ void mma_st_impl( const ptx_instruction *pI, core_t *core, warp_inst_t &inst )
mem_txn_addr[num_mem_txn++]=push_addr;
if(core->get_gpu()->gpgpu_ctx->debug_tensorcore){
- printf("wmma:store:thread%d=%x,%x,%x,%x,%x,%x,%x,%x\n",thrd,v[0].s64,v[1].s64,v[2].s64,v[3].s64,v[4].s64,v[5].s64,v[6].s64,v[7].s64);
+ printf("wmma:store:thread%d=%llx,%llx,%llx,%llx,%llx,%llx,%llx,%llx\n",thrd,v[0].s64,v[1].s64,v[2].s64,v[3].s64,v[4].s64,v[5].s64,v[6].s64,v[7].s64);
float temp;
int l;
printf("thread=%d:",thrd);
@@ -3179,7 +3174,7 @@ void mma_st_impl( const ptx_instruction *pI, core_t *core, warp_inst_t &inst )
}
if(core->get_gpu()->gpgpu_ctx->debug_tensorcore)
- printf("wmma:store:thread%d=%x,%x,%x,%x,%x,%x,%x,%x\n",thrd,nw_v[0].s64,nw_v[1].s64,nw_v[2].s64,nw_v[3].s64,nw_v[4].s64,nw_v[5].s64,nw_v[6].s64,nw_v[7].s64);
+ printf("wmma:store:thread%d=%llx,%llx,%llx,%llx,%llx,%llx,%llx,%llx\n",thrd,nw_v[0].s64,nw_v[1].s64,nw_v[2].s64,nw_v[3].s64,nw_v[4].s64,nw_v[5].s64,nw_v[6].s64,nw_v[7].s64);
}
}
@@ -3238,11 +3233,11 @@ void mma_ld_impl( const ptx_instruction *pI, core_t *core, warp_inst_t &inst )
}
decode_space(space,thread,src1,mem,addr);
- type_info_key::type_decode(type,size,t);
+ type_info_key::type_decode(type, size, t);
ptx_reg_t data[16];
if(core->get_gpu()->gpgpu_ctx->debug_tensorcore)
- printf("mma_ld: thrd=%d,addr=%x, fpsize=%d, stride=%d\n",thrd,src1_data.u32,size,src2_data.u32);
+ printf("mma_ld: thrd=%d,addr=%x, fpsize=%zu, stride=%d\n", thrd, src1_data.u32, size, src2_data.u32);
addr_t new_addr = addr+thread_group_offset(thrd,wmma_type,wmma_layout,type,stride)*size/8;
addr_t fetch_addr;
@@ -3341,7 +3336,7 @@ void mma_ld_impl( const ptx_instruction *pI, core_t *core, warp_inst_t &inst )
if(type==F16_TYPE){
printf("\nmma_ld:thread%d= ",thrd);
for(i=0;i<16;i++){
- printf("%x ",data[i].u64);
+ printf("%llx ",data[i].u64);
}
printf("\n");
@@ -3361,7 +3356,7 @@ void mma_ld_impl( const ptx_instruction *pI, core_t *core, warp_inst_t &inst )
printf("\n");
printf("\nmma_ld:thread%d= ",thrd);
for(i=0;i<8;i++){
- printf("%x ",data[i].u64);
+ printf("%llx ",data[i].u64);
}
printf("\n");
}
@@ -3388,15 +3383,15 @@ void mma_ld_impl( const ptx_instruction *pI, core_t *core, warp_inst_t &inst )
else
thread->set_wmma_vector_operand_values(dst,nw_data[0],nw_data[1],nw_data[2],nw_data[3],nw_data[4],nw_data[5],nw_data[6],nw_data[7]);
if(core->get_gpu()->gpgpu_ctx->debug_tensorcore){
- printf("mma_ld:data[0].s64=%x,data[1].s64=%x,new_data[0].s64=%x\n",data[0].u64,data[1].u64,nw_data[0].u64);
- printf("mma_ld:data[2].s64=%x,data[3].s64=%x,new_data[1].s64=%x\n",data[2].u64,data[3].u64,nw_data[1].u64);
- printf("mma_ld:data[4].s64=%x,data[5].s64=%x,new_data[2].s64=%x\n",data[4].u64,data[5].u64,nw_data[2].u64);
- printf("mma_ld:data[6].s64=%x,data[7].s64=%x,new_data[3].s64=%x\n",data[6].u64,data[7].u64,nw_data[3].u64);
+ printf("mma_ld:data[0].s64=%llx,data[1].s64=%llx,new_data[0].s64=%llx\n",data[0].u64,data[1].u64,nw_data[0].u64);
+ printf("mma_ld:data[2].s64=%llx,data[3].s64=%llx,new_data[1].s64=%llx\n",data[2].u64,data[3].u64,nw_data[1].u64);
+ printf("mma_ld:data[4].s64=%llx,data[5].s64=%llx,new_data[2].s64=%llx\n",data[4].u64,data[5].u64,nw_data[2].u64);
+ printf("mma_ld:data[6].s64=%llx,data[7].s64=%llx,new_data[3].s64=%llx\n",data[6].u64,data[7].u64,nw_data[3].u64);
if(wmma_type!=LOAD_C){
- printf("mma_ld:data[8].s64=%x,data[9].s64=%x,new_data[4].s64=%x\n",data[8].u64,data[9].u64,nw_data[4].s64);
- printf("mma_ld:data[10].s64=%x,data[11].s64=%x,new_data[5].s64=%x\n",data[10].u64,data[11].u64,nw_data[5].u64);
- printf("mma_ld:data[12].s64=%x,data[13].s64=%x,new_data[6].s64=%x\n",data[12].u64,data[13].u64,nw_data[6].u64);
- printf("mma_ld:data[14].s64=%x,data[15].s64=%x,new_data[7].s64=%x\n",data[14].u64,data[15].u64,nw_data[3].u64);
+ printf("mma_ld:data[8].s64=%llx,data[9].s64=%llx,new_data[4].s64=%llx\n",data[8].u64,data[9].u64,nw_data[4].s64);
+ printf("mma_ld:data[10].s64=%llx,data[11].s64=%llx,new_data[5].s64=%llx\n",data[10].u64,data[11].u64,nw_data[5].u64);
+ printf("mma_ld:data[12].s64=%llx,data[13].s64=%llx,new_data[6].s64=%llx\n",data[12].u64,data[13].u64,nw_data[6].u64);
+ printf("mma_ld:data[14].s64=%llx,data[15].s64=%llx,new_data[7].s64=%llx\n",data[14].u64,data[15].u64,nw_data[3].u64);
}
}
}
@@ -4132,9 +4127,9 @@ int prmt_mode_present(int mode)
}
return returnval;
}
-int read_byte(int mode,int control,int d_sel_index,signed long long value){
+int read_byte(int mode, int control, int d_sel_index, signed long long value){
- int returnval;
+ int returnval = 0;
int prmt_f4e_mode[4][4]={{0,1,2,3},{1,2,3,4},{2,3,4,5},{3,4,5,6}};
int prmt_b4e_mode[4][4]={{0,7,6,5},{1,0,7,6},{2,1,0,7},{3,2,1,0}};
int prmt_rc8_mode[4][4]={{0,0,0,0},{1,1,1,1},{2,2,2,2},{3,3,3,3}};
@@ -4157,11 +4152,12 @@ int read_byte(int mode,int control,int d_sel_index,signed long long value){
case PRMT_RC8_MODE: returnval=prmt_rc8_mode[control][d_sel_index];break;
case PRMT_ECL_MODE: returnval=prmt_ecl_mode[control][d_sel_index];break;
case PRMT_ECR_MODE: returnval=prmt_ecr_mode[control][d_sel_index];break;
- case PRMT_RC16_MODE: returnval=prmt_rc16_mode[control][d_sel_index];break;
- default: printf("ERROR\n");break;
+ case PRMT_RC16_MODE: returnval=prmt_rc16_mode[control][d_sel_index];break;
+ // Change the default from printing "ERROR" to just asserting
+ default: assert(false);
}
}
- return (returnval<<8*d_sel_index);
+ return (returnval << 8 * d_sel_index);
}
void prmt_impl( const ptx_instruction *pI, ptx_thread_info *thread ) {
diff --git a/src/cuda-sim/ptx_parser.cc b/src/cuda-sim/ptx_parser.cc
index 81b70af..a4f4a0c 100644
--- a/src/cuda-sim/ptx_parser.cc
+++ b/src/cuda-sim/ptx_parser.cc
@@ -421,7 +421,7 @@ void ptx_recognizer::add_identifier( const char *identifier, int array_dim, unsi
assert( (num_bits%8) == 0 );
addr = g_current_symbol_table->get_sstarr_next();
addr_pad = pad_address(addr, num_bits/8, 128);
- printf("from 0x%x to 0x%lx (sstarr memory space)\n",
+ printf("from 0x%llx to 0x%llx (sstarr memory space)\n",
addr+addr_pad,
addr+addr_pad + num_bits/8);
fflush(stdout);
diff --git a/src/gpgpu-sim/addrdec.cc b/src/gpgpu-sim/addrdec.cc
index ca88ec9..09bbc3c 100644
--- a/src/gpgpu-sim/addrdec.cc
+++ b/src/gpgpu-sim/addrdec.cc
@@ -182,7 +182,7 @@ void linear_to_raw_address_translation::addrdec_tlx(new_addr_type addr, addrdec_
}
assert(tlx->chip < m_n_channel);
- assert(tlx->sub_partition < m_n_channel*m_n_sub_partition_in_channel);
+ assert(tlx->sub_partition < m_n_channel * m_n_sub_partition_in_channel);
return;
break;
}
diff --git a/src/gpgpu-sim/addrdec.h b/src/gpgpu-sim/addrdec.h
index a5333fb..c9a1420 100644
--- a/src/gpgpu-sim/addrdec.h
+++ b/src/gpgpu-sim/addrdec.h
@@ -92,7 +92,7 @@ private:
new_addr_type sub_partition_id_mask;
unsigned int gap;
- int m_n_channel;
+ unsigned m_n_channel;
int m_n_sub_partition_in_channel;
};
diff --git a/src/gpgpu-sim/dram.cc b/src/gpgpu-sim/dram.cc
index d443d79..9c33822 100644
--- a/src/gpgpu-sim/dram.cc
+++ b/src/gpgpu-sim/dram.cc
@@ -482,7 +482,6 @@ void dram_t::cycle()
bool memory_pending_rw_found=false;
for (unsigned j=0;j<m_config->nbk;j++) {
- unsigned grp = get_bankgrp_number(j);
if (bk[j]->mrq && (((bk[j]->curr_row == bk[j]->mrq->row) &&
(bk[j]->mrq->rw == READ) &&
(bk[j]->state == BANK_ACTIVE))
@@ -817,10 +816,10 @@ void dram_t::visualize() const
void dram_t::print_stat( FILE* simFile )
{
- fprintf(simFile,"DRAM (%llu): n_cmd=%llu n_nop=%llu n_act=%llu n_pre=%llu n_ref=%llu n_req=%llu n_rd=%llu n_write=%llu bw_util=%.4g ",
+ fprintf(simFile,"DRAM (%u): n_cmd=%llu n_nop=%llu n_act=%llu n_pre=%llu n_ref=%llu n_req=%llu n_rd=%llu n_write=%llu bw_util=%.4g ",
id, n_cmd, n_nop, n_act, n_pre, n_ref, n_req, n_rd, n_wr,
(float)bwutil/n_cmd);
- fprintf(simFile, "mrqq: %d %.4g mrqsmax=%d ", max_mrqs, (float)ave_mrqs/n_cmd, max_mrqs_temp);
+ fprintf(simFile, "mrqq: %d %.4g mrqsmax=%llu ", max_mrqs, (float)ave_mrqs/n_cmd, max_mrqs_temp);
fprintf(simFile, "\n");
fprintf(simFile, "dram_util_bins:");
for (unsigned i=0;i<10;i++) fprintf(simFile, " %d", dram_util_bins[i]);
@@ -899,10 +898,10 @@ void dram_t::set_dram_power_stats( unsigned &cmd,
unsigned dram_t::get_bankgrp_number(unsigned i)
{
if(m_config->dram_bnkgrp_indexing_policy == HIGHER_BITS) { //higher bits
- return i>>m_config->bk_tag_length;
+ return i >> m_config->bk_tag_length;
}
else if (m_config->dram_bnkgrp_indexing_policy == LOWER_BITS) { //lower bits
- return i&((m_config->nbkgrp-1));
+ return i & ((m_config->nbkgrp - 1));
}
else {
assert(1);
diff --git a/src/gpgpu-sim/gpu-cache.cc b/src/gpgpu-sim/gpu-cache.cc
index 1705821..dec61db 100644
--- a/src/gpgpu-sim/gpu-cache.cc
+++ b/src/gpgpu-sim/gpu-cache.cc
@@ -777,7 +777,7 @@ void cache_stats::print_stats(FILE *fout, const char *cache_name) const{
}
for (unsigned type = 0; type < NUM_MEM_ACCESS_TYPE; ++type) {
if(total_access[type] > 0)
- fprintf(fout, "\t%s[%s][%s] = %llu\n",
+ fprintf(fout, "\t%s[%s][%s] = %u\n",
m_cache_name.c_str(),
mem_access_type_str((enum mem_access_type)type),
"TOTAL_ACCESS",
@@ -790,7 +790,7 @@ void cache_stats::print_fail_stats(FILE *fout, const char *cache_name) const{
for (unsigned type = 0; type < NUM_MEM_ACCESS_TYPE; ++type) {
for (unsigned fail = 0; fail < NUM_CACHE_RESERVATION_FAIL_STATUS; ++fail) {
if(m_fail_stats[type][fail] > 0){
- fprintf(fout, "\t%s[%s][%s] = %u\n",
+ fprintf(fout, "\t%s[%s][%s] = %llu\n",
m_cache_name.c_str(),
mem_access_type_str((enum mem_access_type)type),
cache_fail_status_str((enum cache_reservation_fail_reason)fail),
@@ -1417,8 +1417,6 @@ data_cache::wr_miss_wa_lazy_fetch_on_read( new_addr_type addr,
{
new_addr_type block_addr = m_config.block_addr(addr);
- new_addr_type mshr_addr = m_config.mshr_addr(mf->get_addr());
-
//if the request writes to the whole cache line/sector, then, write and set cache line Modified.
//and no need to send read request to memory or reserve mshr
diff --git a/src/gpgpu-sim/gpu-sim.cc b/src/gpgpu-sim/gpu-sim.cc
index e4ae04f..1f9a422 100644
--- a/src/gpgpu-sim/gpu-sim.cc
+++ b/src/gpgpu-sim/gpu-sim.cc
@@ -1101,8 +1101,8 @@ void gpgpu_sim::gpu_print_stat()
printf("gpu_tot_sim_insn = %lld\n", gpu_tot_sim_insn+gpu_sim_insn);
printf("gpu_tot_ipc = %12.4f\n", (float)(gpu_tot_sim_insn+gpu_sim_insn) / (gpu_tot_sim_cycle+gpu_sim_cycle));
printf("gpu_tot_issued_cta = %lld\n", gpu_tot_issued_cta + m_total_cta_launched);
- printf("gpu_occupancy = %.4f\% \n", gpu_occupancy.get_occ_fraction() * 100);
- printf("gpu_tot_occupancy = %.4f\% \n", (gpu_occupancy + gpu_tot_occupancy).get_occ_fraction() * 100);
+ printf("gpu_occupancy = %.4f%% \n", gpu_occupancy.get_occ_fraction() * 100);
+ printf("gpu_tot_occupancy = %.4f%% \n", (gpu_occupancy + gpu_tot_occupancy).get_occ_fraction() * 100);
fprintf(statfout, "max_total_param_size = %llu\n", gpgpu_ctx->device_runtime->g_max_total_param_size);
@@ -1343,7 +1343,7 @@ bool shader_core_ctx::occupy_shader_resource_1block(kernel_info_t & k, bool occu
m_occupied_regs += (padded_cta_size * ((kernel_info->regs+3)&~3));
m_occupied_ctas++;
- SHADER_DPRINTF(LIVENESS, "GPGPU-Sim uArch: Occupied %d threads, %d shared mem, %d registers, %d ctas\n",
+ SHADER_DPRINTF(LIVENESS, "GPGPU-Sim uArch: Occupied %u threads, %u shared mem, %u registers, %u ctas\n",
m_occupied_n_threads, m_occupied_shmem, m_occupied_regs, m_occupied_ctas);
}
@@ -1460,7 +1460,7 @@ void shader_core_ctx::issue_block2core( kernel_info_t &kernel )
nthreads_in_block += ptx_sim_init_thread(kernel,&m_thread[i],m_sid,i,cta_size-(i-start_thread),m_config->n_thread_per_shader,this,free_cta_hw_id,warp_id,m_cluster->get_gpu());
m_threadState[i].m_active = true;
// load thread local memory and register file
- if(m_gpu->resume_option==1 && kernel.get_uid()==m_gpu->resume_kernel && ctaid>=m_gpu->resume_CTA && ctaid<m_gpu->checkpoint_CTA_t )
+ if(m_gpu->resume_option == 1 && kernel.get_uid() == m_gpu->resume_kernel && ctaid >= m_gpu->resume_CTA && ctaid < m_gpu->checkpoint_CTA_t )
{
char fname[2048];
snprintf(fname,2048,"checkpoint_files/thread_%d_%d_reg.txt",i%cta_size,ctaid );
@@ -1475,7 +1475,7 @@ void shader_core_ctx::issue_block2core( kernel_info_t &kernel )
assert( nthreads_in_block > 0 && nthreads_in_block <= m_config->n_thread_per_shader); // should be at least one, but less than max
m_cta_status[free_cta_hw_id]=nthreads_in_block;
- if(m_gpu->resume_option==1 && kernel.get_uid()==m_gpu->resume_kernel && ctaid>=m_gpu->resume_CTA && ctaid<m_gpu->checkpoint_CTA_t )
+ if(m_gpu->resume_option == 1 && kernel.get_uid() == m_gpu->resume_kernel && ctaid >= m_gpu->resume_CTA && ctaid < m_gpu->checkpoint_CTA_t )
{
char f1name[2048];
snprintf(f1name,2048,"checkpoint_files/shared_mem_%d.txt", ctaid);
diff --git a/src/gpgpu-sim/l2cache.cc b/src/gpgpu-sim/l2cache.cc
index 6540b52..862461f 100644
--- a/src/gpgpu-sim/l2cache.cc
+++ b/src/gpgpu-sim/l2cache.cc
@@ -82,7 +82,7 @@ void memory_partition_unit::handle_memcpy_to_gpu( size_t addr, unsigned global_s
unsigned p = global_sub_partition_id_to_local_id(global_subpart_id);
std::string mystring =
mask.to_string<char,std::string::traits_type,std::string::allocator_type>();
- MEMPART_DPRINTF("Copy Engine Request Received For Address=%llx, local_subpart=%u, global_subpart=%u, sector_mask=%s \n", addr, p, global_subpart_id, mystring.c_str());
+ MEMPART_DPRINTF("Copy Engine Request Received For Address=%zx, local_subpart=%u, global_subpart=%u, sector_mask=%s \n", addr, p, global_subpart_id, mystring.c_str());
m_sub_partition[p]->force_l2_tag_update(addr,m_gpu->gpu_sim_cycle+m_gpu->gpu_tot_sim_cycle, mask);
}
@@ -622,7 +622,7 @@ std::vector<mem_fetch*> memory_sub_partition::breakdown_request_to_sector_reques
}
} else
{
- printf("Invalid sector received, address = 0x%06x, sector mask = %s, data size = %d",
+ printf("Invalid sector received, address = 0x%06llx, sector mask = %s, data size = %d",
mf->get_addr(), mf->get_access_sector_mask(), mf->get_data_size());
assert(0 && "Undefined sector mask is received");
}
@@ -657,7 +657,7 @@ std::vector<mem_fetch*> memory_sub_partition::breakdown_request_to_sector_reques
byte_sector_mask <<= SECTOR_SIZE;
}
} else {
- printf("Invalid sector received, address = 0x%06x, sector mask = %d, byte mask = , data size = %d",
+ printf("Invalid sector received, address = 0x%06llx, sector mask = %d, byte mask = , data size = %u",
mf->get_addr(), mf->get_access_sector_mask().count(), mf->get_data_size());
assert(0 && "Undefined data size is received");
}
diff --git a/src/gpgpu-sim/local_interconnect.cc b/src/gpgpu-sim/local_interconnect.cc
index 1416b2c..bb09d44 100644
--- a/src/gpgpu-sim/local_interconnect.cc
+++ b/src/gpgpu-sim/local_interconnect.cc
@@ -231,7 +231,7 @@ LocalInterconnect::LocalInterconnect(const struct inct_config& m_localinct_confi
}
LocalInterconnect::~LocalInterconnect(){
- for (int i=0; i<m_inct_config.subnets; ++i) {
+ for (unsigned i = 0; i < m_inct_config.subnets; ++i) {
delete net[i];
}
}
diff --git a/src/gpgpu-sim/scoreboard.cc b/src/gpgpu-sim/scoreboard.cc
index 80f95c6..1017e75 100644
--- a/src/gpgpu-sim/scoreboard.cc
+++ b/src/gpgpu-sim/scoreboard.cc
@@ -140,10 +140,10 @@ bool Scoreboard::checkCollision( unsigned wid, const class inst_t *inst ) const
// Get list of all input and output registers
std::set<int> inst_regs;
- for(int iii=0;iii<inst->outcount;iii++)
+ for(unsigned iii=0; iii < inst->outcount; iii++)
inst_regs.insert(inst->out[iii]);
- for(int jjj=0;jjj<inst->incount;jjj++)
+ for(unsigned jjj=0;jjj<inst->incount;jjj++)
inst_regs.insert(inst->in[jjj]);
if(inst->pred > 0) inst_regs.insert(inst->pred);
diff --git a/src/gpgpu-sim/shader.cc b/src/gpgpu-sim/shader.cc
index c697450..c365ebb 100644
--- a/src/gpgpu-sim/shader.cc
+++ b/src/gpgpu-sim/shader.cc
@@ -87,7 +87,7 @@ shader_core_ctx::shader_core_ctx( class gpgpu_sim *gpu,
shader_core_stats *stats )
: core_t( gpu, NULL, config->warp_size, config->n_thread_per_shader ),
m_barriers( this, config->max_warps_per_shader, config->max_cta_per_core, config->max_barriers_per_cta, config->warp_size ),
- m_dynamic_warp_id(0), m_active_warps(0)
+ m_active_warps(0), m_dynamic_warp_id(0)
{
m_cluster = cluster;
m_config = config;
@@ -164,7 +164,7 @@ shader_core_ctx::shader_core_ctx( class gpgpu_sim *gpu,
NUM_CONCRETE_SCHEDULERS;
assert ( scheduler != NUM_CONCRETE_SCHEDULERS );
- for (int i = 0; i < m_config->gpgpu_num_sched_per_core; i++) {
+ for (unsigned i = 0; i < m_config->gpgpu_num_sched_per_core; i++) {
switch( scheduler )
{
case CONCRETE_SCHEDULER_LRR:
@@ -263,7 +263,7 @@ shader_core_ctx::shader_core_ctx( class gpgpu_sim *gpu,
//distribute i's evenly though schedulers;
schedulers[i%m_config->gpgpu_num_sched_per_core]->add_supervised_warp_id(i);
}
- for ( int i = 0; i < m_config->gpgpu_num_sched_per_core; ++i ) {
+ for ( unsigned i = 0; i < m_config->gpgpu_num_sched_per_core; ++i ) {
schedulers[i]->done_adding_supervised_warps();
}
@@ -474,7 +474,7 @@ void shader_core_ctx::init_warps( unsigned cta_id, unsigned start_thread, unsign
}
m_simt_stack[i]->launch(start_pc,active_threads);
- if(m_gpu->resume_option==1 && kernel_id==m_gpu->resume_kernel && ctaid>=m_gpu->resume_CTA && ctaid<m_gpu->checkpoint_CTA_t )
+ if(m_gpu->resume_option == 1 && kernel_id == m_gpu->resume_kernel && ctaid >= m_gpu->resume_CTA && ctaid < m_gpu->checkpoint_CTA_t )
{
char fname[2048];
snprintf(fname,2048,"checkpoint_files/warp_%d_%d_simt.txt",i%warp_per_cta,ctaid );
@@ -868,7 +868,7 @@ void shader_core_ctx::func_exec_inst( warp_inst_t &inst )
void shader_core_ctx::issue_warp( register_set& pipe_reg_set, const warp_inst_t* next_inst, const active_mask_t &active_mask, unsigned warp_id, unsigned sch_id )
{
- warp_inst_t** pipe_reg = pipe_reg = pipe_reg_set.get_free(m_config->sub_core_model, sch_id);
+ warp_inst_t** pipe_reg = pipe_reg_set.get_free(m_config->sub_core_model, sch_id);
assert(pipe_reg);
m_warp[warp_id].ibuffer_free();
@@ -2134,7 +2134,7 @@ ldst_unit::ldst_unit( mem_fetch_interface *icnt,
if(m_config->m_L1D_config.l1_latency > 0)
{
- for(int i=0; i<m_config->m_L1D_config.l1_latency; i++ )
+ for(unsigned i = 0; i < m_config->m_L1D_config.l1_latency; i++ )
l1_latency_queue.push_back((mem_fetch*)NULL);
}
}
@@ -2446,7 +2446,7 @@ void shader_core_ctx::register_cta_thread_exit( unsigned cta_num, kernel_info_t
m_barriers.deallocate_barrier(cta_num);
shader_CTA_count_unlog(m_sid, 1);
- SHADER_DPRINTF(LIVENESS, "GPGPU-Sim uArch: Finished CTA #%d (%lld,%lld), %u CTAs running\n",
+ SHADER_DPRINTF(LIVENESS, "GPGPU-Sim uArch: Finished CTA #%u (%lld,%lld), %u CTAs running\n",
cta_num, m_gpu->gpu_sim_cycle, m_gpu->gpu_tot_sim_cycle, m_n_active_cta);
if( m_n_active_cta == 0 ) {
diff --git a/src/gpgpu-sim/shader.h b/src/gpgpu-sim/shader.h
index b0d7f7f..dbe2285 100644
--- a/src/gpgpu-sim/shader.h
+++ b/src/gpgpu-sim/shader.h
@@ -1392,9 +1392,9 @@ class shader_core_config : public core_config
If we won't remove it, old regression will be broken.
So to support the legacy config files it's best to handle in this way.
*/
- int num_config_to_read=N_PIPELINE_STAGES-2*(!gpgpu_tensor_core_avail);
+ int num_config_to_read= N_PIPELINE_STAGES - 2 * (!gpgpu_tensor_core_avail);
- for (unsigned i = 0; i <num_config_to_read; i++) {
+ for (int i = 0; i < num_config_to_read; i++) {
assert(toks);
ntok = sscanf(toks,"%d", &pipe_widths[i]);
assert(ntok == 1);
@@ -1455,7 +1455,7 @@ class shader_core_config : public core_config
bool gpgpu_dwf_reg_bankconflict;
- int gpgpu_num_sched_per_core;
+ unsigned gpgpu_num_sched_per_core;
int gpgpu_max_insn_issue_per_warp;
bool gpgpu_dual_issue_diff_exec_units;