0
点赞
收藏
分享

微信扫一扫

在qtcreator中cuda驱动初始化、获取驱动版本和设备名称

M4Y 2022-04-03 阅读 62

cuInit-驱动初始化

1.cuInit用于初始化驱动API,如果不执行,cuda的所有API都会返回错误,全局执行一次就行
2.不需要cuDestroy,程序会自动销毁并释放

获取驱动版本、设备名称

1.cuDriverGetVersion(&driver_version):运行cuDriverGetVersion,驱动版本赋值给driver_version
2.cuDeviceGetName(device_name, sizeof(device_name), device):运行cuDeviceGetName,即可设备名称

在qt中实战

在pro中,

#cuda cudnn
INCLUDEPATH += /usr/local/cuda/include
LIBS += -L/usr/local/cuda/lib64
LIBS += -lcuda  #要添加这个哦,不然会出现error: undefined reference to `cuInit'的错误
#include <stdio.h> 
#include <string.h>
#include <cuda.h>  
int main()
{
    CUresult code=cuInit(0);  //CUresult 类型:用于接收一些可能的错误代码
    if(code != CUresult::CUDA_SUCCESS){
        const char* err_message = nullptr;
        cuGetErrorString(code, &err_message);    // 获取错误代码的字符串描述
        // cuGetErrorName (code, &err_message);  // 也可以直接获取错误代码的字符串
        printf("Initialize failed. code = %d, message = %s\n", code, err_message);
        return -1;
    }
    int driver_version = 0;
    code = cuDriverGetVersion(&driver_version);  // 获取驱动版本
    printf("CUDA Driver version is %d\n", driver_version); // 若driver_version为11020指的是11.2

    // 测试获取当前设备信息
    char device_name[100]; // char 数组
    CUdevice device = 0;
    code = cuDeviceGetName(device_name, sizeof(device_name), device);  // 获取设备名称、型号如:Tesla V100-SXM2-32GB // 数组名device_name当作指针
    printf("Device %d name is %s\n", device, device_name);
    return 0;
}

下一节:上下文管理设置

举报

相关推荐

0 条评论