971 Stimmen

Wie erhalte ich die CUDA Version?

Gibt es einen schnellen Befehl oder ein Skript zur Überprüfung der installierten CUDA Version?

Ich habe das Handbuch der Version 4.0 im Installationsverzeichnis gefunden, bin mir aber nicht sicher, ob es sich um die aktuell installierte Version handelt oder nicht.

1218voto

harrism Punkte 24615

Wie Jared in einem Kommentar erwähnt hat, kann man das von der Kommandozeile aus tun:

nvcc --version

(oder /usr/local/cuda/bin/nvcc --version ) gibt die CUDA-Compiler-Version an (die mit der Toolkit-Version übereinstimmt).

Vom Anwendungscode aus können Sie die Laufzeit-API-Version abfragen mit

cudaRuntimeGetVersion()

oder die Treiber-API-Version mit

cudaDriverGetVersion()

Wie Daniel betont, ist deviceQuery eine SDK-Beispielanwendung, die die oben genannten Informationen zusammen mit den Gerätefunktionen abfragt.

Wie bereits erwähnt, können Sie auch den Inhalt der Datei version.txt verwenden (z. B. auf Mac oder Linux)

cat /usr/local/cuda/version.txt

Wenn jedoch eine andere Version des CUDA-Toolkits installiert ist als die, die über den Symlink von /usr/local/cuda kann dies eine ungenaue Version melden, wenn eine andere Version früher in Ihrem PATH als die oben genannten, also mit Vorsicht zu verwenden.

397voto

mostafa.elhoushi Punkte 2284

[Geänderte Antwort. Danke an alle, die sie korrigiert haben]

Wenn Sie

nvidia-smi

Sie sollten die CUDA-Version höchste CUDA-Version, die der installierte Treiber unterstützt in der rechten oberen Ecke der Befehlsausgabe. Zumindest habe ich diese Ausgabe für CUDA Version 10.0 z.B. gefunden, enter image description here

236voto

mwweb Punkte 6899

Unter Ubuntu Cuda V8:

$ cat /usr/local/cuda/version.txt

Sie können auch einige Einblicke in die CUDA-Versionen erhalten, die installiert sind:

$ ls -l /usr/local | grep cuda

Das Ergebnis sieht dann etwa so aus:

lrwxrwxrwx  1 root root    9 Mar  5  2020 cuda -> cuda-10.2
drwxr-xr-x 16 root root 4096 Mar  5  2020 cuda-10.2
drwxr-xr-x 16 root root 4096 Mar  5  2020 cuda-8.0.61

Bei einem vernünftigen PATH wird die Version cuda zeigt, sollte die aktive sein (in diesem Fall 10.2).

HINWEIS: Dies funktioniert nur, wenn Sie bereit sind anzunehmen, dass CUDA unter /usr/local/cuda installiert ist (was für das unabhängige Installationsprogramm mit dem Standard-Speicherort zutrifft, aber z.B. nicht für Distributionen mit integriertem CUDA als Paket). Ref: Kommentar von @einpoklum.

45voto

Shital Shah Punkte 54846

Für die CUDA-Version:

nvcc --version

Oder verwenden,

nvidia-smi

Für die cuDNN-Version:

Für Linux:

Verwenden Sie folgendes, um den Pfad für cuDNN zu finden:

$ whereis cuda
cuda: /usr/local/cuda

Dann verwenden Sie dies, um die Version aus der Header-Datei zu erhalten,

$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

Für Windows,

Verwenden Sie folgendes, um den Pfad für cuDNN zu finden:

C:\>where cudnn*
C:\Program Files\cuDNN7\cuda\bin\cudnn64_7.dll

Dann verwenden Sie dies, um die Version aus der Header-Datei auszulesen,

type "%PROGRAMFILES%\cuDNN7\cuda\include\cudnn.h" | findstr CUDNN_MAJOR

Wenn Sie zwei verschiedene Versionen für CUDA unter Windows erhalten - Verschiedene CUDA-Versionen, die von nvcc und NVIDIA-smi angezeigt werden

39voto

scottclowe Punkte 1507

In anderen Beiträgen wurde bereits beschrieben, welche Befehle zur Überprüfung der CUDA-Version verwendet werden können. Hier werde ich beschreiben, wie man die Ausgabe dieser Befehle in eine Umgebungsvariable der Form "10.2", "11.0" usw. umwandelt.

