nvcc致命:不受支持的gpu架构' compute_20'安装cuda 9.1 + caffe + openCV 3.4.0

时间:2018-01-22 14:30:27

标签: opencv cmake cuda caffe cudnn

我已安装CUDA 9.1+cudnn-9.1+opencv 3.4.0+caffe

当我尝试在make all -j8目录中运行caffe时,发生了以下错误:

  

nvcc致命:不受支持的gpu架构' compute_20'

我试图跑:

"cmake -D CMAKE_BUILD_TYPE=RELEASE -D CUDA_GENERATION=Kepler .."

但它没有用。

4 个答案:

答案 0 :(得分:13)

尝试手动修改Makefile.config以从这些行中删除compute_2*架构(注释解释原因):

# CUDA architecture setting: going with all of them.
# For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility.
# For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility.
# 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

添加compute_6 *架构(请参阅注释),以便新的CUDA_ARCH如下所示:

# CUDA architecture setting: going with all of them.
# For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility.
# For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility.
# For CUDA >= 9.0, comment the *_20 and *_21 lines for compatibility.
CUDA_ARCH := -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

然后您需要在make clean之前make all

答案 1 :(得分:1)

这为我修好了

cd caffe && mkdir build && cd build && \
   cmake -DUSE_CUDNN=1 -DUSE_NCCL=1 -DCUDA_ARCH_NAME=Manual -DCUDA_ARCH_BIN="50 52 60 61" .. && \
   sudo make -j"$(nproc)"

刚刚放弃了 2030 拱形支持

答案 2 :(得分:0)

您可以像下面这样使用cmake:

cmake [other_params] -D CUDA_ARCH_NAME="Pascal" ..

答案 3 :(得分:0)

Makefile.config 在用 cmake 编译时不使用。因此,从中删除 compute_2* 架构并不能解决问题。相反,您应该编辑 caffe/Cuda.cmake。在第 9 行,将已知 GPU 架构列表中的 20 21(20) 去掉。