瀏覽代碼

src/drivers: functions _starpu_cuda_get_global_mem_size and _starpu_opencl_get_global_mem_size always need to be defined, they return 0 when the driver is disabled

Nathalie Furmento 12 年之前
父節點
當前提交
6b2e237ad5
共有 2 個文件被更改,包括 27 次插入18 次删除
  1. 10 5
      src/drivers/cuda/driver_cuda.c
  2. 17 13
      src/drivers/opencl/driver_opencl.c

+ 10 - 5
src/drivers/cuda/driver_cuda.c

@@ -100,11 +100,6 @@ static void _starpu_cuda_limit_gpu_mem_if_needed(unsigned devid)
 			(size_t)(totalGlobalMem - to_waste)/(1024*1024));
 }
 
-static size_t _starpu_cuda_get_global_mem_size(unsigned devid)
-{
-	return (size_t)props[devid].totalGlobalMem;
-}
-
 cudaStream_t starpu_cuda_get_local_in_transfer_stream(void)
 {
 	int worker = starpu_worker_get_id();
@@ -274,6 +269,16 @@ static void deinit_context(int workerid)
 
 #endif /* STARPU_USE_CUDA */
 
+static size_t _starpu_cuda_get_global_mem_size(unsigned devid)
+{
+#ifdef STARPU_USE_CUDA
+	return (size_t)props[devid].totalGlobalMem;
+#else
+	return 0;
+#endif
+}
+
+
 /* Return the number of devices usable in the system.
  * The value returned cannot be greater than MAXCUDADEVS */
 

+ 17 - 13
src/drivers/opencl/driver_opencl.c

@@ -114,19 +114,6 @@ static void unlimit_gpu_mem_if_needed(int devid)
 }
 #endif
 
-static size_t _starpu_opencl_get_global_mem_size(int devid)
-{
-	cl_int err;
-	cl_ulong totalGlobalMem;
-
-	/* Request the size of the current device's memory */
-	err = clGetDeviceInfo(devices[devid], CL_DEVICE_GLOBAL_MEM_SIZE, sizeof(totalGlobalMem), &totalGlobalMem, NULL);
-	if (STARPU_UNLIKELY(err != CL_SUCCESS))
-		STARPU_OPENCL_REPORT_ERROR(err);
-
-	return (size_t)totalGlobalMem;
-}
-
 void starpu_opencl_get_context(int devid, cl_context *context)
 {
         *context = contexts[devid];
@@ -465,6 +452,23 @@ cl_int _starpu_opencl_copy_rect_ram_to_opencl(void *ptr, unsigned src_node STARP
 #endif
 #endif /* STARPU_USE_OPENCL */
 
+static size_t _starpu_opencl_get_global_mem_size(int devid)
+{
+#ifdef STARPU_USE_OPENCL
+	cl_int err;
+	cl_ulong totalGlobalMem;
+
+	/* Request the size of the current device's memory */
+	err = clGetDeviceInfo(devices[devid], CL_DEVICE_GLOBAL_MEM_SIZE, sizeof(totalGlobalMem), &totalGlobalMem, NULL);
+	if (STARPU_UNLIKELY(err != CL_SUCCESS))
+		STARPU_OPENCL_REPORT_ERROR(err);
+
+	return (size_t)totalGlobalMem;
+#else
+	return 0;
+#endif
+}
+
 void _starpu_opencl_init(void)
 {
 	_STARPU_PTHREAD_MUTEX_LOCK(&big_lock);