web-dev-qa-db-fra.com

nvcc fatal: architecture gpu non prise en charge 'compute_20' pendant l'installation de cuda 9.1 + caffe + openCV 3.4.0

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

7
Lawrence_Liu

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.

17
Shai

Vous pouvez utiliser cmake comme suit:

cmake [other_params] -D CUDA_Arch_NAME="Pascal" ..
0
s0urcer