nvcc fatal: Неподдерживаемая архитектура 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

Может ли кто-нибудь мне помочь?

6
задан 28 September 2017 в 18:09

4 ответа

У меня была такая же проблема сегодня утром. После установки 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. После перезагрузки архитектура GPU автоматически была установлена ​​в sm_50. У меня GTX 750 Ti, который согласно документации поддерживает CUDA 5.0. Таким образом, конфигурация кажется правильной! Вот команда для тестирования:

make runtest

Если вы получаете какие-либо ошибки при компиляции тестов, вы можете попробовать:

make runtest clean

Этот пример также работал для меня, и это больше чем на 7x быстрее (60 секунд), чем с OpenBLAS с 8 ядрами процессора (450 секунд)!

./examples/mnist/train_lenet.sh
1
ответ дан 18 July 2018 в 06:05

Что касается меня, мне пришлось прокомментировать -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) ....

Затем компиляция и тесты прошли хорошо.

6
ответ дан 18 July 2018 в 06:05

У меня была такая же проблема сегодня утром. После установки 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. После перезагрузки архитектура GPU автоматически была установлена ​​в sm_50. У меня GTX 750 Ti, который согласно документации поддерживает CUDA 5.0. Таким образом, конфигурация кажется правильной! Вот команда для тестирования:

make runtest

Если вы получаете какие-либо ошибки при компиляции тестов, вы можете попробовать:

make runtest clean

Этот пример также работал для меня, и это больше чем на 7x быстрее (60 секунд), чем с OpenBLAS с 8 ядрами процессора (450 секунд)!

./examples/mnist/train_lenet.sh
1
ответ дан 24 July 2018 в 18:30

Что касается меня, мне пришлось прокомментировать -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) ....

Затем компиляция и тесты прошли хорошо.

6
ответ дан 24 July 2018 в 18:30

Другие вопросы по тегам:

Похожие вопросы: