Freitag, April 10, 2020

nvcc fatal : Unsupported gpu-Architektur ‚compute_20‘, während die cuda-9.1+caffe+openCV 3.4.0 installiert ist

Habe ich installiert CUDA 9.1+cudnn-9.1+opencv 3.4.0+caffe.

Wenn ich versuchte zu laufen make all -j8 im caffe Verzeichnis, dieser Fehler ist aufgetreten:

nvcc fatal : Unsupported gpu-Architektur ‚compute_20‘

Ich habe versucht zu laufen:

"cmake -D CMAKE_BUILD_TYPE=RELEASE -D CUDA_GENERATION=Kepler .."

aber es hat nicht funktioniert.

  • CUDA-9.x + nicht unterstützt compute_20 (Fermi), Sie wahrscheinlich haben, um es zu deaktivieren, vielleicht mit ccmake können Sie es deaktivieren, manuell? nicht sicher sind, welche Variablen in Ihrem Projekt mit der Einstellung, aber wahrscheinlich werden Sie sehen, mehrere zahlen wie 2.0, 3.0, usw. Sie brauchen nur zu löschen 2.0
  • Das ist richtig. CUDA 9.1 nicht unterstützt compute_20 mehr. Sie müssen finden Sie eine makefile, die nicht rufen, dass Architektur, oder sonst Bearbeiten Sie die Datei makefile (bzw. CMakeLists.txt) zu entfernen Verweise auf compute_20 oder sm_20. Oder Sie wechseln konnte, um CUDA-8.
InformationsquelleAutor Lawrence_Liu | 2018-01-22

2 Kommentare

  1. 17

    Versuchen manuell Bearbeiten Makefile.config zu entfernen compute_2* Architekturen, die aus diesen Zeilen (Kommentare, die erklären, warum):

    # 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

    Und fügen Sie den compute_6* Architekturen (siehe die Kommentare), damit Ihre neuen CUDA_ARCH sieht wie folgt aus:

    # 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

    Dann müssen Sie make clean vor make all.

Kostenlose Online-Tests