summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMengchi Zhang <[email protected]>2019-07-11 14:23:13 -0400
committerMengchi Zhang <[email protected]>2019-07-11 14:23:13 -0400
commitb1385157251803aa45eaff154637218c9f6b15b1 (patch)
tree9aef6a7e5323c20ac1521796e27664d62ca84c22 /src
parent33d064f5a38b60fb0ed4b4ad78212c6e5d9bfc0f (diff)
Move g_cuda_device_launch_param_map and g_cuda_device_launch_op
Signed-off-by: Mengchi Zhang <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/cuda-sim/cuda_device_runtime.cc41
-rw-r--r--src/cuda-sim/cuda_device_runtime.h42
-rw-r--r--src/cuda-sim/instructions.cc4
3 files changed, 42 insertions, 45 deletions
diff --git a/src/cuda-sim/cuda_device_runtime.cc b/src/cuda-sim/cuda_device_runtime.cc
index 22304db..326a1c5 100644
--- a/src/cuda-sim/cuda_device_runtime.cc
+++ b/src/cuda-sim/cuda_device_runtime.cc
@@ -27,44 +27,7 @@ unsigned long long g_max_total_param_size = 0;
std::cout.flush(); \
}
-class device_launch_config_t {
-public:
- device_launch_config_t() {}
-
- device_launch_config_t(dim3 _grid_dim,
- dim3 _block_dim,
- unsigned int _shared_mem,
- function_info * _entry):
- grid_dim(_grid_dim),
- block_dim(_block_dim),
- shared_mem(_shared_mem),
- entry(_entry) {}
-
- dim3 grid_dim;
- dim3 block_dim;
- unsigned int shared_mem;
- function_info * entry;
-
-};
-
-class device_launch_operation_t {
-
-public:
- device_launch_operation_t() {}
- device_launch_operation_t(kernel_info_t *_grid,
- CUstream_st * _stream) :
- grid(_grid), stream(_stream) {}
-
- kernel_info_t * grid; //a new child grid
-
- CUstream_st * stream;
-
-};
-
-
-std::map<void *, device_launch_config_t> g_cuda_device_launch_param_map;
-std::list<device_launch_operation_t> g_cuda_device_launch_op;
//extern stream_manager *g_stream_manager();
//Handling device runtime api:
@@ -142,7 +105,7 @@ void cuda_device_runtime::gpgpusim_cuda_getParameterBufferV2(const ptx_instructi
//Handling device runtime api:
//cudaError_t cudaLaunchDeviceV2(void *parameterBuffer, cudaStream_t stream)
-void gpgpusim_cuda_launchDeviceV2(const ptx_instruction * pI, ptx_thread_info * thread, const function_info * target_func) {
+void cuda_device_runtime::gpgpusim_cuda_launchDeviceV2(const ptx_instruction * pI, ptx_thread_info * thread, const function_info * target_func) {
DEV_RUNTIME_REPORT("Calling cudaLaunchDeviceV2");
unsigned n_return = target_func->has_return();
@@ -263,7 +226,7 @@ void gpgpusim_cuda_launchDeviceV2(const ptx_instruction * pI, ptx_thread_info *
//Handling device runtime api:
//cudaError_t cudaStreamCreateWithFlags ( cudaStream_t* pStream, unsigned int flags)
//flags can only be cudaStreamNonBlocking
-void gpgpusim_cuda_streamCreateWithFlags(const ptx_instruction * pI, ptx_thread_info * thread, const function_info * target_func) {
+void cuda_device_runtime::gpgpusim_cuda_streamCreateWithFlags(const ptx_instruction * pI, ptx_thread_info * thread, const function_info * target_func) {
DEV_RUNTIME_REPORT("Calling cudaStreamCreateWithFlags");
unsigned n_return = target_func->has_return();
diff --git a/src/cuda-sim/cuda_device_runtime.h b/src/cuda-sim/cuda_device_runtime.h
index dd908ae..b49d0eb 100644
--- a/src/cuda-sim/cuda_device_runtime.h
+++ b/src/cuda-sim/cuda_device_runtime.h
@@ -3,10 +3,40 @@
#if (CUDART_VERSION >= 5000)
#pragma once
-void gpgpusim_cuda_launchDeviceV2(const ptx_instruction * pI, ptx_thread_info * thread, const function_info * target_func);
-void gpgpusim_cuda_streamCreateWithFlags(const ptx_instruction * pI, ptx_thread_info * thread, const function_info * target_func);
-#endif
-#if (CUDART_VERSION >= 5000)
+class device_launch_config_t {
+
+public:
+ device_launch_config_t() {}
+
+ device_launch_config_t(dim3 _grid_dim,
+ dim3 _block_dim,
+ unsigned int _shared_mem,
+ function_info * _entry):
+ grid_dim(_grid_dim),
+ block_dim(_block_dim),
+ shared_mem(_shared_mem),
+ entry(_entry) {}
+
+ dim3 grid_dim;
+ dim3 block_dim;
+ unsigned int shared_mem;
+ function_info * entry;
+
+};
+
+class device_launch_operation_t {
+
+public:
+ device_launch_operation_t() {}
+ device_launch_operation_t(kernel_info_t *_grid,
+ CUstream_st * _stream) :
+ grid(_grid), stream(_stream) {}
+
+ kernel_info_t * grid; //a new child grid
+
+ CUstream_st * stream;
+
+};
class gpgpu_context;
@@ -17,8 +47,12 @@ class cuda_device_runtime {
gpgpu_ctx = ctx;
}
unsigned long long g_total_param_size;
+ std::map<void *, device_launch_config_t> g_cuda_device_launch_param_map;
+ std::list<device_launch_operation_t> g_cuda_device_launch_op;
// backward pointer
class gpgpu_context* gpgpu_ctx;
+ void gpgpusim_cuda_launchDeviceV2(const ptx_instruction * pI, ptx_thread_info * thread, const function_info * target_func);
+ void gpgpusim_cuda_streamCreateWithFlags(const ptx_instruction * pI, ptx_thread_info * thread, const function_info * target_func);
void gpgpusim_cuda_getParameterBufferV2(const ptx_instruction * pI, ptx_thread_info * thread, const function_info * target_func);
void launch_all_device_kernels();
void launch_one_device_kernel();
diff --git a/src/cuda-sim/instructions.cc b/src/cuda-sim/instructions.cc
index dfe5af6..565340c 100644
--- a/src/cuda-sim/instructions.cc
+++ b/src/cuda-sim/instructions.cc
@@ -2101,11 +2101,11 @@ void call_impl( const ptx_instruction *pI, ptx_thread_info *thread )
return;
}
else if(fname == "cudaLaunchDeviceV2") {
- gpgpusim_cuda_launchDeviceV2(pI, thread, target_func);
+ target_func->gpgpu_ctx->device_runtime->gpgpusim_cuda_launchDeviceV2(pI, thread, target_func);
return;
}
else if(fname == "cudaStreamCreateWithFlags") {
- gpgpusim_cuda_streamCreateWithFlags(pI, thread, target_func);
+ target_func->gpgpu_ctx->device_runtime->gpgpusim_cuda_streamCreateWithFlags(pI, thread, target_func);
return;
}
#endif