极简darknet环境搭建记录

《极简darknet环境搭建记录》

  darknet的环境搭建已经非常简单了,但是偶尔的一点小坑,可能会浪费一些时间,比如编译的时候使用CUDA报错,或者没找到OpenCV…简单记录一下,以后用的时候参考方便。

Key Words:darknet环境搭建、CUDA算力、通过pkg-config找到OpenCV


Beijing, 2020

作者:RaySue

Code:https://github.com/pjreddie/darknet

Agile Pioneer  


修改MakeFile

GPU=1
CUDNN=1
CUDNN_HALF=1
OPENCV=1
AVX=0
OPENMP=1
LIBSO=1  # 生成libdarknet.so
ZED_CAMERA=0
ZED_CAMERA_v2_8=0

...

# 根据你自己的GPU型号来选择
ARCH= -gencode arch=compute_30,code=sm_30 \
      -gencode arch=compute_35,code=sm_35 \
      -gencode arch=compute_50,code=[sm_50,compute_50] \
      -gencode arch=compute_52,code=[sm_52,compute_52] \
      -gencode arch=compute_61,code=[sm_61,compute_61]
        
...


CUDA 算力设置

  • 如果使用 GPU 就需要设置 ARCH,如果设置不当就会导致编译问题,这是由于不同型号的 GPU 对应着不同的算力,但是是向下兼容的,所以编译程序的时候需要注意一下。

  GPU有个重要参数,计算能力,计算能力的值对应GPU的“代”值,如计算能力3.0,对应的“代”为sm_30,也对应kepler架构。

  比如:compute_30以上的程序,计算能力高的GPU可以运行编译成低代的程序,反之则不行,如计算能力6.1的GPU可以运行编译成compute_30,sm_30的程序,而-arch=compute_30;-code=sm_30在计算能力3.0及以上的GPU都可以运行编译的程序。但计算能力2.0的GPU就不能运行了。

  –generate-code保证用户GPU可以动态选择最适合的GPU框架。


OpenCV pkg-config 配置

export PKG_CONFIG_PATH=/export/gpudata/surui/opencv-3.4.1/release/lib64/pkgconfig

配置好 PKG_CONFIG_PATH 变量后,下面两条命令就有值了

  • pkg-config --cflags opencv

    • 得到所有的头文件的目录位置
  • pkg-config --libs opencv

    • 得到库文件的目录位置,以及所有的依赖库的名字

编译

  • make -j31

参考

  1. Matching CUDA arch and CUDA gencode for various NVIDIA architectures

  2. pkg-config

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值