Sådan installeres CUDA Toolkit på Debian 12, 11 eller 10

NVIDIAs CUDA, eller Compute Unified Device Architecture, er et kraftfuldt værktøj til parallel computing. Den bruger NVIDIA-grafikbehandlingsenheder (GPU'er) til at øge hastigheden på computeropgaver. Denne vejledning viser dig, hvordan du installerer CUDA på Debian 12 Bookworm, Debian 11 Bullseye og Debian 10 Buster. Vi vil bruge NVIDIAs APT-lager til hver Debian-version for at sikre, at alt kører glat.

Hvad får CUDA Toolkit til at skille sig ud:

  • Parallel behandling: CUDA lader din software køre mange opgaver samtidigt på NVIDIA GPU'er. Dette er fantastisk til job, der kræver meget computerkraft.
  • Support til mange sprog: Du kan bruge CUDA med programmeringssprog som C, C++ og Fortran. Det fungerer også med andre computerværktøjer som OpenCL og DirectCompute.
  • Komplet udviklingsværktøj: NVIDIA giver udviklere et komplet sæt værktøjer med Nsight Eclipse Edition. Det hjælper med at bygge, fejlfinde og forbedre CUDA-applikationer.
  • Brugsklare biblioteker: CUDA har sine biblioteker til GPU-opgaver. Eksempler omfatter cuBLAS til matematiske operationer og cuFFT til dataanalyse.
  • Fremtidsklar design: CUDA er lavet til at fungere med nye og kommende NVIDIA GPU'er. Dette betyder, at din software kan forbedres uden at ændre meget af din kode.

Før du installerer CUDA på Debian:

  • Tjek dit system: Sørg for, at din computers hardware og software er klar til CUDA. NVIDIA har en liste over GPU'er og systembehov, du kan tjekke.
  • Brug den rigtige kilde: Denne vejledning fokuserer på NVIDIAs APT-lager til Debian. Det er den bedste måde at få en stabil og velfungerende version af CUDA til dit Debian-system.
  • Hold dig opdateret: Det er en god idé at lede efter opdateringer nu og da. NVIDIA bringer ofte nye funktioner og rettelser frem for at gøre CUDA bedre.

For at afslutte denne introduktion kan forståelse og brug af CUDA på Debian øge dine applikationer markant. Efterhånden som vi bevæger os fremad, vil vi dykke dybere ned i installationsprocessen og bedste praksis for at få mest muligt ud af NVIDIAs CUDA-værktøjssæt på dit Debian-system.

Rydning af eksisterende CUDA- og NVIDIA-installationer (situationsbestemt)

Før du installerer NVIDIA-drivere eller overvejer versionsopgraderinger på Debian, er det afgørende at starte med en ren tavle. Det betyder, at du fjerner alle eksisterende NVIDIA-installationer fra dit Debian-system. Dette trin sikrer, at du undgår potentielle problemer som følge af overlappende installationer. Hvis du er ny til NVIDIA-driverinstallationer, kan du springe dette afsnit over og fortsætte til det næste.

Metode 1: Afinstallation af NVIDIA-pakker installeret via APT

Hvis du tidligere har brugt APT-pakkehåndteringen til at installere NVIDIA-drivere, kan du bruge en enkelt kommando til at fjerne alle NVIDIA-relaterede pakker. Denne handling fjerner effektivt NVIDIA fra dit system. Indtast følgende kommando i din terminal:

sudo apt autoremove cuda* nvidia* --purge

Denne kommando bruger autoremove træk ved apt kommando. Det fjerner pakker, der automatisk blev installeret for at tilfredsstille afhængigheder for andre pakker, men som ikke længere er nødvendige. Det nvidia* mønster identificerer alle pakker, der starter med 'nvidia'. Det --purge mulighed fortæller apt at fjerne ikke kun pakkerne, men også deres tilknyttede konfigurationsfiler.

Metode 2: Afinstallation af NVIDIA-drivere installeret via Runfile

Hvis du har installeret NVIDIA-drivere ved hjælp af en .run fil (generelt ikke anbefalet på grund af bedre alternativer som NVIDIA CUDA-depotet), er en anden tilgang nødvendig for dens fjernelse.

For at fjerne installationstypen runfil skal du udføre følgende kommando:

sudo /usr/bin/nvidia-uninstall

Denne kommando kører nvidia-uninstall script, der følger med runfil-installationen. Scriptet fjerner metodisk NVIDIA-driveren, der blev installeret ved hjælp af runfilen.

Metode 3: Afinstallation af CUDA Toolkit installeret via Runfile

Hvis du har installeret CUDA-værktøjssættet ved hjælp af en runfil, er det også vigtigt at fjerne dette. Fjernelsesprocessen ligner den for NVIDIA-driverne. For at fjerne CUDA-værktøjssættet skal du udføre følgende kommando:

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

Udskift i kommandoen ovenfor X.Y med versionsnummeret på dit installerede CUDA-værktøjssæt. Denne kommando kører cuda-uninstall script, som er inkluderet i runfil-installationen af ​​CUDA-værktøjssættet. Scriptet er designet til at fjerne CUDA-værktøjssættet metodisk fra dit Debian-system.

Aktiver Contrib og Non-Free Repositories

Det indledende trin involverer at tilføje "bidrag" og "ikke-gratis"-lagre til din liste over Debian-lagre. Proceduren varierer fra Debian 12 Bookworm, så det er afgørende at bruge kommandoen, der svarer til din specifikke version af Debian-distributionen.

Først og fremmest skal du kontrollere, at følgende er installeret på dit Debian-system:

sudo apt install software-properties-common -y

Bogorm og frem:

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

Bullseye og Buster nedad:

sudo add-apt-repository contrib non-free

Før du fortsætter, skal du sørge for at køre en hurtig APT-opdatering for at opdatere dit pakkeindeks:

sudo apt update

Tilføj NVIDIA APT Repository på Debian

Den mest effektive metode til CUDA-installation er direkte fra NVIDIA CUDA-lageret. Denne tilgang sikrer, at brugerne modtager rettidige opdateringer, herunder nye funktioner, fejlrettelser, sikkerhedsrettelser og forbedringer.

Forberedelse af Debian-systemet før CUDA-installation

Før du starter installationsprocessen, er det afgørende at forberede dit Debian-system korrekt. Dette betyder, at du skal installere flere forudsætningspakker. Selvom nogle af disse pakker allerede er på dit system, er det klogt at dobbelttjekke. Udfør følgende kommando i din terminal:

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

Denne kommando installerer vigtige pakker, som vil være afgørende for de efterfølgende trin. Blandt dem, dirmngr administrerer nøgler, ca-certificates håndterer SSL-certifikater, software-properties-common administrerer softwarelagre, apt-transport-https sikrer sikre pakkedownloads, dkms administrerer kernemoduler, og curl letter download af filer fra internettet.

Godkendelse af installation med NVIDIA Repository GPG Key

Det er afgørende at sikre ægtheden og integriteten af ​​softwarepakker. Når du importerer GPG-nøglen til din specifikke Debian-version, verificerer du ægtheden af ​​lagerpakkerne. Nøglen signerer pakkerne, og ved at importere dem fortæller du dit system at stole på disse signerede pakker.

Bogorm, løb:

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, løb:

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, brug:

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

Integrering af NVIDIA-lageret i dit Debian-system

Med GPG-nøglen kan du nu tilføje NVIDIA-lageret til dit Debian-system. Dette lager indeholder de nødvendige pakker til CUDA-installation.

Bogorm, brug:

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, brug:

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, brug:

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

Trin 4: Opdatering af pakkelisten

Efter tilføjelse af NVIDIA-lageret er det afgørende at opdatere dit systems pakkeliste. Dette sikrer, at dit system genkender de nye pakker fra NVIDIA-lageret. For at opdatere skal du køre:

sudo apt update

Installer CUDA med NVIDIA-drivere

Søg efter CUDA-drivere

Du kan installere CUDA og de nyeste NVIDIA-drivere, når du har forudsætningerne. Vi anbefaler dog at kontrollere de tilgængelige driverversioner ved hjælp af APT show-kommandoen, før du fortsætter:

apt show cuda-drivers -a

Dette vil udsende en liste over tilgængelige pakker til forskellige NVIDIA-driverversioner.

Alternativt kan du også bekræfte den tilgængelige CUDA-version ved hjælp af kommandoen APT Policy:

sudo apt policy cuda

Fortsæt med at installere Cuda-drivere

Denne kommando vil vise tilgængelige CUDA-versioner. Vælg den version, der passer bedst til dine behov. Denne vejledning viser, hvordan du installerer den seneste tilgængelige version.

Husk at udskifte 545 med 535,530, 525, 520, 515osv., baseret på dit valg.

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

Fuldfør installationen og genstart

Når installationen er fuldført, genstart dit system for at sikre, at alle ændringer træder i kraft:

sudo reboot

Dette trin færdiggør CUDA-opsætningen på dit Debian-system og sikrer, at du effektivt kan udnytte dets muligheder.

Kom godt i gang med CUDA

Vurdering af GPU-kapaciteter

Før du dykker ned i CUDA-programmering, er det vigtigt at forstå din GPU's muligheder. Forskellige GPU'er understøtter forskellige CUDA-versioner, hver med unikke attributter som antallet af kerner, hukommelsesstørrelser og mere. For at få detaljerede oplysninger om din GPU skal du bruge nvidia-smi kommando:

nvidia-smi

Denne kommando giver indsigt i forskellige GPU-attributter, såsom dens navn, samlede hukommelse og understøttede CUDA-version.

Oprettelse af dit første CUDA-program

For at sætte gang i tingene, udvikler vi et grundlæggende CUDA-program, kompilerer det og eksekverer det for at sikre, at alt fungerer korrekt. Begynd med at oprette en ny fil med .cu udvidelse, som er standard for CUDA-programmer. Du kan bruge en hvilken som helst teksteditor til dette:

nano helloworld.cu

Indsæt følgende kode i filen. Dette enkle program viser et "Hej, verden!" besked fra GPU'en:

#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;
}