Zusammenfassend kann man sagen, dass Sie

nvcc --version

um die CUDA Version herauszufinden. Ich denke, dies sollte Ihre erste Anlaufstelle sein. Wenn Sie mehrere Versionen von CUDA installiert haben, sollte dieser Befehl die Version der Kopie ausgeben, die sich am höchsten in Ihrem PATH befindet.

Die Ausgabe sieht wie folgt aus:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Thu_Jun_11_22:26:38_PDT_2020
Cuda compilation tools, release 11.0, V11.0.194
Build cuda_11.0_bu.TC445_37.28540450_0

Wir können diese Ausgabe durch sed leiten, um nur die Versionsnummer MAJOR.MINOR herauszufinden.

CUDA_VERSION=$(nvcc --version | sed -n 's/^.*release \([0-9]\+\.[0-9]\+\).*$/\1/p')

Wenn sich nvcc nicht in Ihrem Pfad befindet, sollten Sie es ausführen können, indem Sie stattdessen den vollständigen Pfad zum Standardverzeichnis von nvcc angeben.

/usr/local/cuda/bin/nvcc --version

Die Ausgabe ist dieselbe wie oben, und sie kann auf dieselbe Weise analysiert werden.

Alternativ können Sie die CUDA Version auch der Datei version.txt entnehmen.

cat /usr/local/cuda/version.txt

Deren Ausgabe

CUDA Version 10.1.243

kann mit sed geparst werden, um nur die Versionsnummer MAJOR.MINOR herauszufinden.

CUDA_VERSION=$(cat /usr/local/cuda/version.txt | sed 's/.* \([0-9]\+\.[0-9]\+\).*/\1/')

Beachten Sie, dass sich die Datei version.txt manchmal auf eine andere CUDA-Installation bezieht als die Datei nvcc --version . In diesem Szenario sollte die nvcc-Version die Version sein, die Sie tatsächlich verwenden.

Wir können diese drei Methoden miteinander kombinieren, um die CUDA-Version wie folgt robust zu erhalten:

if nvcc --version 2&> /dev/null; then
    # Determine CUDA version using default nvcc binary
    CUDA_VERSION=$(nvcc --version | sed -n 's/^.*release \([0-9]\+\.[0-9]\+\).*$/\1/p');

elif /usr/local/cuda/bin/nvcc --version 2&> /dev/null; then
    # Determine CUDA version using /usr/local/cuda/bin/nvcc binary
    CUDA_VERSION=$(/usr/local/cuda/bin/nvcc --version | sed -n 's/^.*release \([0-9]\+\.[0-9]\+\).*$/\1/p');

elif [ -f "/usr/local/cuda/version.txt" ]; then
    # Determine CUDA version using /usr/local/cuda/version.txt file
    CUDA_VERSION=$(cat /usr/local/cuda/version.txt | sed 's/.* \([0-9]\+\.[0-9]\+\).*/\1/')

else
    CUDA_VERSION=""

fi

Diese Umgebungsvariable ist nützlich für nachgelagerte Installationen, z.B. wenn pip eine Kopie von pytorch installiert, die für die richtige CUDA-Version kompiliert wurde.

python -m pip install \
    "torch==1.9.0+cu${CUDA_VERSION/./}" \
    "torchvision==0.10.0+cu${CUDA_VERSION/./}" \
    -f https://download.pytorch.org/whl/torch_stable.html

In ähnlicher Weise können Sie die CPU-Version von pytorch installieren, wenn CUDA nicht installiert ist.

if [ "$CUDA_VERSION" = "" ]; then
    MOD="+cpu";
    echo "Warning: Installing CPU-only version of pytorch"
else
    MOD="+cu${CUDA_VERSION/./}";
    echo "Installing pytorch with $MOD"
fi

python -m pip install \
    "torch==1.9.0${MOD}" \
    "torchvision==0.10.0${MOD}" \
    -f https://download.pytorch.org/whl/torch_stable.html

Aber seien Sie vorsichtig, denn Sie können versehentlich eine reine CPU-Version installieren, obwohl Sie eigentlich GPU-Unterstützung haben wollten. Wenn Sie beispielsweise das Installationsskript auf einem Anmeldeknoten eines Servers ausführen, der keine GPUs hat, und Ihre Aufträge auf Knoten verteilt werden, die GPUs haben. In diesem Fall wird auf dem Anmeldeknoten normalerweise kein CUDA installiert sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X