5 #ifndef __CUDA_UTILITY_H_
6 #define __CUDA_UTILITY_H_
9 #include <cuda_runtime.h>
19 #define CUDA(x) cudaCheckError((x), #x, __FILE__, __LINE__)
24 #define CUDA_SUCCESS(x) (CUDA(x) == cudaSuccess)
29 #define CUDA_FAILED(x) (CUDA(x) != cudaSuccess)
34 #define CUDA_VERIFY(x) if(CUDA_FAILED(x)) return false;
39 #define LOG_CUDA "[cuda] "
51 inline cudaError_t cudaCheckError(cudaError_t retval,
const char* txt,
const char* file,
int line )
53 #if !defined(CUDA_TRACE)
54 if( retval == cudaSuccess)
63 printf(LOG_CUDA
"%s\n", txt);
66 if( retval != cudaSuccess )
68 printf(LOG_CUDA
" %s (error %u) (hex 0x%02X)\n", cudaGetErrorString(retval), retval, retval);
69 printf(LOG_CUDA
" %s:%i\n", file, line);
79 inline __device__ __host__
int iDivUp(
int a,
int b ) {
return (a % b != 0) ? (a / b + 1) : (a / b); }