summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMengchi Zhang <[email protected]>2019-07-11 12:28:45 -0400
committerMengchi Zhang <[email protected]>2019-07-11 12:28:45 -0400
commitb97d17bd2a527a6c04cb9354b04ae447c1f322b8 (patch)
tree34b79d313c3f07626d5b28d4712bf3e61f2a595e /src
parent2dd62f45faaf6e749f21212c662c1308faf31554 (diff)
Move g_ptx_cta_info_sm_idx_used
Signed-off-by: Mengchi Zhang <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/cuda-sim/cuda-sim.cc2
-rw-r--r--src/cuda-sim/cuda-sim.h1
-rw-r--r--src/cuda-sim/ptx_sim.cc9
-rw-r--r--src/cuda-sim/ptx_sim.h4
4 files changed, 10 insertions, 6 deletions
diff --git a/src/cuda-sim/cuda-sim.cc b/src/cuda-sim/cuda-sim.cc
index 7ff869c..d098f2b 100644
--- a/src/cuda-sim/cuda-sim.cc
+++ b/src/cuda-sim/cuda-sim.cc
@@ -1825,7 +1825,7 @@ unsigned ptx_sim_init_thread( kernel_info_t &kernel,
snprintf(buf,512,"sstarr_%u", sid);
sstarr_mem = new memory_space_impl<16*1024>(buf,4);
sstarr_memory_lookup[sm_idx] = sstarr_mem;
- cta_info = new ptx_cta_info(sm_idx);
+ cta_info = new ptx_cta_info(sm_idx, gpu->gpgpu_ctx);
ptx_cta_lookup[sm_idx] = cta_info;
} else {
if ( g_debug_execution >= 1 ) {
diff --git a/src/cuda-sim/cuda-sim.h b/src/cuda-sim/cuda-sim.h
index 16eca19..194309a 100644
--- a/src/cuda-sim/cuda-sim.h
+++ b/src/cuda-sim/cuda-sim.h
@@ -168,6 +168,7 @@ class cuda_sim {
unsigned g_assemble_code_next_pc;
int g_debug_thread_uid;
bool g_override_embedded_ptx;
+ std::set<unsigned long long> g_ptx_cta_info_sm_idx_used;
// backward pointer
class gpgpu_context* gpgpu_ctx;
//global functions
diff --git a/src/cuda-sim/ptx_sim.cc b/src/cuda-sim/ptx_sim.cc
index 1b8831a..cd402d5 100644
--- a/src/cuda-sim/ptx_sim.cc
+++ b/src/cuda-sim/ptx_sim.cc
@@ -33,20 +33,21 @@ typedef void * yyscan_t;
#include "ptx.tab.h"
#include "../gpgpu-sim/gpu-sim.h"
#include "../gpgpu-sim/shader.h"
+#include "../../libcuda/gpgpu_context.h"
void feature_not_implemented( const char *f );
-std::set<unsigned long long> g_ptx_cta_info_sm_idx_used;
unsigned long long g_ptx_cta_info_uid = 1;
-ptx_cta_info::ptx_cta_info( unsigned sm_idx )
+ptx_cta_info::ptx_cta_info( unsigned sm_idx, gpgpu_context* ctx )
{
- assert( g_ptx_cta_info_sm_idx_used.find(sm_idx) == g_ptx_cta_info_sm_idx_used.end() );
- g_ptx_cta_info_sm_idx_used.insert(sm_idx);
+ assert( ctx->func_sim->g_ptx_cta_info_sm_idx_used.find(sm_idx) == ctx->func_sim->g_ptx_cta_info_sm_idx_used.end() );
+ ctx->func_sim->g_ptx_cta_info_sm_idx_used.insert(sm_idx);
m_sm_idx = sm_idx;
m_uid = g_ptx_cta_info_uid++;
m_bar_threads = 0;
+ gpgpu_ctx = ctx;
}
void ptx_cta_info::add_thread( ptx_thread_info *thd )
diff --git a/src/cuda-sim/ptx_sim.h b/src/cuda-sim/ptx_sim.h
index a045a76..c2b3cc8 100644
--- a/src/cuda-sim/ptx_sim.h
+++ b/src/cuda-sim/ptx_sim.h
@@ -164,7 +164,7 @@ class ptx_thread_info;
class ptx_cta_info {
public:
- ptx_cta_info( unsigned sm_idx );
+ ptx_cta_info( unsigned sm_idx, gpgpu_context* ctx );
void add_thread( ptx_thread_info *thd );
unsigned num_threads() const;
void check_cta_thread_status_and_reset();
@@ -176,6 +176,8 @@ public:
void reset_bar_threads();
private:
+ // backward pointer
+ class gpgpu_context* gpgpu_ctx;
unsigned m_bar_threads;
unsigned long long m_uid;
unsigned m_sm_idx;