Come installare CUDA Toolkit su Debian 12, 11 o 10

CUDA di NVIDIA, o Compute Unified Device Architecture, è un potente strumento per il calcolo parallelo. Utilizza le unità di elaborazione grafica (GPU) NVIDIA per aumentare la velocità delle attività di elaborazione. Questa guida ti mostrerà come installare CUDA su Debian 12 Bookworm, Debian 11 Bullseye e Debian 10 Buster. Utilizzeremo il repository APT di NVIDIA per ogni versione di Debian per garantire che tutto funzioni senza intoppi.

Cosa distingue il toolkit CUDA:

  • Elaborazione parallela: CUDA consente al tuo software di eseguire molte attività contemporaneamente sulle GPU NVIDIA. Questo è ottimo per i lavori che richiedono molta potenza di calcolo.
  • Supporto per molte lingue: Puoi utilizzare CUDA con linguaggi di programmazione come C, C++ e Fortran. Funziona anche con altri strumenti informatici come OpenCL e DirectCompute.
  • Strumenti di sviluppo completi: NVIDIA offre agli sviluppatori un set completo di strumenti con Nsight Eclipse Edition. Aiuta a creare, eseguire il debug e migliorare le applicazioni CUDA.
  • Librerie pronte all'uso: CUDA ha le sue librerie per le attività GPU. Gli esempi includono cuBLAS per operazioni matematiche e cuFFT per l'analisi dei dati.
  • Design pronto per il futuro: CUDA è progettato per funzionare con le GPU NVIDIA nuove e future. Ciò significa che il tuo software può migliorare senza modificare gran parte del tuo codice.

Prima di installare CUDA su Debian:

  • Controlla il tuo sistema: Assicurati che l'hardware e il software del tuo computer siano pronti per CUDA. NVIDIA ha un elenco di GPU e esigenze di sistema che puoi verificare.
  • Usa la fonte giusta: Questa guida si concentra sul repository APT di NVIDIA per Debian. È il modo migliore per ottenere una versione stabile e ben funzionante di CUDA per il tuo sistema Debian.
  • Rimani aggiornato: È una buona idea cercare aggiornamenti di tanto in tanto. NVIDIA spesso presenta nuove funzionalità e correzioni per migliorare CUDA.

Per concludere questa introduzione, comprendere e utilizzare CUDA su Debian può potenziare in modo significativo le tue applicazioni. Man mano che andremo avanti, approfondiremo il processo di installazione e le migliori pratiche per ottenere il massimo dal toolkit CUDA di NVIDIA sul tuo sistema Debian.

Cancellazione delle installazioni CUDA e NVIDIA esistenti (situazionale)

Prima di installare i driver NVIDIA o considerare gli aggiornamenti di versione su Debian, è fondamentale iniziare da zero. Ciò significa rimuovere qualsiasi installazione NVIDIA esistente dal tuo sistema Debian. Questo passaggio garantisce di evitare potenziali problemi derivanti da installazioni sovrapposte. Se non hai esperienza con le installazioni dei driver NVIDIA, puoi saltare questa sezione e procedere a quella successiva.

Metodo 1: disinstallazione dei pacchetti NVIDIA installati tramite APT

Se in precedenza hai utilizzato il gestore pacchetti APT per installare i driver NVIDIA, puoi utilizzare un singolo comando per rimuovere tutti i pacchetti relativi a NVIDIA. Questa azione rimuoverà effettivamente NVIDIA dal tuo sistema. Inserisci il seguente comando nel tuo terminale:

sudo apt autoremove cuda* nvidia* --purge

Questo comando utilizza il autoremove caratteristica del apt comando. Rimuove i pacchetti che sono stati installati automaticamente per soddisfare le dipendenze di altri pacchetti ma che non sono più necessari. IL nvidia* pattern identifica tutti i pacchetti che iniziano con 'nvidia'. IL --purge l'opzione dice apt per rimuovere non solo i pacchetti ma anche i file di configurazione associati.

Metodo 2: disinstallazione dei driver NVIDIA installati tramite Runfile

Se hai installato i driver NVIDIA utilizzando un file .run file (generalmente sconsigliato a causa di alternative migliori come il repository NVIDIA CUDA), è necessario un approccio diverso per la sua rimozione.

Per rimuovere il tipo di installazione runfile, eseguire il comando seguente:

sudo /usr/bin/nvidia-uninstall

Questo comando esegue il nvidia-uninstall script fornito con l'installazione del file runfile. Lo script rimuove metodicamente il driver NVIDIA installato utilizzando il file di esecuzione.

Metodo 3: disinstallazione di CUDA Toolkit installato tramite Runfile

Se hai installato il toolkit CUDA utilizzando un file runfile, è essenziale rimuovere anche questo. Il processo di rimozione è simile a quello dei driver NVIDIA. Per rimuovere il toolkit CUDA, eseguire il comando seguente:

sudo /usr/local/cuda-X.Y/bin/cuda-uninstall

