cuda编程获取显卡数量

int gpu_count = -1;
cudaGetDeviceCount(&gpu_count);
std::cout << "gpu count: " << gpu_count << std::endl;

多显卡环境中设置显卡

cudaSetDevice(0)

多显卡环境下当cuda运算结束后需要reset显卡设备

cudaDeviceReset()

查询当前正在使用的设备号

int device_id;
cudaGetDevice(&device_id);
std::cout << "device id: " << device_id << std::endl;

cuda提供了一个内置结构体,可以查询到设备的很多信息

struct cudaDeviceProp {
    char name[256];                     //器件的名字
    size_t totalGlobalMem;              //Global Memory 的byte大小
    size_t sharedMemPerBlock;           //线程块可以使用的共用记忆体的最大值。byte为单位,多处理器上的所有线程块可以同时共用这些记忆体
    int regsPerBlock;                   //线程块可以使用的32位寄存器的最大值,多处理器上的所有线程快可以同时实用这些寄存器
    int warpSize;                       //按线程计算的wrap块大小
    size_t memPitch;                    //做内存复制是可以容许的最大间距,允许通过cudaMallocPitch()为包含记忆体区域的记忆提复制函数的最大间距,以byte为单位。
    int maxThreadsPerBlock;             //每个块中最大线程数
    int maxThreadsDim[3];               //块各维度的最大值
    int maxGridSize[3];                 //Grid各维度的最大值
    size_t totalConstMem;               //常量内存的大小
    int major;                          //计算能力的主代号
    int minor;                          //计算能力的次要代号
    int clockRate;                      //时钟频率
    size_t textureAlignment;            //纹理的对齐要求
    int deviceOverlap;                  //器件是否能同时执行cudaMemcpy()和器件的核心代码
    int multiProcessorCount;            //设备上多处理器的数量
    int kernelExecTimeoutEnabled;       //是否可以给核心代码的执行时间设置限制
    int integrated;                     //这个GPU是否是集成的
    int canMapHostMemory;               //这个GPU是否可以讲主CPU上的存储映射到GPU器件的地址空间
    int computeMode;                    //计算模式
    int maxTexture1D;                   //一维Textures的最大维度  
    int maxTexture2D[2];                //二维Textures的最大维度
    int maxTexture3D[3];                //三维Textures的最大维度
    int maxTexture2DArray[3];           //二维Textures阵列的最大维度
    int concurrentKernels;              //GPU是否支持同时执行多个核心程序
};

可以在程序开始时加上验证

int gpu_count = -1;
cudaGetDeviceCount(&gpu_count);

if (gpu_count < 1)
{
std::cout << "no gpu device !" << std::endl;
exit(0);
}

 

posted @ 2023-03-07 17:31  Wangtn  阅读(175)  评论(0编辑  收藏  举报