Blame view

check_tool/main.cpp 1.33 KB
7e9074f2   Hu Chunming   添加check_tool
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
  #include"check_tool.h"
  
  #include <cuda.h>
  
  #include<iostream>
  
  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;
  }