Nel comando precedente, sostituisci X.Y con il numero di versione del toolkit CUDA installato. Questo comando esegue il cuda-uninstall script, incluso nell'installazione del file run del toolkit CUDA. Lo script è progettato per rimuovere metodicamente il toolkit CUDA dal tuo sistema Debian.

Attiva Contrib e repository non gratuiti

Il passaggio iniziale prevede l'aggiunta dei repository "contrib" e "non-free" all'elenco dei repository Debian. La procedura varia a partire da Debian 12 Bookworm, quindi è fondamentale utilizzare il comando che corrisponde alla propria versione specifica della distribuzione Debian.

Innanzitutto, verifica che sul tuo sistema Debian siano installati quanto segue:

sudo apt install software-properties-common -y

Topo di biblioteca e successivi:

sudo add-apt-repository contrib non-free-firmware

Bullseye e Buster verso il basso:

sudo add-apt-repository contrib non-free

Prima di continuare, assicurati di eseguire un rapido aggiornamento APT per aggiornare l'indice del pacchetto:

sudo apt update

Aggiungi il repository NVIDIA APT su Debian

Il metodo più efficiente per l'installazione di CUDA proviene direttamente dal repository NVIDIA CUDA. Questo approccio garantisce che gli utenti ricevano aggiornamenti tempestivi, incluse nuove funzionalità, correzioni di bug, patch di sicurezza e miglioramenti.

Preparazione del sistema Debian prima dell'installazione di CUDA

Prima di iniziare il processo di installazione, è fondamentale preparare adeguatamente il tuo sistema Debian. Ciò significa che dovrai installare diversi pacchetti prerequisiti. Anche se alcuni di questi pacchetti sono già presenti nel tuo sistema, è consigliabile ricontrollarli. Esegui il seguente comando nel tuo terminale:

sudo apt install build-essential gcc dirmngr ca-certificates software-properties-common apt-transport-https dkms curl -y

Questo comando installa i pacchetti essenziali che saranno cruciali per i passaggi successivi. Tra loro, dirmngr gestisce le chiavi, ca-certificates gestisce i certificati SSL, software-properties-common gestisce repository software, apt-transport-https garantisce download sicuri dei pacchetti, dkms gestisce i moduli del kernel e curl facilita il download di file da Internet.

Autenticazione dell'installazione con la chiave GPG del repository NVIDIA

È fondamentale garantire l'autenticità e l'integrità dei pacchetti software. Quando importi la chiave GPG per la tua specifica versione Debian, verifichi l'autenticità dei pacchetti del repository. La chiave firma i pacchetti e, importandoli, dici al tuo sistema di fidarsi di questi pacchetti firmati.

Topo di biblioteca, corri:

curl -fSsL https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/3bf863cc.pub | sudo gpg --dearmor | sudo tee /usr/share/keyrings/nvidia-drivers.gpg > /dev/null 2>&1

Bullseye, corri:

curl -fSsL https://developer.download.nvidia.com/compute/cuda/repos/debian11/x86_64/3bf863cc.pub | sudo gpg --dearmor | sudo tee /usr/share/keyrings/nvidia-drivers.gpg > /dev/null 2>&1

Buster, usa:

curl -fSsL https://developer.download.nvidia.com/compute/cuda/repos/debian10/x86_64/3bf863cc.pub | sudo gpg --dearmor | sudo tee /usr/share/keyrings/nvidia-drivers.gpg > /dev/null 2>&1

Integrazione del repository NVIDIA nel tuo sistema Debian

Con la chiave GPG ora puoi aggiungere il repository NVIDIA al tuo sistema Debian. Questo repository contiene i pacchetti necessari per l'installazione di CUDA.

Topo di biblioteca, usa:

echo 'deb [signed-by=/usr/share/keyrings/nvidia-drivers.gpg] https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/ /' | sudo tee /etc/apt/sources.list.d/nvidia-drivers.list

Bullseye, usa:

echo 'deb [signed-by=/usr/share/keyrings/nvidia-drivers.gpg] https://developer.download.nvidia.com/compute/cuda/repos/debian11/x86_64/ /' | sudo tee /etc/apt/sources.list.d/nvidia-drivers.list

Buster, usa:

echo 'deb [signed-by=/usr/share/keyrings/nvidia-drivers.gpg] https://developer.download.nvidia.com/compute/cuda/repos/debian10/x86_64/ /' | sudo tee /etc/apt/sources.list.d/nvidia-drivers.list

Passaggio 4: aggiornamento dell'elenco dei pacchetti

Dopo aver aggiunto il repository NVIDIA, l'aggiornamento dell'elenco dei pacchetti del tuo sistema è fondamentale. Ciò garantisce che il tuo sistema riconosca i nuovi pacchetti dal repository NVIDIA. Per aggiornare, esegui:

sudo apt update

Installa CUDA con i driver NVIDIA

Cerca i driver CUDA

Puoi installare CUDA e i driver NVIDIA più recenti una volta ottenuti i prerequisiti. Tuttavia, ti consigliamo di verificare le versioni dei driver disponibili utilizzando il comando show di APT prima di procedere:

