Come verificare la versione di CUDA su Ubuntu (Guida alla compatibilità con cuDNN)

目次

1. Introduzione

CUDA (Compute Unified Device Architecture) è una piattaforma di calcolo parallelo sviluppata da NVIDIA che utilizza le GPU. È ampiamente usata per il machine learning, il deep learning, il rendering 3D e molti altri carichi di lavoro computazionali.

Quando si utilizza CUDA in un ambiente Ubuntu, è importante verificare la versione di CUDA per i seguenti motivi:

Compatibilità del driver

CUDA supporta solo versioni specifiche del driver NVIDIA, e l’incompatibilità può impedire il corretto funzionamento di CUDA.

Compatibilità delle librerie

Librerie come TensorFlow e PyTorch richiedono versioni specifiche di CUDA e cuDNN, quindi è essenziale verificare che le versioni corrette siano installate.

Evitare conflitti di ambiente

Se sul sistema sono installate più versioni di CUDA, è necessario sapere quale versione è attualmente attiva e passare da una all’altra secondo necessità.

Questa guida spiega chiaramente come verificare la versione di CUDA su Ubuntu.

2. Come verificare la versione di CUDA su Ubuntu

Su Ubuntu, è possibile controllare la versione di CUDA con i seguenti metodi.

Metodo 1: Controllare con nvidia-smi (Metodo più semplice)

Il driver NVIDIA include uno strumento chiamato nvidia-smi (NVIDIA System Management Interface) che mostra le informazioni sulla GPU.

Comando

nvidia-smi

Output di esempio

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 530.41.03    Driver Version: 530.41.03    CUDA Version: 12.1     |
+-----------------------------------------------------------------------------+

Punti chiave

  • La riga CUDA Version: 12.1 indica la massima versione di CUDA supportata dal driver.
  • Questa può differire dalla versione effettivamente installata del CUDA Toolkit, quindi controlla anche i metodi successivi.

Metodo 2: Controllare con nvcc -V (per gli sviluppatori)

Se CUDA è installato correttamente, è possibile verificare la versione di nvcc, il compilatore CUDA.

Comando

nvcc -V

Output di esempio

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Sun_Jul_30_19:09:40_PDT_2023
Cuda compilation tools, release 12.1, V12.1.105

Punti chiave

  • release 12.1, V12.1.105 → Indica la versione del CUDA Toolkit installata.
  • Potrebbe non corrispondere alla versione mostrata da nvidia-smi.

Metodo 3: Controllare version.txt (Verifica manuale)

Se CUDA è installato in /usr/local/cuda, il file version.txt contiene le informazioni sulla versione.

Comando

cat /usr/local/cuda/version.txt

Output di esempio

CUDA Version 12.1.105

Punti chiave

  • Utile quando nvcc -V non è disponibile.
  • È necessario assicurarsi che /usr/local/cuda sia correttamente collegato (symlink).

3. Come verificare la versione di cuDNN

cuDNN (CUDA Deep Neural Network) è una libreria di deep learning usata con CUDA.
È importante controllare la versione di cuDNN insieme a quella di CUDA.

Metodo 1: Controllare cudnn_version.h

La versione di cuDNN è memorizzata nel file header cudnn_version.h.

Comando

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

Output di esempio

#define CUDNN_MAJOR 8
#define CUDNN_MINOR 9
#define CUDNN_PATCHLEVEL 1

Punti chiave

  • Indica che è installato cuDNN 8.9.1.
  • Il comando grep aiuta a estrarre facilmente le informazioni sulla versione.
  • cuDNN e CUDA devono essere compatibili; verifica l’abbinamento corretto.

Metodo 2: Controllare con dpkg (solo per Linux basato su Debian)

Su sistemi basati su Debian come Ubuntu, è possibile controllare i pacchetti cuDNN installati con dpkg.

Comando

dpkg -l | grep libcudnn

Output di esempio

ii  libcudnn8    8.9.1-1+cuda12.1    amd64    NVIDIA cuDNN Library

Punti chiave

  • La versione di cuDNN (8.9.1) è mostrata nel nome del pacchetto.
  • cuda12.1 indica la versione di CUDA compatibile.

Usa questi metodi per assicurarti che l’ambiente CUDA sia configurato correttamente.

4. Come gestire più versioni di CUDA installate

In Ubuntu è possibile installare più versioni di CUDA. Tuttavia, questo può creare confusione su quale versione sia attualmente attiva.
In questi casi, è necessario passare manualmente alla versione corretta.

Metodo 1: Cambiare versione usando update-alternatives

