当前位置:网站首页>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 department budget and expenditure radar chart
一些计时软件,生产力工具
GCD简单了解
Build finished with errors/Executable Not Found
[NLP] Interpretation of Transformer Theory
Qt 编译错误:C2228: “.key”的左边必须有类/结构/联合
OpenGL es 初识
让动画每次重复前都有延迟
canvas粒子变幻各种形状js特效
(C语言)程序环境和预处理
Redis Cluster - Sentinel Mode Principle (Sentinel)
loadrunner-Controller负载测试-各模块功能记录01测试场景设计
Source code analysis of GZIPInputStream class
ARC在编译和运行做了什么?
比较并交换 (CAS) 原理
The fifth chapter
作为面试官,关于线程池的问题我一般这样套路...
如何将亚马逊广告添加到您的 WordPress 网站(3 种方法)
【微信小程序开发】生命周期与生命周期函数
【LeetCode】Day108-和为 K 的子数组









