summaryrefslogtreecommitdiff
path: root/libcuda
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 /libcuda
parent49c6eeff7752b5816fb08c0d6baf2b47c789bc18 (diff)
Modified config files to add device limit configurations
Diffstat (limited to 'libcuda')
-rw-r--r--libcuda/cuda_runtime_api.cc35
1 files changed, 25 insertions, 10 deletions
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();