summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSuchita Pati <[email protected]>2019-04-17 23:30:20 -0500
committerSuchita Pati <[email protected]>2019-04-17 23:30:20 -0500
commit74289a429633176e37116353347f60c75f2b644a (patch)
treed76aa0983dedcaab5f0e0a4751059e23e0a1ce78
parent49c6eeff7752b5816fb08c0d6baf2b47c789bc18 (diff)
Modified config files to add device limit configurations
-rw-r--r--configs/tested-cfgs/SM2_GTX480/gpgpusim.config3
-rw-r--r--configs/tested-cfgs/SM6_TITANX/gpgpusim.config6
-rw-r--r--configs/tested-cfgs/SM7_TITANV/gpgpusim.config6
-rw-r--r--libcuda/cuda_runtime_api.cc35
4 files changed, 40 insertions, 10 deletions
diff --git a/configs/tested-cfgs/SM2_GTX480/gpgpusim.config b/configs/tested-cfgs/SM2_GTX480/gpgpusim.config
index d71b2fd..8d54d8b 100644
--- a/configs/tested-cfgs/SM2_GTX480/gpgpusim.config
+++ b/configs/tested-cfgs/SM2_GTX480/gpgpusim.config
@@ -3,6 +3,9 @@
-gpgpu_ptx_sim_mode 0
-gpgpu_ptx_force_max_capability 20
+# Device Limits
+-gpgpu_stack_size_limit 1024
+-gpgpu_heap_size_limit 8388608
# SASS execution (only supported with CUDA >= 4.0)
-gpgpu_ptx_convert_to_ptxplus 0
diff --git a/configs/tested-cfgs/SM6_TITANX/gpgpusim.config b/configs/tested-cfgs/SM6_TITANX/gpgpusim.config
index cb23ab3..3371186 100644
--- a/configs/tested-cfgs/SM6_TITANX/gpgpusim.config
+++ b/configs/tested-cfgs/SM6_TITANX/gpgpusim.config
@@ -8,6 +8,12 @@
-gpgpu_ptx_force_max_capability 61
-gpgpu_ignore_resources_limitation 1
+# Device Limits
+-gpgpu_stack_size_limit 1024
+-gpgpu_heap_size_limit 8388608
+-gpgpu_runtime_sync_depth_limit 2
+-gpgpu_runtime_pending_launch_count_limit 2048
+
# SASS execution (only supported with CUDA >= 4.0)
-gpgpu_ptx_convert_to_ptxplus 0
-gpgpu_ptx_save_converted_ptxplus 0
diff --git a/configs/tested-cfgs/SM7_TITANV/gpgpusim.config b/configs/tested-cfgs/SM7_TITANV/gpgpusim.config
index 8ed4cd0..1af64ac 100644
--- a/configs/tested-cfgs/SM7_TITANV/gpgpusim.config
+++ b/configs/tested-cfgs/SM7_TITANV/gpgpusim.config
@@ -13,6 +13,12 @@
-gpgpu_ptx_sim_mode 0
-gpgpu_ptx_force_max_capability 70
+# Device Limits
+-gpgpu_stack_size_limit 1024
+-gpgpu_heap_size_limit 8388608
+-gpgpu_runtime_sync_depth_limit 2
+-gpgpu_runtime_pending_launch_count_limit 2048
+
# SASS execution (only supported with CUDA >= 4.0)
-gpgpu_ptx_convert_to_ptxplus 0
-gpgpu_ptx_save_converted_ptxplus 0
diff --git a/libcuda/cuda_runtime_api.cc b/libcuda/cuda_runtime_api.cc
index 86435b9..6f1ab08 100644
--- a/libcuda/cuda_runtime_api.cc
+++ b/libcuda/cuda_runtime_api.cc
@@ -1121,10 +1121,10 @@ __host__ cudaError_t CUDARTAPI cudaDeviceGetAttribute(int *value, enum cudaDevic
*value= 0;
break;
case 75:
- *value= 7 ;
+ *value= 7 ; //cudaDevAttrComputeCapabilityMajor for Volta architecture
break;
case 76:
- *value= 0 ;
+ *value= 0 ; //cudaDevAttrComputeCapabilityMinor for Volta architecture
break;
case 78:
*value= 0 ; //TODO: as of now, we dont support stream priorities.
@@ -1206,20 +1206,35 @@ __host__ cudaError_t CUDARTAPI cudaDeviceGetLimit ( size_t* pValue, cudaLimit li
announce_call(__my_func__);
}
_cuda_device_id *dev = GPGPUSim_Init();
+ const struct cudaDeviceProp *prop = dev->get_prop();
const gpgpu_sim_config& config=dev->get_gpgpu()->get_config();
switch(limit) {
case 0: // cudaLimitStackSize
- *pValue=config.stack_limit();
- break;
+ *pValue=config.stack_limit();
+ break;
case 2: // cudaLimitMallocHeapSize
- *pValue=config.heap_limit();
- break;
+ *pValue=config.heap_limit();
+ break;
+#if (CUDART_VERSION > 5050)
case 3: // cudaLimitDevRuntimeSyncDepth
- *pValue=config.sync_depth_limit();
- break;
+ if(prop->major > 2){
+ *pValue=config.sync_depth_limit();
+ break;
+ }
+ else{
+ printf("ERROR:Limit %s is not supported on this architecture \n",limit);
+ abort();
+ }
case 4: // cudaLimitDevRuntimePendingLaunchCount
- *pValue=config.pending_launch_count_limit();
- break;
+ if(prop->major > 2){
+ *pValue=config.pending_launch_count_limit();
+ break;
+ }
+ else{
+ printf("ERROR:Limit %s is not supported on this architecture \n",limit);
+ abort();
+ }
+#endif
default:
printf("ERROR:Limit %s unimplemented \n",limit);
abort();