一、环境
GPU:1080TI
CUDA:9.0
CUDNN:7.0.5
OpenCV:3.4.5
二、前期工作
1、下载darknet
git clone https://github.com/pjreddie/darknet
2、下载原版作者的权重文件
wget https://pjreddie.com/media/files/yolov3.weights
存放到 中的backup里
即
3、进入darknet修改Makefile配置
- 因为用到了gpu,cudnn,opencv。因此0改为1
4、执行编译操作
- 进入下载的darknet目录运行终端,此为编译命令:
make -j32
“
如果想退回编译之前可执行如下命令
make clean
”
编译下终端命令截图如下:
darknet-master文件中原本是如下文件:
编译之后的结果是如下文件:
- 解释用make -j32的原因(加快编译速度)
既然IO不是瓶颈,那CPU就应该是一个影响编译速度的重要因素了。
用make -j带一个参数,可以把项目在进行并行编译,比如在一台双核的机器上,完全可以用make -j4,让make最多允许4个编译命令同时执行,这样可以更有效的利用CPU资源。
还是用Kernel来测试:
用make: 40分16秒
用make -j4:23分16秒
用make -j8:22分59秒
由此看来,在多核CPU上,适当的进行并行编译还是可以明显提高编译速度的。但并行的任务不宜太多,一般是以CPU的