J'ai installé CUDA 9.1+cudnn-9.1+opencv 3.4.0+caffe
.
Quand j'ai essayé d'exécuter make all -j8
dans le répertoire caffe
, cette erreur s'est produite:
nvcc fatal: architecture gpu non prise en charge 'compute_20'
J'ai essayé de courir:
"cmake -D CMAKE_BUILD_TYPE=RELEASE -D CUDA_GENERATION=Kepler .."
mais ça n'a pas marché.
Essayez de modifier manuellement Makefile.config
pour supprimer compute_2*
architectures de ces lignes (les commentaires expliquent pourquoi):
# 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
Et ajoutez les architectures compute_6 * (voir les commentaires) pour que votre nouveau CUDA_Arch ressemble à ceci:
# 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
Ensuite, vous devrez make clean
avant make all
.
Vous pouvez utiliser cmake comme suit:
cmake [other_params] -D CUDA_Arch_NAME="Pascal" ..