#include"check_tool.h" #include #include using namespace std; #define checkCudaErrors(S) do {CUresult status; \ status = S; \ if (status != CUDA_SUCCESS ) {std::cout << __LINE__ <<" checkCudaErrors - status = " << status << std::endl; \ exit(EXIT_FAILURE);}\ } while (false) int CheckCUDAProperty( int devId ) { cuInit(0); CUdevice dev = devId; size_t memSize = 0; char devName[256] = {0}; int major = 0, minor = 0; CUresult rlt = CUDA_SUCCESS; checkCudaErrors(cuDeviceGetAttribute(&major, CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR, dev)); checkCudaErrors(cuDeviceGetAttribute(&minor, CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR, dev)); checkCudaErrors( cuDeviceGetName(devName, sizeof( devName ), dev) ); printf( "Using GPU Device %d: %s has SM %d.%d compute capability\n", dev, devName, major, minor ); rlt = cuDeviceTotalMem( &memSize, dev ); checkCudaErrors( rlt ); printf( "Total amount of global memory: %4.4f MB\n", (float)memSize / ( 1024 * 1024 ) ); return 0; } int main(int argc, char *argv[]) { printf("start \n"); if (argc != 3) { fprintf(stderr, "./xxx uri gpu_id\n"); return -1; } char* uri = argv[1]; char* gpuid = argv[2]; CheckCUDAProperty(atoi(gpuid)); evalQuality(uri,gpuid); return 0; }