当前位置:网站首页>darknet 硬件软件环境的设置和检测
darknet 硬件软件环境的设置和检测
2022-07-31 10:05:00 【Mr.Q】
1. 设置gpu卡号
cuda_set_device(gpu_index); // 通过给定gpu_index不同的值设置使用的显卡。
CHECK_CUDA(cudaSetDeviceFlags(cudaDeviceScheduleBlockingSync)); // 主机线程将阻塞,直到设备完成其工作。
/// <summary>
/// set the gpu used
/// </summary>
/// <param name="n">gpu index</param>
void cuda_set_device(int n)
{
gpu_index = n; // 全局变量
cudaError_t status = cudaSetDevice(n);
if(status != cudaSuccess) CHECK_CUDA(status);
}
2. 检查cuda和cudnn版本并获取显卡个数
void show_cuda_cudnn_info()
{
int cuda_version = 0, cuda_driver_version = 0, device_count = 0; // 初始化值
CHECK_CUDA(cudaRuntimeGetVersion(&cuda_version)); // cuda version: 11.1. cuda_version = 11*1000+1*10 = 11010
CHECK_CUDA(cudaDriverGetVersion(&cuda_driver_version)); // cuda_driver_version: 11.6. 11060
fprintf(stderr, " CUDA-version: %d (%d)", cuda_version, cuda_driver_version);
if(cuda_version > cuda_driver_version) fprintf(stderr, "\n Warning: CUDA-version is higher than Driver-version! \n"); // 安装的cuda必须小于系统支持的版本。
#ifdef CUDNN
fprintf(stderr, ", cuDNN: %d.%d.%d", CUDNN_MAJOR, CUDNN_MINOR, CUDNN_PATCHLEVEL); // 8 0 5
#endif // CUDNN
#ifdef CUDNN_HALF // 构建Tensor核心
fprintf(stderr, ", CUDNN_HALF=1");
#endif // CUDNN_HALF
CHECK_CUDA(cudaGetDeviceCount(&device_count)); // 获取显卡设备个数device_count
fprintf(stderr, ", GPU count: %d ", device_count);
fprintf(stderr, " \n");
}
3. 检查opencv版本
show_opencv_info();
void show_opencv_info()
{
std::cerr << " OpenCV version: " << CV_VERSION_MAJOR << "." << CV_VERSION_MINOR << "." << CVAUX_STR(CV_VERSION_REVISION) OCV_D
<< std::endl;
}
4. 检测gpu算力
char device_name[1024];
int compute_capability = get_gpu_compute_capability(net->gpu_index, device_name);
int get_gpu_compute_capability(int i, char *device_name)
{
typedef struct cudaDeviceProp cudaDeviceProp;
cudaDeviceProp prop;
cudaError_t status = cudaGetDeviceProperties(&prop, i);
CHECK_CUDA(status);
if (device_name) strcpy(device_name, prop.name); // gpu名称
int cc = prop.major * 100 + prop.minor * 10; // __CUDA_ARCH__ format. 8*100+6*10=860
return cc;
}
边栏推荐
猜你喜欢
随机推荐
js空气质量aqi雷达图分析
恋爱期间的赠与能否撤销
[ 动词词组 ] 合集
Come n times with the sword--05. Replace spaces
loadrunner脚本--添加集合点
Mybaits 常用问题详解
数字加分隔符
第五章
LeetCode二叉树系列——101.对称二叉树
canvas粒子变幻各种形状js特效
loadrunner-controller-场景执行run
NowCoderTOP23-27二叉树遍历——持续更新ing
js right dot single page scrolling introduction page
Business-(Course-Chapter-Subsection) + Course Publishing Some Business Ideas
Open Kylin openKylin automation developer platform officially released
postgresql 生成随机日期,随机时间
nodeJs--querystring模块
&#x开头的是什么编码?
Solve rpc error: code = Unimplemented desc = method CheckLicense not implemented
业务-(课程-章节-小节)+课程发布一些业务思路