Gestione di più versioni CUDA su un singolo computer: una guida completa |  di Chayma Zatout |  Ottobre 2023

 | Intelligenza-Artificiale

L’installazione di più versioni di CUDA Toolkit sul sistema può causare diversi effetti e conseguenze, alcuni dei quali potrebbero avere un impatto sul sistema:

  • Potrebbe portare a conflitti nel sistema PATH e variabili d’ambiente. Se non gestiti correttamente, questi conflitti possono influire sulla versione di CUDA utilizzata per impostazione predefinita.
  • Potrebbe richiedere versioni specifiche del driver GPU per prestazioni e compatibilità ottimali. L’installazione di una nuova versione potrebbe richiedere l’aggiornamento del driver GPU.
  • Alcune librerie e software potrebbero dipendere da una versione CUDA specifica. L’installazione di una nuova versione potrebbe interrompere la compatibilità con queste dipendenze.
  • Le applicazioni che si basano su CUDA potrebbero necessitare di modifiche per funzionare con la nuova versione. Le incompatibilità possono causare errori o comportamenti imprevisti.
  • La gestione errata di più versioni CUDA può causare instabilità del sistema o errori nelle applicazioni accelerate dalla GPU.

Pertanto, per gestire in modo sicuro più versioni di CUDA Toolkit per il tuo progetto, procedi nel seguente modo:

  1. Controllare la versione CUDA corrente del sistema.
  2. Scarica ed estrai i binari della versione desiderata.
  3. Eseguire il programma di installazione per installare solo il toolkit.

In questo tutorial, fornirò un esempio dettagliato e passo passo di come eseguire questa operazione. Inoltre, ti guiderò attraverso la configurazione del tuo ambiente virtuale dopo che i file binari saranno stati installati correttamente.

Vediamo quale versione CUDA è attualmente utilizzata dal sistema eseguendo il comando nvidia-smi :

Come puoi vedere, la versione CUDA è la 12.1.

Ora visualizziamo il CUDA disponibile nella mia macchina:

$ ls /usr/local/ | grep cuda
cuda
cuda-11.7
cuda-12
cuda-12.1

Ho tre diverse versioni disponibili sulla mia macchina.

Supponiamo che il progetto su cui lavorerò richieda CUDA Toolkit versione 11.8. Per ottenerlo, iniziamo visitando il sito Web NVIDIA CUDA Toolkit Archive: Qui . Individuiamo la versione specifica del CUDA Toolkit richiesta dal nostro progetto. È importante assicurarci di selezionare la versione compatibile con il nostro sistema operativo. Nel mio caso, ho scelto la piattaforma di destinazione:

La mia piattaforma di destinazione: Linux – x86_64 – Ubuntu – 22.04

Scegli la versione “runfile (locale)” di CUDA Toolkit che corrisponde al tuo sistema operativo. Questo particolare file in genere contiene un file .run estensione. Durante la selezione runfile (local) il sito Web fornisce le istruzioni di installazione. Nel mio caso le istruzioni fornite sono le seguenti:

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run

Tuttavia, è fondamentale tenere presente che il nostro obiettivo non è installare questa versione, poiché ne esiste già una nuova. Pertanto, dobbiamo solo seguire le prime istruzioni per scaricare il file:

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run

Il download può essere verificato confrontando il checksum MD5 pubblicato su questo link con quello del file scaricato.

“Un programma di installazione locale è autonomo. È un file di grandi dimensioni che deve essere scaricato da Internet solo una volta e può essere installato su più sistemi. I programmi di installazione locali sono il tipo di programma di installazione consigliato con connessioni Internet a larghezza di banda ridotta o laddove non è possibile utilizzare un programma di installazione di rete (ad esempio a causa di restrizioni del firewall).” (1)

A questo punto, apri un terminale, vai alla directory in cui hai trasferito il file runfile CUDA e rendi eseguibile il file runfile CUDA:

chmod +x cuda_11.8.0_520.61.05_linux.run

Ora eseguiamo il file di esecuzione CUDA con il file --silent E --toolkit flag per eseguire un’installazione invisibile di CUDA Toolkit:

sudo ./cuda_11.8.0_520.61.05_linux.run --silent --toolkit

Dove:

  • --silent : esegue un’installazione senza ulteriori input da parte dell’utente e con un output minimo della riga di comando.
  • --toolkit : installa solo CUDA Toolkit e mantieni i driver attuali.

Se ti viene chiesto di accettare il contratto, accettalo per procedere con l’installazione.

A questo scopo vengono estratti i file binari del toolkit CUDA. Possiamo assicurarcene eseguendo nuovamente il seguente comando:

$ ls /usr/local/ | grep cuda
cuda
cuda-11.7
cuda-11.8
cuda-12
cuda-12.1

Come potete vedere, cuda-11.8 è ora disponibile sulla mia macchina e la versione corrente del sistema rimane la stessa (puoi confermarlo eseguendo nvidia-smi ).

Questi passaggi consentono di installare i file binari della versione CUDA. Nella sezione successiva, ti mostrerò come configurare il tuo progetto per utilizzare la versione CUDA richiesta.

Quando si lavora con diversi progetti, si consiglia di utilizzare ambienti virtuali. Iniziamo creando un ambiente virtuale. Nel mio caso python3.8 era richiesto. Per creare un ambiente virtuale possiamo usare il seguente comando. Ho creato un ambiente denominato my_venv In venv una cartella dove ho messo gli ambienti virtuali:

python3.8 -m venv venv/my_env
source venv/my_env/bin/activate

Vediamo quale versione CUDA sta attualmente utilizzando:

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Thu_Nov_18_09:45:30_PST_2021
Cuda compilation tools, release 11.5, V11.5.119
Build cuda_11.5.r11.5/compiler.30672275_0

Come puoi vedere, l’ambiente creato non utilizza la versione CUDA richiesta, quindi dobbiamo impostarla manualmente aggiornando il file activate e aggiungendo le seguenti righe:

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

Puoi aggiornare il file di attivazione utilizzando il tuo editor preferito oppure puoi semplicemente eseguire il comando seguente per aggiungere testo alla fine del file. :

echo "export PATH=/usr/local/cuda-11.8/bin:$PATH" >> venv/my_env/bin/activate
echo "LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH" >> venv/my_env/bin/activate

Infine, dobbiamo riattivare l’ambiente ed eseguire il file nvcc comando ancora:

$ source venv/nerfstudio/bin/activate
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

Questo è tutto! Ora il progetto è configurato per eseguire la versione CUDA richiesta e senza conflitti!

Seguendo i passaggi descritti in questo tutorial, puoi mantenere con successo più versioni di CUDA sul tuo sistema senza riscontrare conflitti tra le installazioni. Questa flessibilità consente a ciascun progetto di utilizzare l’esatta versione CUDA richiesta, ottenuta attraverso la configurazione di variabili di ambiente su misura per le vostre esigenze specifiche.

Grazie per aver letto. Spero che questo tutorial ti sia piaciuto. Se apprezzi i miei tutorial, supportami seguendomi e iscrivendoti. In questo modo riceverai notifiche sui miei nuovi articoli. Se hai domande o suggerimenti, non esitare a lasciare un commento qui sotto.

(1) https://developer.nvidia.com/cuda-12-2-2-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=22.04&target_type=runfile_local

Tutte le immagini e le figure presenti in questo articolo la cui fonte non è menzionata nella didascalia sono dell’autore.

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *