一般使用 cmake-gui 界面化安裝 Caffe 時很少遇到這個問題,但是比如在 docker 中只能命令行編譯時,我們只能使用 makefile,這是我在 CUDA9.0 + cudnn7 的 docker 環境中配置遇到的問題。
我們可以打開 Makefile.config 文件,找到下面的內容:
-# For CUDA >= 9.0, comment the *_20 and *_21 lines for compatibility.
CUDA_ARCH := -gencode arch=compute_20,code=sm_20
-gencode arch=compute_20,code=sm_21
-gencode arch=compute_30,code=sm_30
-gencode arch=compute_35,code=sm_35
-gencode arch=compute_50,code=sm_50
-gencode arch=compute_52,code=sm_52
-gencode arch=compute_60,code=sm_60
-gencode arch=compute_61,code=sm_61
-gencode arch=compute_61,code=compute_61
如上面註釋所說,只要將:
-gencode arch=compute_20,code=sm_20
-gencode arch=compute_20,code=sm_21 \
註釋或者直接刪除即可,然後重新編譯。