2 * Author......: Jens Steube <jens.steube@gmail.com>
8 void hc_cuDeviceGetCount (int *count
)
10 CUresult CU_err
= cuDeviceGetCount (count
);
12 if (CU_err
!= CUDA_SUCCESS
)
14 log_error ("ERROR: %s %d\n", "cuDeviceGetCount()", CU_err
);
20 void hc_cuDeviceGet (CUdevice
*device
, int ordinal
)
22 CUresult CU_err
= cuDeviceGet (device
, ordinal
);
24 if (CU_err
!= CUDA_SUCCESS
)
26 log_error ("ERROR: %s %d\n", "cuDeviceGet()", CU_err
);
32 void hc_cuDeviceGetName (char *name
, int len
, CUdevice dev
)
34 CUresult CU_err
= cuDeviceGetName (name
, len
, dev
);
36 if (CU_err
!= CUDA_SUCCESS
)
38 log_error ("ERROR: %s %d\n", "cuDeviceGetName()", CU_err
);
44 void hc_cuDeviceTotalMem (size_t *bytes
, CUdevice dev
)
46 CUresult CU_err
= cuDeviceTotalMem (bytes
, dev
);
48 if (CU_err
!= CUDA_SUCCESS
)
50 log_error ("ERROR: %s %d\n", "cuDeviceTotalMem()", CU_err
);
56 void hc_cuDeviceGetAttribute (int *pi
, CUdevice_attribute attrib
, CUdevice dev
)
58 CUresult CU_err
= cuDeviceGetAttribute (pi
, attrib
, dev
);
60 if (CU_err
!= CUDA_SUCCESS
)
62 log_error ("ERROR: %s %d\n", "cuDeviceGetAttribute()", CU_err
);
68 void hc_cuCtxCreate (CUcontext
*pctx
, unsigned int flags
, CUdevice dev
)
70 CUresult CU_err
= cuCtxCreate (pctx
, flags
, dev
);
72 if (CU_err
!= CUDA_SUCCESS
)
74 log_error ("ERROR: %s %d\n", "cuCtxCreate()", CU_err
);
80 void hc_cuMemAllocHost (void **pp
, size_t bytesize
)
82 CUresult CU_err
= cuMemAllocHost (pp
, bytesize
);
84 if (CU_err
!= CUDA_SUCCESS
)
86 log_error ("ERROR: %s %d\n", "cuMemAllocHost()", CU_err
);
92 void hc_cuMemAlloc (CUdeviceptr
*dptr
, size_t bytesize
)
94 CUresult CU_err
= cuMemAlloc (dptr
, bytesize
);
96 if (CU_err
!= CUDA_SUCCESS
)
98 log_error ("ERROR: %s %d\n", "cuMemAlloc()", CU_err
);
104 void hc_cuMemsetD8 (CUdeviceptr dstDevice
, unsigned char uc
, unsigned int N
)
106 CUresult CU_err
= cuMemsetD8 (dstDevice
, uc
, N
);
108 if (CU_err
!= CUDA_SUCCESS
)
110 log_error ("ERROR: %s %d\n", "cuMemsetD8()", CU_err
);
116 void hc_cuMemsetD32 (CUdeviceptr dstDevice
, unsigned int ui
, unsigned int N
)
118 CUresult CU_err
= cuMemsetD32 (dstDevice
, ui
, N
);
120 if (CU_err
!= CUDA_SUCCESS
)
122 log_error ("ERROR: %s %d\n", "cuMemsetD32()", CU_err
);
128 void hc_cuMemcpyDtoD (CUdeviceptr dstDevice
, CUdeviceptr srcDevice
, size_t ByteCount
)
130 CUresult CU_err
= cuMemcpyDtoD (dstDevice
, srcDevice
, ByteCount
);
132 if (CU_err
!= CUDA_SUCCESS
)
134 log_error ("ERROR: %s %d\n", "cuMemcpyDtoD()", CU_err
);
140 void hc_cuMemcpyDtoDAsync (CUdeviceptr dstDevice
, CUdeviceptr srcDevice
, size_t ByteCount
, CUstream hStream
)
142 CUresult CU_err
= cuMemcpyDtoDAsync (dstDevice
, srcDevice
, ByteCount
, hStream
);
144 if (CU_err
!= CUDA_SUCCESS
)
146 log_error ("ERROR: %s %d\n", "cuMemcpyDtoDAsync()", CU_err
);
152 void hc_cuMemcpyHtoD (CUdeviceptr dstDevice
, const void *srcHost
, size_t ByteCount
)
154 CUresult CU_err
= cuMemcpyHtoD (dstDevice
, srcHost
, ByteCount
);
156 if (CU_err
!= CUDA_SUCCESS
)
158 log_error ("ERROR: %s %d\n", "cuMemcpyHtoD()", CU_err
);
164 void hc_cuMemcpyHtoDAsync (CUdeviceptr dstDevice
, const void *srcHost
, size_t ByteCount
, CUstream hStream
)
166 CUresult CU_err
= cuMemcpyHtoDAsync (dstDevice
, srcHost
, ByteCount
, hStream
);
168 if (CU_err
!= CUDA_SUCCESS
)
170 log_error ("ERROR: %s %d\n", "cuMemcpyHtoDAsync()", CU_err
);
176 void hc_cuMemcpyDtoH (void *dstHost
, CUdeviceptr srcDevice
, size_t ByteCount
)
178 CUresult CU_err
= cuMemcpyDtoH (dstHost
, srcDevice
, ByteCount
);
180 if (CU_err
!= CUDA_SUCCESS
)
182 log_error ("ERROR: %s %d\n", "cuMemcpyDtoH()", CU_err
);
188 void hc_cuMemcpyDtoHAsync (void *dstHost
, CUdeviceptr srcDevice
, size_t ByteCount
, CUstream hStream
)
190 CUresult CU_err
= cuMemcpyDtoHAsync (dstHost
, srcDevice
, ByteCount
, hStream
);
192 if (CU_err
!= CUDA_SUCCESS
)
194 log_error ("ERROR: %s %d\n", "cuMemcpyDtoHAsync()", CU_err
);
200 void hc_cuEventCreate (CUevent
*phEvent
, unsigned int Flags
)
202 CUresult CU_err
= cuEventCreate (phEvent
, Flags
);
204 if (CU_err
!= CUDA_SUCCESS
)
206 log_error ("ERROR: %s %d\n", "cuEventCreate()", CU_err
);
212 void hc_cuStreamCreate (CUstream
*phStream
, unsigned int Flags
)
214 CUresult CU_err
= cuStreamCreate (phStream
, Flags
);
216 if (CU_err
!= CUDA_SUCCESS
)
218 log_error ("ERROR: %s %d\n", "cuStreamCreate()", CU_err
);
224 void hc_cuDeviceComputeCapability (int *major
, int *minor
, CUdevice dev
)
226 CUresult CU_err
= cuDeviceComputeCapability (major
, minor
, dev
);
228 if (CU_err
!= CUDA_SUCCESS
)
230 log_error ("ERROR: %s %d\n", "cuDeviceComputeCapability()", CU_err
);
236 void hc_cuModuleLoad (CUmodule
*module
, const char *fname
)
238 CUresult CU_err
= cuModuleLoad (module
, fname
);
240 if (CU_err
!= CUDA_SUCCESS
)
242 log_error ("ERROR: %s %d\n", "cuModuleLoad()", CU_err
);
248 void hc_cuModuleLoadData (CUmodule
*module
, const void *image
)
250 CUresult CU_err
= cuModuleLoadData (module
, image
);
252 if (CU_err
!= CUDA_SUCCESS
)
254 log_error ("ERROR: %s %d\n", "cuModuleLoadData()", CU_err
);
260 void hc_cuModuleGetFunction (CUfunction
*hfunc
, CUmodule hmod
, const char *name
)
262 CUresult CU_err
= cuModuleGetFunction (hfunc
, hmod
, name
);
264 if (CU_err
!= CUDA_SUCCESS
)
266 log_error ("ERROR: %s %d\n", "cuModuleGetFunction()", CU_err
);
272 void hc_cuFuncSetBlockShape (CUfunction hfunc
, int x
, int y
, int z
)
274 CUresult CU_err
= cuFuncSetBlockShape (hfunc
, x
, y
, z
);
276 if (CU_err
!= CUDA_SUCCESS
)
278 log_error ("ERROR: %s %d\n", "cuFuncSetBlockShape()", CU_err
);
284 void hc_cuParamSetSize (CUfunction hfunc
, unsigned int numbytes
)
286 CUresult CU_err
= cuParamSetSize (hfunc
, numbytes
);
288 if (CU_err
!= CUDA_SUCCESS
)
290 log_error ("ERROR: %s %d\n", "cuParamSetSize()", CU_err
);
296 void hc_cuParamSetv (CUfunction hfunc
, int offset
, void *ptr
, unsigned int numbytes
)
298 CUresult CU_err
= cuParamSetv (hfunc
, offset
, ptr
, numbytes
);
300 if (CU_err
!= CUDA_SUCCESS
)
302 log_error ("ERROR: %s %d\n", "cuParamSetv()", CU_err
);
308 void hc_cuParamSeti (CUfunction hfunc
, int offset
, unsigned int value
)
310 CUresult CU_err
= cuParamSeti (hfunc
, offset
, value
);
312 if (CU_err
!= CUDA_SUCCESS
)
314 log_error ("ERROR: %s %d\n", "cuParamSeti()", CU_err
);
320 void hc_cuModuleGetGlobal (CUdeviceptr
*dptr
, size_t *bytes
, CUmodule hmod
, const char *name
)
322 CUresult CU_err
= cuModuleGetGlobal (dptr
, bytes
, hmod
, name
);
324 if (CU_err
!= CUDA_SUCCESS
)
326 log_error ("ERROR: %s %d\n", "cuModuleGetGlobal()", CU_err
);
332 void hc_cuCtxPopCurrent (CUcontext
*pctx
)
334 CUresult CU_err
= cuCtxPopCurrent (pctx
);
336 if (CU_err
!= CUDA_SUCCESS
)
338 log_error ("ERROR: %s %d\n", "cuCtxPopCurrent()", CU_err
);
344 void hc_cuCtxPushCurrent (CUcontext ctx
)
346 CUresult CU_err
= cuCtxPushCurrent (ctx
);
348 if (CU_err
!= CUDA_SUCCESS
)
350 log_error ("ERROR: %s %d\n", "cuCtxPushCurrent()", CU_err
);
356 void hc_cuLaunchKernel (CUfunction f
, unsigned int gridDimX
, unsigned int gridDimY
, unsigned int gridDimZ
, unsigned int blockDimX
, unsigned int blockDimY
, unsigned int blockDimZ
, unsigned int sharedMemBytes
, CUstream hStream
, void **kernelParams
, void **extra
)
358 CUresult CU_err
= cuLaunchKernel (f
, gridDimX
, gridDimY
, gridDimZ
, blockDimX
, blockDimY
, blockDimZ
, sharedMemBytes
, hStream
, kernelParams
, extra
);
360 if (CU_err
!= CUDA_SUCCESS
)
362 log_error ("ERROR: %s %d\n", "cuLaunchKernel()", CU_err
);
368 void hc_cuLaunchGrid (CUfunction f
, int grid_width
, int grid_height
)
370 CUresult CU_err
= cuLaunchGrid (f
, grid_width
, grid_height
);
372 if (CU_err
!= CUDA_SUCCESS
)
374 log_error ("ERROR: %s %d\n", "cuLaunchGrid()", CU_err
);
380 void hc_cuLaunchGridAsync (CUfunction f
, int grid_width
, int grid_height
, CUstream hStream
)
382 CUresult CU_err
= cuLaunchGridAsync (f
, grid_width
, grid_height
, hStream
);
384 if (CU_err
!= CUDA_SUCCESS
)
386 log_error ("ERROR: %s %d\n", "cuLaunchGridAsync()", CU_err
);
392 void hc_cuEventSynchronize (CUevent hEvent
)
394 CUresult CU_err
= cuEventSynchronize (hEvent
);
396 if (CU_err
!= CUDA_SUCCESS
)
398 log_error ("ERROR: %s %d\n", "cuEventSynchronize()", CU_err
);
404 void hc_cuStreamSynchronize (CUstream hStream
)
406 CUresult CU_err
= cuStreamSynchronize (hStream
);
408 if (CU_err
!= CUDA_SUCCESS
)
410 log_error ("ERROR: %s %d\n", "cuStreamSynchronize()", CU_err
);
416 void hc_cuMemFreeHost (void *p
)
418 CUresult CU_err
= cuMemFreeHost (p
);
420 if (CU_err
!= CUDA_SUCCESS
)
422 log_error ("ERROR: %s %d\n", "cuMemFreeHost()", CU_err
);
428 void hc_cuMemFree (CUdeviceptr dptr
)
430 CUresult CU_err
= cuMemFree (dptr
);
432 if (CU_err
!= CUDA_SUCCESS
)
434 log_error ("ERROR: %s %d\n", "cuMemFree()", CU_err
);
440 void hc_cuEventDestroy (CUevent hEvent
)
442 CUresult CU_err
= cuEventDestroy (hEvent
);
444 if (CU_err
!= CUDA_SUCCESS
)
446 log_error ("ERROR: %s %d\n", "cuEventDestroy()", CU_err
);
452 void hc_cuStreamDestroy (CUstream hStream
)
454 CUresult CU_err
= cuStreamDestroy (hStream
);
456 if (CU_err
!= CUDA_SUCCESS
)
458 log_error ("ERROR: %s %d\n", "cuStreamDestroy()", CU_err
);
464 void hc_cuModuleUnload (CUmodule hmod
)
466 CUresult CU_err
= cuModuleUnload (hmod
);
468 if (CU_err
!= CUDA_SUCCESS
)
470 log_error ("ERROR: %s %d\n", "cuModuleUnload()", CU_err
);
476 void hc_cuCtxDestroy (CUcontext ctx
)
478 CUresult CU_err
= cuCtxDestroy (ctx
);
480 if (CU_err
!= CUDA_SUCCESS
)
482 log_error ("ERROR: %s %d\n", "cuCtxDestroy()", CU_err
);
488 void hc_cuCtxAttach (CUcontext
*pctx
, unsigned int flags
)
490 CUresult CU_err
= cuCtxAttach (pctx
, flags
);
492 if (CU_err
!= CUDA_SUCCESS
)
494 log_error ("ERROR: %s %d\n", "cuCtxAttach()", CU_err
);
500 void hc_cuCtxDetach (CUcontext ctx
)
502 CUresult CU_err
= cuCtxDetach (ctx
);
504 if (CU_err
!= CUDA_SUCCESS
)
506 log_error ("ERROR: %s %d\n", "cuCtxDetach()", CU_err
);
512 void hc_cuCtxSynchronize (void)
514 CUresult CU_err
= cuCtxSynchronize ();
516 if (CU_err
!= CUDA_SUCCESS
)
518 log_error ("ERROR: %s %d\n", "cuCtxSynchronize()", CU_err
);
524 void hc_cuCtxSetCacheConfig (CUfunc_cache config
)
526 CUresult CU_err
= cuCtxSetCacheConfig (config
);
528 if (CU_err
!= CUDA_SUCCESS
)
530 log_error ("ERROR: %s %d\n", "cuCtxSetCacheConfig()", CU_err
);
536 void hc_cuDriverGetVersion (int *driverVersion
)
538 CUresult CU_err
= cuDriverGetVersion (driverVersion
);
540 if (CU_err
!= CUDA_SUCCESS
)
542 log_error ("ERROR: %s %d\n", "cuDriverGetVersion()", CU_err
);
548 void hc_cuModuleLoadDataEx (CUmodule
*module
, const void *image
, unsigned int numOptions
, CUjit_option
*options
, void **optionValues
)
550 CUresult CU_err
= cuModuleLoadDataEx (module
, image
, numOptions
, options
, optionValues
);
552 if (CU_err
!= CUDA_SUCCESS
)
554 log_error ("ERROR: %s %d\n", "cuModuleLoadDataEx()", CU_err
);