NVIDIAs CUDA, eller Compute Unified Device Architecture, är ett kraftfullt verktyg för parallell beräkning. Den använder NVIDIA-grafikprocessorer (GPU) för att öka hastigheten på datoruppgifter. Den här guiden kommer att visa dig hur du installerar CUDA på Debian 12 Bookworm, Debian 11 Bullseye och Debian 10 Buster. Vi kommer att använda NVIDIAs APT-förråd för varje Debian-version för att säkerställa att allt fungerar smidigt.
Vad får CUDA Toolkit att sticka ut:
- Parallell bearbetning: CUDA låter din programvara köra många uppgifter samtidigt på NVIDIA GPU:er. Detta är bra för jobb som kräver mycket datorkraft.
- Stöd för många språk: Du kan använda CUDA med programmeringsspråk som C, C++ och Fortran. Det fungerar också med andra datorverktyg som OpenCL och DirectCompute.
- Kompletta utvecklingsverktyg: NVIDIA ger utvecklare en komplett uppsättning verktyg med Nsight Eclipse Edition. Det hjälper till att bygga, felsöka och förbättra CUDA-applikationer.
- Färdiga bibliotek: CUDA har sina bibliotek för GPU-uppgifter. Exempel inkluderar cuBLAS för matematiska operationer och cuFFT för dataanalys.
- Framtidsklar design: CUDA är gjord för att fungera med nya och kommande NVIDIA GPU:er. Detta innebär att din programvara kan förbättras utan att ändra mycket av din kod.
Innan du installerar CUDA på Debian:
- Kontrollera ditt system: Se till att din dators hårdvara och mjukvara är redo för CUDA. NVIDIA har en lista över GPU:er och systembehov som du kan kontrollera.
- Använd rätt källa: Den här guiden fokuserar på NVIDIAs APT-förråd för Debian. Det är det bästa sättet att få en stabil och välfungerande version av CUDA för ditt Debiansystem.
- Håll dig uppdaterad: Det är en bra idé att leta efter uppdateringar då och då. NVIDIA tar ofta fram nya funktioner och fixar för att göra CUDA bättre.
För att avsluta denna introduktion, förståelse och användning av CUDA på Debian kan avsevärt öka dina applikationer. När vi går framåt kommer vi att dyka djupare in i installationsprocessen och bästa praxis för att få ut det mesta av NVIDIAs CUDA-verktygssats på ditt Debiansystem.
Rensa befintliga CUDA- och NVIDIA-installationer (situationsbestämd)
Innan du installerar NVIDIA-drivrutiner eller överväger versionsuppgraderingar på Debian är det avgörande att börja med ett rent blad. Detta innebär att du tar bort alla befintliga NVIDIA-installationer från ditt Debiansystem. Detta steg säkerställer att du undviker potentiella problem som uppstår från överlappande installationer. Om du är ny med NVIDIA-drivrutinsinstallationer kan du hoppa över det här avsnittet och gå vidare till nästa.
Metod 1: Avinstallera NVIDIA-paket installerade via APT
Om du tidigare har använt APT-pakethanteraren för att installera NVIDIA-drivrutiner kan du använda ett enda kommando för att ta bort alla NVIDIA-relaterade paket. Denna åtgärd tar effektivt bort NVIDIA från ditt system. Ange följande kommando i din terminal:
sudo apt autoremove cuda* nvidia* --purge
Detta kommando använder autoremove
inslag i apt
kommando. Den tar bort paket som installerades automatiskt för att tillfredsställa beroenden för andra paket men som inte längre behövs. De nvidia*
mönster identifierar alla paket som börjar med 'nvidia'. De --purge
alternativet berättar apt
för att ta bort inte bara paketen utan även deras tillhörande konfigurationsfiler.
Metod 2: Avinstallera NVIDIA-drivrutiner installerade via Runfile
Om du har installerat NVIDIA-drivrutiner med en .run
fil (rekommenderas vanligtvis inte på grund av bättre alternativ som NVIDIA CUDA-förvaret), behövs ett annat tillvägagångssätt för att ta bort det.
För att ta bort runfiltypen för installation, kör följande kommando:
sudo /usr/bin/nvidia-uninstall
Detta kommando kör nvidia-uninstall
skript som följer med runfilinstallationen. Skriptet tar metodiskt bort NVIDIA-drivrutinen som installerades med runfilen.
Metod 3: Avinstallera CUDA Toolkit installerad via Runfile
Om du har installerat CUDA-verktygslådan med en runfil är det också viktigt att ta bort detta. Borttagningsprocessen liknar den för NVIDIA-drivrutinerna. För att ta bort CUDA-verktygslådan, kör följande kommando:
sudo /usr/local/cuda-X.Y/bin/cuda-uninstall
I kommandot ovan, ersätt X.Y
med versionsnumret för din installerade CUDA-verktygssats. Detta kommando kör cuda-uninstall
skript, som ingår i runfilinstallationen av CUDA-verktygslådan. Skriptet är utformat för att metodiskt ta bort CUDA-verktygslådan från ditt Debiansystem.
Aktivera Contrib och Non-Free Repositories
Det första steget innebär att lägga till "contrib"- och "icke-gratis"-förråden till din lista över Debian-förråd. Proceduren varierar från Debian 12 Bookworm, så att använda kommandot som motsvarar din specifika version av Debiandistributionen är avgörande.
Först och främst, verifiera att följande är installerade på ditt Debiansystem:
sudo apt install software-properties-common -y
Bokmask och framåt:
sudo add-apt-repository contrib non-free-firmware
Bullseye och Buster nedåt:
sudo add-apt-repository contrib non-free
Innan du fortsätter, se till att du kör en snabb APT-uppdatering för att uppdatera ditt paketindex:
sudo apt update
Lägg till NVIDIA APT Repository på Debian
Den mest effektiva metoden för CUDA-installation är direkt från NVIDIA CUDA-förvaret. Detta tillvägagångssätt säkerställer att användare får aktuella uppdateringar, inklusive nya funktioner, buggfixar, säkerhetskorrigeringar och förbättringar.
Förbereder Debian-systemet före CUDA-installation
Innan du startar installationsprocessen är det avgörande att förbereda ditt Debiansystem ordentligt. Det betyder att du måste installera flera förutsättningspaket. Även om några av dessa paket redan finns på ditt system, är det klokt att dubbelkolla. Kör följande kommando i din terminal:
sudo apt install build-essential gcc dirmngr ca-certificates software-properties-common apt-transport-https dkms curl -y
Detta kommando installerar viktiga paket som kommer att vara avgörande för efterföljande steg. Bland dem, dirmngr
hanterar nycklar, ca-certificates
hanterar SSL-certifikat, software-properties-common
hanterar programvaruförråd, apt-transport-https
säkerställer säkra paketnedladdningar, dkms
hanterar kärnmoduler och curl
underlättar nedladdning av filer från internet.
Autentiserar installation med NVIDIA Repository GPG Key
Det är avgörande att säkerställa äktheten och integriteten hos programvarupaket. När du importerar GPG-nyckeln för din specifika Debian-version verifierar du äktheten av förvarspaketen. Nyckeln signerar paketen och genom att importera dem säger du till ditt system att lita på dessa signerade paket.
Bokmask, kör:
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, kör:
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, använd:
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
Integrera NVIDIA-förvaret i ditt Debian-system
Med GPG-nyckeln kan du nu lägga till NVIDIA-förvaret till ditt Debian-system. Detta förråd innehåller de nödvändiga paketen för CUDA-installation.
Bokmask, använd:
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, använd:
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, använd:
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
Steg 4: Uppdatera paketlistan
När du har lagt till NVIDIA-förvaret är det viktigt att uppdatera systemets paketlista. Detta säkerställer att ditt system känner igen de nya paketen från NVIDIA-förvaret. För att uppdatera, kör:
sudo apt update
Installera CUDA med NVIDIA-drivrutiner
Sök efter CUDA Drivers
Du kan installera CUDA och de senaste NVIDIA-drivrutinerna när du har förutsättningarna. Vi rekommenderar dock att du kontrollerar de tillgängliga drivrutinsversionerna med APT show-kommandot innan du fortsätter:
apt show cuda-drivers -a
Detta kommer att mata ut en lista över tillgängliga paket för olika NVIDIA-drivrutinsversioner.
Alternativt kan du också bekräfta den tillgängliga CUDA-versionen med kommandot APT Policy:
sudo apt policy cuda
Fortsätt med att installera Cuda-drivrutiner
Detta kommando visar tillgängliga CUDA-versioner. Välj den version som bäst passar dina behov. Den här guiden visar hur du installerar den senaste tillgängliga versionen.
Kom ihåg att byta ut 545
med 535,530
, 525
, 520
, 515
, etc., baserat på ditt val.
sudo apt install nvidia-driver cuda-drivers-545 cuda
Slutför installationen och starta om
När installationen är klar, starta om ditt system för att säkerställa att alla ändringar träder i kraft:
sudo reboot
Det här steget slutför CUDA-installationen på ditt Debiansystem, vilket säkerställer att du effektivt kan utnyttja dess kapacitet.
Komma igång med CUDA
Bedöma GPU-kapacitet
Innan du dyker in i CUDA-programmering är det viktigt att förstå din GPU:s kapacitet. Olika GPU:er stöder olika CUDA-versioner, var och en med unika attribut som antalet kärnor, minnesstorlekar och mer. För att få detaljerad information om din GPU, använd nvidia-smi
kommando:
nvidia-smi
Detta kommando ger insikter i olika GPU-attribut, såsom dess namn, totala minne och CUDA-version som stöds.
Skapa ditt första CUDA-program
För att komma igång kommer vi att utveckla ett grundläggande CUDA-program, kompilera det och köra det för att säkerställa att allt fungerar korrekt. Börja med att skapa en ny fil med .cu
förlängning, som är standard för CUDA-program. Du kan använda vilken textredigerare som helst för detta:
nano helloworld.cu
Infoga följande kod i filen. Detta enkla program visar ett "Hej, värld!" meddelande från GPU:n:
#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;
}
För att kompilera detta program, använd nvcc
kommando, som står för NVIDIA CUDA Compiler:
nvcc helloworld.cu -o helloworld
Kör nu det kompilerade programmet:
./helloworld
Utgången ska visa följande:
Hej världen från CPU! Hello World från GPU!
Avancerad CUDA-programmering: Matrixmultiplikation
För att ytterligare demonstrera CUDAs kapacitet, låt oss utveckla ett program som utför matrismultiplikation med CUDA. Detta kommer att visa upp hur CUDA effektivt kan hantera mycket parallella uppgifter.
Börja med att skapa en ny fil:
nano matrixmul.cu
Infoga följande kod i matrixmul.cu
fil. Detta program genomför matrismultiplikation på GPU:n:
__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;
}
}
Kompilera programmet med hjälp av nvcc
kommando:
nvcc matrixmul.cu -o matrixmul
Kör sedan det kompilerade programmet:
./matrixmul
Utdata kommer att presentera resultatet av matrismultiplikationsoperationen. Det här exemplet illustrerar hur CUDA effektivt kan hantera parallella uppgifter som matrismultiplikation, vilket ger en betydande prestandaökning jämfört med traditionell CPU-körning.
Slutsats
I den här omfattande guiden har vi noggrant installerat CUDA Toolkit på Debian 12 Bookworm, Debian 11 Bullseye och Debian 10 Buster. Genom att följa de skisserade stegen kan användare utnyttja beräkningskraften hos NVIDIA GPU: er och låsa upp en mängd möjligheter för högpresterande datoruppgifter. Att säkerställa att installationen är i linje med den specifika Debian-versionen är viktigt för att garantera stabilitet och optimal prestanda. Att hålla sig uppdaterad med de senaste utgåvorna och officiell dokumentation är avgörande när tekniken utvecklas. De officiella NVIDIA-resurserna och forumen är ovärderliga för dem som vill fördjupa sig i CUDA:s möjligheter eller felsöka specifika problem.