显卡从原来的GTX1080,更新为RTX2080,在Caffe-Yolo的时候不能正常运行,花了一段时间来理清整个流程的配置,希望能起到帮助
机器配置及软件需求
- Windows 7 + RTX2080
- VS 2015
2015是必要的版本 - CUDA 10.0
官方说明只有CUDA 10.0及以上支持Turing架构的显卡 - cudnn 7.3.1(可选)
- Anaconda 3 - 4.2.0
看起来无论是否配置python接口,均需要python的支持。caffe支持python2.7和python3.5两个版本,所以我们选的是Anaconda3 - 4.2.0,包含的是python3.5版本。 - cmake
- caffe - yolo
在github网站上的,https://github.com/eric612/Caffe-YOLOv3-Windows 在原始的caffe框架下整合了yolo。
开始安装
- 建议更新你的显卡驱动版本
- 更改配置文件
解压github下载的文件,进入目录Caffe-YOLOv3-Windows-master\scripts,利用Notepad++(任意其他软件)打开build_win.cmd。前边可以跳过,转到第69行开始进行配置。主要是这几项
WITH_NINJA=0
CPU_ONLY=0
PYTHON_VERSION=3
BUILD_PYTHON=1 - 返回根目录,打开命令行窗口。输入scripts\build_win.cmd,就会自动开始进行cmake。之后我遇到了一系列的问题
a. 第一个问题
是下载有关的依赖项,可能会很慢,但是我确实下载下来了,之后会进行解压。
b.继续编译遇到第二个问题
这里主要是CUDA的cublas_device.lib库无法找到,这个lib文件在cuda8和cuda9.2中是存在的,但是cuda10中已经没有这个库文件了。
再仔细寻找一下发现,findCUDA.cmake是由cmake\share\cmake3.11\modules提供的,我把他换成了opencv中提供的FindCUDA.cmake即可。
具体操作,将\opencv3.3.0(我的版本)\sources\cmake\目录下的FindCUDA文件夹和FindCuda.cmake拷贝至\Caffe-YOLOv3-Windows-master\cmake\Modules\目录下。
c.再次编译遇到第三个问题
编译的时候报了一个 错误,错误被黄字的warning给刷过去了,cmd看不到,需要再编译一次可以看到错误。
错误是由nvcc报的,不支持gpu架构“compute_481”,gpu架构是个什么呢。
图片是在维基百科找到的。左侧数字代表的是计算力,GTX1080Ti等一系列显卡是Pascal架构,对应的算力是6.1,在编译的时候应该是“compute_61”,我们的RTX2080是Turing架构,对应的是“compute_75”,显然“compute_481”是不正确的,所以报错。
解决办法:
在build_win.cmd中修改79行 CUDA_ARCH_NAME=Turing
在\Caffe-YOLOv3-Windows-master\cmake\下打开Cuda.cmake
修改以下几处
d.成功编译
经历了以上3个问题之后,就可以成功的编译caffe-yolo。
测试
- 成功编译后在根目录下打开cmd运行examples\demo_yolo_lite.cmd即可看到效果
cudnn
- 以上的过程是没有使用cudnn 的,使用cudnn的话需要
1.build_win.cmd的171行加入-DCUDNN_ROOT=你的路径 ^
2.CMakeLists.txt中的41行替换为
caffe_option(USE_CUDA “Build Caffe with CUDA support” ON)
caffe_option(USE_CUDNN “Build Caffe with cuDNN library support” ON IF USE_CUDA)
3.编译 - 但是经过我实际测试,加入了cudnn速度会变慢,原因暂时不明