Print device properties
| 11 | |
| 12 | // Print device properties |
| 13 | void printDevProp(cudaDeviceProp devProp, int device_id) |
| 14 | { |
| 15 | int clock_rate, kernel_exec_timeout, device_overlap; |
| 16 | cudaDeviceGetAttribute(&clock_rate, cudaDevAttrClockRate, device_id); |
| 17 | cudaDeviceGetAttribute(&kernel_exec_timeout, cudaDevAttrKernelExecTimeout, device_id); |
| 18 | cudaDeviceGetAttribute(&device_overlap, cudaDevAttrConcurrentManagedAccess, device_id); |
| 19 | |
| 20 | printf("Major revision number: %d\n", devProp.major); |
| 21 | printf("Minor revision number: %d\n", devProp.minor); |
| 22 | printf("Name: %s\n", devProp.name); |
| 23 | printf("Total global memory: %lu\n", devProp.totalGlobalMem); |
| 24 | printf("Total shared memory per block: %lu\n", devProp.sharedMemPerBlock); |
| 25 | printf("Total registers per block: %d\n", devProp.regsPerBlock); |
| 26 | printf("Warp size: %d\n", devProp.warpSize); |
| 27 | printf("Maximum memory pitch: %lu\n", devProp.memPitch); |
| 28 | printf("Maximum threads per block: %d\n", devProp.maxThreadsPerBlock); |
| 29 | for (int i = 0; i < 3; ++i) |
| 30 | printf("Maximum dimension %d of block: %d\n", i, devProp.maxThreadsDim[i]); |
| 31 | for (int i = 0; i < 3; ++i) |
| 32 | printf("Maximum dimension %d of grid: %d\n", i, devProp.maxGridSize[i]); |
| 33 | printf("Clock rate: %d\n", clock_rate); |
| 34 | printf("Total constant memory: %lu\n", devProp.totalConstMem); |
| 35 | printf("Texture alignment: %lu\n", devProp.textureAlignment); |
| 36 | printf("Concurrent copy and execution: %s\n", (device_overlap ? "Yes" : "No")); |
| 37 | printf("Number of multiprocessors: %d\n", devProp.multiProcessorCount); |
| 38 | printf("Kernel execution timeout: %s\n", (kernel_exec_timeout ? "Yes" : "No")); |
| 39 | return; |
| 40 | } |
| 41 | |
| 42 | |
| 43 | void InitCUDA (int verbose) |