# include int main ( ) { int count; int i; cudaDeviceProp prop; printf ( "\n" ); printf ( "PROPERTIES:\n" ); printf ( " CUDA/C version\n" ); printf ( " Call cudaGetDeviceCount to count the CUDA devices.\n" ); printf ( " Call cudaGetDeviceProperties to query the properties\n" ); printf ( " of each CUDA device.\n" ); cudaGetDeviceCount ( & count ); printf ( "\n" ); printf ( " Number of CUDA devices = %d\n", count ); for ( i = 0; i < count; i++ ) { cudaGetDeviceProperties ( &prop, i ); printf ( "\n" ); printf ( " Properties for CUDA device %d\n", i ); printf ( " Name: %s\n", prop.name ); printf ( " Compute capability: %d.%d\n", prop.major, prop.minor ); printf ( " Clock rate: %d\n", prop.clockRate ); printf ( " Device copy overlap: " ); if ( prop.deviceOverlap ) { printf ( "Enabled\n" ); } else { printf ( "Disabled\n" ); } printf ( " Kernel execution timeout: " ); if ( prop.kernelExecTimeoutEnabled ) { printf ( "Enabled\n" ); } else { printf ( "Disabled\n" ); } printf ( " Total global memory: %ld\n", prop.totalGlobalMem ); printf ( " Total constant memory: %ld\n", prop.totalConstMem ); printf ( " Max mem pitch: %ld\n", prop.memPitch ); printf ( " Texture alignment: %ld\n", prop.textureAlignment ); printf ( " Multiprocessor count: %d\n", prop.multiProcessorCount ); printf ( " Shared memory per mp: %ld\n", prop.sharedMemPerBlock ); printf ( " Registers per mp: %d\n", prop.regsPerBlock ); printf ( " Threads in warp: %d\n", prop.warpSize ); printf ( " Max threads per block: %d\n", prop.maxThreadsPerBlock ); printf ( " Max thread dimensions: (%d, %d, %d )\n", prop.maxThreadsDim[0], prop.maxThreadsDim[1], prop.maxThreadsDim[2] ); printf ( " Max grid dimensions: (%d, %d, %d )\n", prop.maxGridSize[0], prop.maxGridSize[1], prop.maxGridSize[2] ); } /* Terminate. */ printf ( "\n" ); printf ( "PROPERTIES:\n" ); printf ( " Normal end of execution.\n" ); return 0; }