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?
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.
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
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