前两天导师给换了一块RTX2080Ti的新卡,在惊叹于RTX的高性能的同时,突然有一个小任务,需要重新拾取caffe,跑一下,结果 What! 一直显示cudnn报错,在考虑了几分钟后,认定为是CuDNN的版本太低啦,所以需要更新一下版本,结果就是随之而来的各种bug,在此仅献给自己这一天的各种modify。
首先,CudNN与Cuda版本是绑在一起的,单纯的修改cudnn是会报各种错的,所以需要连着CUDA一起更新(注意需要卸载旧的版本),RTX目前似乎最低支持CUDA 10.X,所以需要更新至10.X,这里需要说明CUDA 10.X会自动安装配套的显卡驱动,而没有进行选择,感觉这一点很差,但是尽量配套,因为如果不配套的话,在编译caffe的过程中,会有一些warning。
更新了cuda,还需要知道,源码安装的opencv也是和cuda匹配的,如果opencv的版本太低,在运行caffe的程序的时候,是会报libcudnn的错,所以,需要兼容的opencv版本,如果不兼容,会报以下错误的:意思是现有的CUDA版本已经不支持某些函数,所以需要匹配CUDA,在这里挑了一个大坑,因为为了匹配我选择了Opencv 4.X,但是,caffe已经不进行维护了,所以仅仅支持到opencv3.X,所以安装了4,X,最后还是会报错,而且在网上似乎也没有类似的解答,所以又重新安装3.X。注意在cmake的时候,最后一定要有..号,表示上级目录。
安装好opencv之后,在此编译caffe,这时候又出来一大堆对于opencv未定义的引用,CV::VideoCapture,而且这里还解决了使用anaconda编译caffe的问题,源头就在CMakeFile.config文件,里边因为我以前多注释了几段anaconda的路径,所以导致一直用anaconda编译失败,而且BLAS := OPEN,OPENCV_VERSION := 3,一定要看仔细了,我就是因为这里不小心打错了,修改了一下午。
最后终于是make pass