Hoe CUDA Toolkit te installeren op Debian 12, 11 of 10

NVIDIA's CUDA, of Compute Unified Device Architecture, is een krachtig hulpmiddel voor parallel computergebruik. Het maakt gebruik van NVIDIA grafische verwerkingseenheden (GPU's) om de snelheid van computertaken te verhogen. Deze handleiding laat u zien hoe u CUDA installeert op Debian 12 Bookworm, Debian 11 Bullseye en Debian 10 Buster. We gebruiken NVIDIA's APT-repository voor elke Debian-versie om ervoor te zorgen dat alles soepel verloopt.

Wat maakt CUDA Toolkit opvallen:

  • Parallelle verwerking: Met CUDA kan uw software veel taken tegelijkertijd uitvoeren op NVIDIA GPU's. Dit is geweldig voor banen die veel rekenkracht vereisen.
  • Ondersteuning voor veel talen: U kunt CUDA gebruiken met programmeertalen zoals C, C++ en Fortran. Het werkt ook met andere computertools zoals OpenCL en DirectCompute.
  • Volledige ontwikkelingstools: NVIDIA biedt ontwikkelaars een volledige set tools met Nsight Eclipse Edition. Het helpt bij het bouwen, debuggen en verbeteren van CUDA-applicaties.
  • Kant-en-klare bibliotheken: CUDA heeft zijn bibliotheken voor GPU-taken. Voorbeelden hiervan zijn cuBLAS voor wiskundige bewerkingen en cuFFT voor data-analyse.
  • Toekomstbestendig ontwerp: CUDA is gemaakt om te werken met nieuwe en toekomstige NVIDIA GPU's. Dit betekent dat uw software kan verbeteren zonder veel van uw code te wijzigen.

Voordat u CUDA op Debian installeert:

  • Controleer uw systeem: Zorg ervoor dat de hardware en software van uw computer gereed zijn voor CUDA. NVIDIA heeft een lijst met GPU's en systeembehoeften die u kunt controleren.
  • Gebruik de juiste bron: Deze handleiding richt zich op NVIDIA's APT-repository voor Debian. Het is de beste manier om een ​​stabiele en goed werkende versie van CUDA voor uw Debian-systeem te krijgen.
  • Blijf op de hoogte: Het is een goed idee om zo nu en dan naar updates te zoeken. NVIDIA brengt vaak nieuwe functies en oplossingen uit om CUDA beter te maken.

Ter afsluiting van deze introductie: het begrijpen en gebruiken van CUDA op Debian kan uw toepassingen aanzienlijk verbeteren. Naarmate we verder komen, zullen we dieper ingaan op het installatieproces en de best practices om het maximale uit NVIDIA's CUDA-toolkit op uw Debian-systeem te halen.

Bestaande CUDA- en NVIDIA-installaties wissen (situationeel)

Voordat u NVIDIA-stuurprogramma's installeert of versie-upgrades op Debian overweegt, is het van cruciaal belang om met een schone lei te beginnen. Dit betekent dat u alle bestaande NVIDIA-installaties van uw Debian-systeem verwijdert. Deze stap zorgt ervoor dat u potentiële problemen als gevolg van overlappende installaties vermijdt. Als u nog niet bekend bent met het installeren van NVIDIA-stuurprogramma's, kunt u dit gedeelte overslaan en doorgaan naar het volgende.

Methode 1: NVIDIA-pakketten verwijderen die via APT zijn geïnstalleerd

Als u eerder de APT-pakketbeheerder hebt gebruikt om NVIDIA-stuurprogramma's te installeren, kunt u één enkele opdracht gebruiken om alle NVIDIA-gerelateerde pakketten te verwijderen. Met deze actie wordt NVIDIA effectief van uw systeem verwijderd. Voer het volgende commando in uw terminal in:

sudo apt autoremove cuda* nvidia* --purge

Deze opdracht maakt gebruik van de autoremove kenmerk van de apt commando. Het verwijdert pakketten die automatisch zijn geïnstalleerd om aan de afhankelijkheden van andere pakketten te voldoen, maar die niet langer nodig zijn. De nvidia* patroon identificeert alle pakketten die beginnen met 'nvidia'. De --purge optie vertelt apt om niet alleen de pakketten te verwijderen, maar ook de bijbehorende configuratiebestanden.

Methode 2: NVIDIA-stuurprogramma's verwijderen die via Runfile zijn geïnstalleerd

Als u NVIDIA-stuurprogramma's hebt geïnstalleerd met behulp van een .run bestand (over het algemeen niet aanbevolen vanwege betere alternatieven zoals de NVIDIA CUDA-repository), is een andere aanpak nodig voor de verwijdering ervan.

