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

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

运行命令时make pycaffe,我遇到了以下错误:

NVCC src/caffe/solvers/adadelta_solver.cu nvcc fatal   : Unsupported
gpu architecture 'compute_20' Makefile:594: recipe for target
'.build_release/cuda/src/caffe/solvers/adadelta_solver.o' failed make:
*** [.build_release/cuda/src/caffe/solvers/adadelta_solver.o] Error 1

System Information
------------------

OS: ubuntu: 16.10

CUDA 8.0

cuDNN: 6.0 

CUDA_ARCH: 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

谁能帮我?

答案1

对于我来说,我不得不-gencode arch=compute_20注释掉Makefile.config

CUDA_ARCH := -gencode arch=compute_30,code=sm_30 \
    -gencode arch=compute_35,code=sm_35 \
    -gencode arch=compute_50,code=sm_50

我停在这里是50因为 CUDA 向deviceQuery我展示了Capability Major/Minor version number

/usr/local/cuda/samples/bin/x86_64/linux/release/deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 960M"
  CUDA Driver Version / Runtime Version          9.0 / 9.0
  CUDA Capability Major/Minor version number:    5.0
  Total amount of global memory:                 4044 MBytes (4240965632 bytes)
  ( 5) Multiprocessors, (128) CUDA Cores/MP:     640 CUDA Cores
  GPU Max Clock rate:                            1176 MHz (1.18 GHz)
....

然后编译和测试进展顺利。

答案2

我今天早上也遇到了同样的问题。安装 CUDA 和 cuDNN 后,需要重新启动(如这里建议的那样https://groups.google.com/forum/#!topic/caffe-users/WDOD3E04Avg),以便 CMake 正确检测到设置变量。因此,只需确保 CUDA 和 cuDNN 已正确安装,然后重新启动系统即可。如果仍然出现错误,则可能是您的 GPU 仅支持计算能力 2.0,因此我猜您可以尝试支持它的 CUDA 8.0。您可以在此处检查您的 GPU:https://developer.nvidia.com/cuda-gpus

我可以确认测试已在启用了 CUDA 9.0 和 cuDNN 7.0.2 的 PC 上成功运行。重启后,GPU 架构自动设置为 sm_50。我有一台 GTX 750 Ti,根据文档,它支持 CUDA 5.0。所以配置现在似乎正确了!以下是测试命令:

make runtest

如果在编译测试时遇到任何错误,您可以尝试:

make runtest clean

这个例子对我来说也有效,它比使用 8 个 CPU 核心的 OpenBLAS(450 秒)快 7 倍以上(60 秒)!

./examples/mnist/train_lenet.sh

答案3

在安装 NVcaffe(运行)时,我在 Jetson TX2 上也遇到了这个问题make -j4

nvidia jetson 论坛中的说明,这里,说替换:

-gencode arch=compute_61,code=sm_61

-gencode arch=compute_62,code=sm_62

在 中makefile.config。但是,该行不在我的配置文件中,因为按照说明,我拉取了 caffe-0.15,它不包含该行。所以最后,对我有用的是替换配置文件中的以下内容:

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_50,code=compute_50

CUDA_ARCH := -gencode arch=compute_50,code=sm_50 \
        -gencode arch=compute_52,code=sm_52 \
        -gencode arch=compute_60,code=sm_60 \
        -gencode arch=compute_62,code=sm_62 \
        -gencode arch=compute_61,code=compute_61

相关内容