For at kompilere dette program skal du bruge nvcc kommando, som står for NVIDIA CUDA Compiler:

nvcc helloworld.cu -o helloworld

Kør nu det kompilerede program:

./helloworld

Outputtet skal vise følgende:

Hej verden fra CPU! Hej verden fra GPU!

Avanceret CUDA-programmering: Matrix multiplikation

For yderligere at demonstrere CUDAs muligheder, lad os udvikle et program, der udfører matrixmultiplikation ved hjælp af CUDA. Dette vil vise, hvordan CUDA effektivt kan håndtere meget parallelle opgaver.

Start med at oprette en ny fil:

nano matrixmul.cu

Indsæt følgende kode i matrixmul.cu fil. Dette program udfører matrix multiplikation på GPU'en:

__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;
    }
} 

Kompiler programmet ved hjælp af nvcc kommando:

nvcc matrixmul.cu -o matrixmul

Udfør derefter det kompilerede program:

./matrixmul

Outputtet vil præsentere resultatet af matrixmultiplikationsoperationen. Dette eksempel illustrerer, hvordan CUDA effektivt kan håndtere parallelle opgaver som matrixmultiplikation, hvilket giver et betydeligt ydelsesboost sammenlignet med traditionel CPU-udførelse.

Konklusion

I denne omfattende vejledning har vi omhyggeligt installeret CUDA Toolkit på Debian 12 Bookworm, Debian 11 Bullseye og Debian 10 Buster. Ved at følge de skitserede trin kan brugerne udnytte beregningskraften fra NVIDIA GPU'er og låse op for en række muligheder for højtydende computeropgaver. Det er vigtigt at sikre, at installationen stemmer overens med den specifikke Debian-version for at garantere stabilitet og optimal ydeevne. At holde sig opdateret med de seneste udgivelser og officiel dokumentation er afgørende, efterhånden som teknologien udvikler sig. De officielle NVIDIA-ressourcer og -fora er uvurderlige for dem, der ønsker at dykke dybere ned i CUDAs muligheder eller fejlfinde specifikke problemer.

Joshua James
Følg mig
Seneste indlæg af Joshua James (se alt)

Skriv en kommentar