apt show cuda-drivers -a

Verrà visualizzato un elenco di pacchetti disponibili per varie versioni di driver NVIDIA.

In alternativa, potresti anche confermare la versione CUDA disponibile utilizzando il comando APT Policy:

sudo apt policy cuda

Procedi con l'installazione dei driver Cuda

Questo comando visualizzerà le versioni CUDA disponibili. Seleziona la versione più adatta alle tue esigenze. Questa guida mostrerà come installare l'ultima versione disponibile.

Ricordarsi di sostituire 545 con 535,530, 525, 520, 515, ecc., in base alla tua scelta.

sudo apt install nvidia-driver cuda-drivers-545 cuda

Completa l'installazione e riavvia

Al termine dell'installazione, riavvia il sistema per garantire che tutte le modifiche abbiano effetto:

sudo reboot

Questo passaggio finalizza la configurazione di CUDA sul tuo sistema Debian, assicurandoti di poter sfruttare efficacemente le sue capacità.

Iniziare con CUDA

Valutazione delle capacità della GPU

Prima di immergerti nella programmazione CUDA, comprendere le capacità della tua GPU è fondamentale. GPU diverse supportano diverse versioni CUDA, ciascuna con attributi univoci come il numero di core, le dimensioni della memoria e altro ancora. Per ottenere informazioni dettagliate sulla tua GPU, utilizza il file nvidia-smi comando:

nvidia-smi

Questo comando fornisce informazioni dettagliate su vari attributi della GPU, come nome, memoria totale e versione CUDA supportata.

Creazione del tuo primo programma CUDA

Per iniziare, svilupperemo un programma CUDA di base, lo compileremo e lo eseguiremo per garantire che tutto funzioni correttamente. Inizia creando un nuovo file con il file .cu estensione, che è standard per i programmi CUDA. Puoi utilizzare qualsiasi editor di testo per questo:

nano helloworld.cu

Inserisci il seguente codice nel file. Questo semplice programma visualizza un messaggio "Hello, World!" messaggio dalla GPU:

#include <stdio.h>

__global__ void helloFromGPU (void) {
    printf("Hello World from GPU!\n");
}

int main(void) {
    printf("Hello World from CPU!\n");
    helloFromGPU <<<1, 10>>>();
    cudaDeviceReset();
    return 0;
}

Per compilare questo programma, utilizzare il file nvcc comando, che sta per NVIDIA CUDA Compiler:

nvcc helloworld.cu -o helloworld

Ora esegui il programma compilato:

./helloworld

L'output dovrebbe visualizzare quanto segue:

Ciao mondo dalla CPU! Ciao mondo dalla GPU!

Programmazione CUDA avanzata: moltiplicazione di matrici

Per dimostrare ulteriormente le capacità di CUDA, sviluppiamo un programma che esegue la moltiplicazione di matrici utilizzando CUDA. Ciò mostrerà come CUDA può gestire in modo efficiente attività altamente parallele.

Inizia creando un nuovo file:

nano matrixmul.cu

Inserisci il seguente codice nel file matrixmul.cu file. Questo programma esegue la moltiplicazione di matrici sulla GPU:

__global__ void gpu_matrix_mult(int *a,int *b, int *c, int m, int n, int k)
{ 
    // Calculate the row & column index of the element
    int row = blockIdx.y * blockDim.y + threadIdx.y; 
    int col = blockIdx.x * blockDim.x + threadIdx.x;

    int sum = 0;
    if( row < m && col < k ) 
    {
        for(int j = 0; j < n; j++) 
        {
            sum += a[row * n + j] * b[j * k + col];
        }
        // Each thread computes one element of the block sub-matrix
        c[row * k + col] = sum;
    }
} 

Compilare il programma utilizzando il file nvcc comando:

nvcc matrixmul.cu -o matrixmul

Quindi, esegui il programma compilato:

./matrixmul

L'output presenterà il risultato dell'operazione di moltiplicazione della matrice. Questo esempio illustra come CUDA può gestire in modo efficiente attività parallele come la moltiplicazione di matrici, offrendo un significativo incremento delle prestazioni rispetto all'esecuzione tradizionale della CPU.

Conclusione

In questa guida completa, abbiamo installato meticolosamente CUDA Toolkit su Debian 12 Bookworm, Debian 11 Bullseye e Debian 10 Buster. Seguendo i passaggi descritti, gli utenti possono sfruttare la potenza di calcolo delle GPU NVIDIA, sbloccando un regno di possibilità per attività di elaborazione ad alte prestazioni. Garantire che l'installazione sia allineata alla specifica versione Debian è essenziale per garantire stabilità e prestazioni ottimali. Rimanere aggiornati con le ultime versioni e la documentazione ufficiale è fondamentale con l'evoluzione della tecnologia. Le risorse e i forum ufficiali di NVIDIA sono preziosi per coloro che desiderano approfondire le funzionalità di CUDA o risolvere problemi specifici.

Joshua James
Seguimi
Ultimi post di Joshua James (vedi tutto)

Lascia un commento