4 static void HandleError(cudaError_t err,
7 if (err != cudaSuccess) {
8 printf(
"%s in %s at line %d\n", cudaGetErrorString(err),
13 #define HANDLE_ERROR( err ) (HandleError( err, __FILE__, __LINE__ )) 16 #define HANDLE_NULL( a ) {if (a == NULL) { \ 17 printf( "Host memory failed in %s at line %d\n", \ 18 __FILE__, __LINE__ ); \ 19 exit( EXIT_FAILURE );}} 22 CUDA* CUDA::instance =
nullptr;
36 bool CUDA::printDevInfo()
42 LOG(
"GPU Spec : %s\n", devProp.name);
44 LOG(
" - Global Memory : %llu\n", devProp.totalGlobalMem);
45 LOG(
" - Const Memory : %llu\n", devProp.totalConstMem);
47 LOG(
" - Global Memory : %zu\n", devProp.totalGlobalMem);
48 LOG(
" - Const Memory : %zu\n", devProp.totalConstMem);
50 LOG(
" - MP(Multiprocessor) Count : %d\n", devProp.multiProcessorCount);
51 LOG(
" - Maximum Threads per MP : %d\n", devProp.maxThreadsPerMultiProcessor);
52 LOG(
" - Warp Size : %u\n", devProp.warpSize);
54 LOG(
" - Shared Memory per MP : %llu\n", devProp.sharedMemPerMultiprocessor);
56 LOG(
" - Shared Memory per MP : %zu\n", devProp.sharedMemPerMultiprocessor);
58 LOG(
" - Block per MP : %d\n", devProp.maxThreadsPerMultiProcessor / devProp.maxThreadsPerBlock);
60 LOG(
" - Shared Memory per Block : %llu\n", devProp.sharedMemPerBlock);
62 LOG(
" - Shared Memory per Block : %zu\n", devProp.sharedMemPerBlock);
64 LOG(
" - Maximum Threads per Block : %d\n", devProp.maxThreadsPerBlock);
65 LOG(
" - Maximum Threads of each Dimension of a Block (X: %d / Y: %d / Z: %d)\n",
66 devProp.maxThreadsDim[
_X], devProp.maxThreadsDim[
_Y], devProp.maxThreadsDim[
_Z]);
67 LOG(
" - Maximum Blocks of each Dimension of a Grid, (X: %d / Y: %d / Z: %d)\n",
68 devProp.maxGridSize[
_X], devProp.maxGridSize[
_Y], devProp.maxGridSize[
_Z]);
69 LOG(
" - Device supports allocating Managed Memory on this system : %d\n\n", devProp.managedMemory);
#define HANDLE_ERROR(err)