Ubuntu consente di passare da una versione di CUDA all’altra tramite lo strumento update-alternatives.

Verifica impostazioni attuali

update-alternatives --query cuda

Cambia versioni

sudo update-alternatives --config cuda

Esempio di output

There are 3 choices for the alternative cuda (providing /usr/local/cuda).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/local/cuda-11.8  100       auto mode
  1            /usr/local/cuda-10.2  50        manual mode
  2            /usr/local/cuda-11.8  100       manual mode
  3            /usr/local/cuda-12.1  110       manual mode

Press <enter> to keep the current choice[*], or type selection number:

Punti chiave

  • Eseguire update-alternatives --config cuda mostra tutte le versioni di CUDA disponibili.
  • È possibile selezionare la versione da usare inserendo il numero corrispondente.
  • Sono disponibili auto mode e manual mode; scegliere manual mode per il passaggio manuale.

Metodo 2: Configurare manualmente i collegamenti simbolici

È anche possibile attivare una versione specifica di CUDA regolando manualmente i collegamenti simbolici.

Verifica collegamento simbolico esistente

ls -l /usr/local/cuda

Esempio di output

lrwxrwxrwx 1 root root 20 Feb  1 12:34 /usr/local/cuda -> /usr/local/cuda-11.8

Cambia versione CUDA

sudo rm /usr/local/cuda
sudo ln -s /usr/local/cuda-12.1 /usr/local/cuda

Verifica

ls -l /usr/local/cuda

Punti chiave

  • /usr/local/cuda è usato come percorso predefinito di CUDA, quindi aggiornare questo collegamento cambia la versione attiva.
  • L’uso di ln -s rende semplice il passaggio tra versioni.

Utilizzando questi metodi, è possibile gestire più installazioni di CUDA e garantire che la versione corretta sia attiva.

5. Domande frequenti (FAQ)

Questa sezione riassume i problemi più comuni relativi al controllo delle versioni di CUDA. Usala per la risoluzione dei problemi.

Q1: nvcc -V non trovato!

Se il comando nvcc è assente, il percorso di CUDA potrebbe non essere impostato.

Soluzione 1: Verifica se CUDA è installato

ls /usr/local/cuda/

Soluzione 2: Aggiungi nvcc al PATH

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

Dopo questo, esegui nuovamente nvcc -V per confermare che funzioni.

Q2: Perché la versione di CUDA mostrata da nvidia-smi è diversa?

La versione di CUDA mostrata da nvidia-smi rappresenta la massima versione di CUDA supportata dal driver NVIDIA.

Esempio di verifica:

nvidia-smi

Esempio di output:

CUDA Version: 12.1

Tuttavia, ciò non indica la versione del Toolkit CUDA installata. Usa nvcc -V o version.txt per verificare la versione effettivamente installata.

Q3: Come verificare la compatibilità tra CUDA e cuDNN?

Il modo più accurato è consultare la matrice di supporto ufficiale di NVIDIA.

Sito ufficiale:

NVIDIA cuDNN Support Matrix

È inoltre consigliabile confermare la compatibilità controllando le versioni installate:

Verifica versione CUDA

nvcc -V

Verifica versione cuDNN

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

Gestendo correttamente queste versioni, è possibile evitare problemi legati a CUDA e cuDNN.

6. Riepilogo

Questo articolo ha spiegato come verificare la versione di CUDA in un ambiente Ubuntu.
Rivediamo i punti chiave.

Come verificare le versioni di CUDA

MethodCommandDescription
nvidia-sminvidia-smiShows the CUDA version supported by the driver
nvcc -Vnvcc -VShows the installed CUDA Toolkit version
version.txtcat /usr/local/cuda/version.txtManually check the installed CUDA version

Come verificare cuDNN

MethodCommandDescription
cudnn_version.hcat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2Check version from the header file
dpkgdpkg -l | grep libcudnnCheck installed cuDNN packages

Come cambiare versione di CUDA

MethodCommandDescription
update-alternativessudo update-alternatives --config cudaSwitch between multiple CUDA versions
Symbolic Linksudo ln -s /usr/local/cuda-XX.X /usr/local/cudaManually switch CUDA versions

Punti chiave

  • Verifica sempre la tua versione CUDA prima dello sviluppo
  • Controlla la compatibilità tra CUDA e cuDNN
  • Comprendi come cambiare versione quando esistono più installazioni di CUDA

Gestendo correttamente il tuo ambiente, puoi massimizzare le prestazioni e la stabilità di CUDA.
Speriamo che questa guida ti aiuti a verificare efficacemente le versioni di CUDA su Ubuntu.