Om het runfile-installatietype te verwijderen, voert u de volgende opdracht uit:

sudo /usr/bin/nvidia-uninstall

Met deze opdracht wordt de nvidia-uninstall script dat bij de runfile-installatie wordt geleverd. Het script verwijdert methodisch het NVIDIA-stuurprogramma dat is geïnstalleerd met behulp van het runfile.

Methode 3: CUDA Toolkit verwijderen Geïnstalleerd via Runfile

Als u de CUDA-toolkit hebt geïnstalleerd met behulp van een runfile, is het ook essentieel om deze te verwijderen. Het verwijderingsproces is vergelijkbaar met dat van de NVIDIA-stuurprogramma's. Om de CUDA-toolkit te verwijderen, voert u de volgende opdracht uit:

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

Vervang in de bovenstaande opdracht X.Y met het versienummer van uw geïnstalleerde CUDA-toolkit. Met deze opdracht wordt de cuda-uninstall script, dat is opgenomen in de runfile-installatie van de CUDA-toolkit. Het script is ontworpen om de CUDA-toolkit methodisch van uw Debian-systeem te verwijderen.

Activeer Contrib en niet-vrije opslagplaatsen

De eerste stap bestaat uit het toevoegen van de “contrib”- en “niet-vrije” repository’s aan uw lijst met Debian-repository’s. De procedure varieert vanaf Debian 12 Bookworm, dus het gebruik van de opdracht die overeenkomt met uw specifieke versie van de Debian-distributie is van cruciaal belang.

Controleer eerst en vooral of het volgende op uw Debian-systeem is geïnstalleerd:

sudo apt install software-properties-common -y

Boekenwurm en verder:

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

Bullseye en Buster naar beneden:

sudo add-apt-repository contrib non-free

Zorg ervoor dat u, voordat u doorgaat, een snelle APT-update uitvoert om uw pakketindex te vernieuwen:

sudo apt update

Voeg NVIDIA APT-repository toe op Debian

De meest efficiënte methode voor CUDA-installatie is rechtstreeks vanuit de NVIDIA CUDA-repository. Deze aanpak zorgt ervoor dat gebruikers tijdig updates ontvangen, waaronder nieuwe functies, bugfixes, beveiligingspatches en verbeteringen.

Het Debian-systeem voorbereiden vóór de installatie van CUDA

Voordat u met het installatieproces begint, is het van cruciaal belang dat u uw Debian-systeem goed voorbereidt. Dit betekent dat u verschillende vereiste pakketten moet installeren. Zelfs als sommige van deze pakketten al op uw systeem staan, is het verstandig om dit nogmaals te controleren. Voer de volgende opdracht uit in uw terminal:

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

Met deze opdracht worden essentiële pakketten geïnstalleerd die cruciaal zijn voor de volgende stappen. Onder hen, dirmngr beheert sleutels, ca-certificates verzorgt SSL-certificaten, software-properties-common beheert softwarebronnen, apt-transport-https zorgt voor veilige pakketdownloads, dkms beheert kernelmodules, en curl vergemakkelijkt het downloaden van bestanden vanaf internet.

Installatie verifiëren met NVIDIA Repository GPG Key

Het is van cruciaal belang om de authenticiteit en integriteit van softwarepakketten te garanderen. Wanneer u de GPG-sleutel voor uw specifieke Debian-versie importeert, verifieert u de authenticiteit van de repositorypakketten. De sleutel ondertekent de pakketten en door ze te importeren, vertelt u uw systeem dat deze ondertekende pakketten moeten worden vertrouwd.

Boekenwurm, voer uit:

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

In de roos, rennen:

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

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

Integratie van de NVIDIA-repository in uw Debian-systeem

Met de GPG-sleutel kunt u nu de NVIDIA-repository aan uw Debian-systeem toevoegen. Deze repository bevat de benodigde pakketten voor CUDA-installatie.

Boekenwurm, gebruik:

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

In de roos, gebruik:

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

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

Stap 4: De pakketlijst vernieuwen

Na het toevoegen van de NVIDIA-repository is het bijwerken van de pakketlijst van uw systeem van cruciaal belang. Dit zorgt ervoor dat uw systeem de nieuwe pakketten uit de NVIDIA-repository herkent. Voer het volgende uit om bij te werken:

sudo apt update

Installeer CUDA met NVIDIA-stuurprogramma's

Zoek naar CUDA-stuurprogramma's

U kunt CUDA en de nieuwste NVIDIA-stuurprogramma's installeren zodra u aan de vereisten voldoet. We raden u echter aan de beschikbare stuurprogrammaversies te controleren met behulp van de opdracht APT show voordat u doorgaat:

