web-dev-qa-db-fra.com

nvcc fatal: architecture gpu non prise en charge 'compute_20

Lors de l'exécution de la commande make pycaffe, j'ai rencontré l'erreur ci-dessous:

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

Quelqu'un peut-il m'aider?

6
Asha Datla

Quant à moi, je devais commenter le -gencode Arch=compute_20 dans 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

Je me suis arrêté à 50 car _deviceQuery de CUDA m'a montré 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)
....

Ensuite, la compilation et les tests se sont bien passés.

11
Matthieu

J'ai eu le même problème ce matin. Après avoir installé CUDA et cuDNN, il était nécessaire de redémarrer (comme suggéré ici https://groups.google.com/forum/#!topic/caffe-users/WDOD3E04Avg ), afin que CMake détecte correctement les variables définies . Assurez-vous simplement que CUDA et cuDNN sont correctement installés et redémarrez votre système. Si vous obtenez toujours l'erreur, vous pouvez avoir un GPU qui ne supporte que la capacité de calcul 2.0, donc je suppose que vous pourriez essayer CUDA 8.0 qui la supporte. Vous pouvez vérifier votre GPU ici: https://developer.nvidia.com/cuda-gpus

Je peux confirmer que les tests ont été exécutés avec succès sur mon PC avec CUDA 9.0 et cuDNN 7.0.2 activés. Après le redémarrage, l’architecture GPU a été automatiquement définie sur sm_50. J'ai une GTX 750 Ti qui, selon la documentation, prend en charge CUDA 5.0. Donc, la configuration semble correcte maintenant! Voici la commande pour tester:

make runtest

Si vous rencontrez des erreurs lors de la compilation des tests, vous pouvez essayer:

make runtest clean

Cet exemple a également fonctionné pour moi et il est plus de 7 fois plus rapide (60 secondes) qu'avec OpenBLAS avec 8 cœurs de processeur (450 secondes)!

./examples/mnist/train_lenet.sh
2
Adrian L.

J'ai également eu ce problème sur mon Jetson TX2 lors de l'installation de NVcaffe (exécutant make -j4).

Les instructions du forum nvidia jetson, ici , disons pour remplacer:

-gencode Arch=compute_61,code=sm_61

avec

-gencode Arch=compute_62,code=sm_62

dans makefile.config. Cependant, cette ligne n'était pas dans mon fichier de configuration car, suivant les instructions, j'ai tiré caffe-0.15, qui ne contient pas cette ligne. Donc au final, ce qui a fonctionné pour moi a été de remplacer ce qui suit dans mon fichier de configuration:

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

avec

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
1
DankMasterDan