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
, 515
osv., 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.