apt show cuda-drivers -a

Hierdoor wordt een lijst met beschikbare pakketten voor verschillende NVIDIA-stuurprogrammaversies weergegeven.

Als alternatief kunt u ook de beschikbare CUDA-versie bevestigen met behulp van de opdracht APT Policy:

sudo apt policy cuda

Ga verder met Cuda-stuurprogramma's installeren

Met deze opdracht worden de beschikbare CUDA-versies weergegeven. Selecteer de versie die het beste bij uw behoeften past. In deze handleiding wordt gedemonstreerd hoe u de nieuwste beschikbare versie installeert.

Vergeet niet te vervangen 545 met 535,530, 525, 520, 515, enz., op basis van uw keuze.

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

Voltooi de installatie en start opnieuw op

Nadat de installatie is voltooid, start u uw systeem opnieuw op om ervoor te zorgen dat alle wijzigingen van kracht worden:

sudo reboot

Met deze stap rondt u de installatie van CUDA op uw Debian-systeem af, zodat u de mogelijkheden ervan effectief kunt benutten.

Aan de slag met CUDA

GPU-mogelijkheden beoordelen

Voordat u in CUDA-programmering duikt, is het van cruciaal belang dat u de mogelijkheden van uw GPU begrijpt. Verschillende GPU's ondersteunen verschillende CUDA-versies, elk met unieke kenmerken zoals het aantal cores, geheugengroottes en meer. Voor gedetailleerde informatie over uw GPU gebruikt u de nvidia-smi commando:

nvidia-smi

Deze opdracht biedt inzicht in verschillende GPU-kenmerken, zoals de naam, het totale geheugen en de ondersteunde CUDA-versie.

Uw eerste CUDA-programma creëren

Om de zaken op gang te brengen, ontwikkelen we een basis CUDA-programma, compileren het en voeren het uit om ervoor te zorgen dat alles correct functioneert. Begin met het maken van een nieuw bestand met de .cu extensie, die standaard is voor CUDA-programma's. Je kunt hiervoor elke teksteditor gebruiken:

nano helloworld.cu

Plaats de volgende code in het bestand. Dit eenvoudige programma geeft een "Hallo, wereld!" bericht van de 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;
}

Om dit programma te compileren, gebruikt u de nvcc opdracht, wat staat voor NVIDIA CUDA Compiler:

nvcc helloworld.cu -o helloworld

Voer nu het gecompileerde programma uit:

./helloworld

De uitvoer zou het volgende moeten weergeven:

Hallo wereld van CPU! Hallo wereld van GPU!

Geavanceerde CUDA-programmering: matrixvermenigvuldiging

Om de mogelijkheden van CUDA verder te demonstreren, gaan we een programma ontwikkelen dat matrixvermenigvuldiging uitvoert met behulp van CUDA. Dit laat zien hoe CUDA zeer parallelle taken efficiënt kan afhandelen.

Begin met het maken van een nieuw bestand:

nano matrixmul.cu

Plaats de volgende code in het matrixmul.cu bestand. Dit programma voert matrixvermenigvuldiging uit op de 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;
    }
} 

Compileer het programma met behulp van de nvcc commando:

nvcc matrixmul.cu -o matrixmul

Voer vervolgens het gecompileerde programma uit:

./matrixmul

De uitvoer zal het resultaat van de matrixvermenigvuldigingsbewerking weergeven. Dit voorbeeld illustreert hoe CUDA parallelle taken zoals matrixvermenigvuldiging efficiënt kan afhandelen, wat een aanzienlijke prestatieverbetering oplevert vergeleken met traditionele CPU-uitvoering.

Conclusie

In deze uitgebreide handleiding hebben we de CUDA Toolkit nauwgezet geïnstalleerd op Debian 12 Bookworm, Debian 11 Bullseye en Debian 10 Buster. Door de geschetste stappen te volgen, kunnen gebruikers de rekenkracht van NVIDIA GPU's benutten, waardoor een scala aan mogelijkheden voor krachtige computertaken wordt ontgrendeld. Ervoor zorgen dat de installatie aansluit bij de specifieke Debian-versie is essentieel om stabiliteit en optimale prestaties te garanderen. Op de hoogte blijven van de nieuwste releases en officiële documentatie is van cruciaal belang naarmate de technologie evolueert. De officiële bronnen en forums van NVIDIA zijn van onschatbare waarde voor diegenen die dieper in de mogelijkheden van CUDA willen duiken of specifieke problemen willen oplossen.

Joshua James
Volg mij
Laatste berichten van Joshua James (alles zien)

Plaats een reactie