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;
}
下一节:上下文管理设置