main.cpp 1.33 KB
#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;
}