CUDA获取显卡数据

一个简单的获取Nvidia显卡信息的程序

#include<iostream>
int main()
{
    cudaDeviceProp prop;
    int count;
    cudaGetDeviceCount(&count);//获取设备数目,比如GTX295 有两个GPU(也就是双核) count为2
    for(int i=0;i<count;i++)
    {
        cudaGetDeviceProperties(&prop,i);//将第i个GPU数据放到prop中
        std::cout<<"显卡名称:"<<prop.name<<std::endl;
        std::cout<<"显存大小:"<<prop.totalGlobalMem/1024/1024<<" MB"<<std::endl;
        std::cout<<"一个block的共享内存大小:"<<prop.sharedMemPerBlock/1024<<" KB"<<std::endl;
        std::cout<<"block最大线程数:"<<prop.maxThreadsPerBlock<<std::endl;
    }
    system("pause");
return 0;
}

其中结构体cudaDeviceProp 用来存储显卡每个GPU的信息,其定义如下:

struct cudaDeviceProp {
    char name[256];
    size_t totalGlobalMem;
    size_t sharedMemPerBlock;
    int regsPerBlock;
    int warpSize;
    size_t memPitch;
    int maxThreadsPerBlock;
    int maxThreadsDim[3];
    int maxGridSize[3];
    size_t totalConstMem;
    int major;
    int minor;
    int clockRate;
    size_t textureAlignment;
    int deviceOverlap;
    int multiProcessorCount;
    int kernelExecTimeoutEnabled;
    int integrated;
    int canMapHostMemory;
    int computeMode;
    int maxTexture1D;
    int maxTexture2D[2];
    int maxTexture3D[3];
    int maxTexture2DArray[3];
    int concurrentKernels;
};
原文地址:https://www.cnblogs.com/fengyuehan/p/3587070.html