CUDA firmy NVIDIA, czyli Compute Unified Device Architecture, to potężne narzędzie do obliczeń równoległych. Wykorzystuje procesory graficzne NVIDIA (GPU) w celu zwiększenia szybkości zadań obliczeniowych. Ten przewodnik pokaże Ci, jak zainstalować CUDA na Debianie 12 Bookworm, Debianie 11 Bullseye i Debianie 10 Buster. Będziemy używać repozytorium APT firmy NVIDIA dla każdej wersji Debiana, aby mieć pewność, że wszystko działa płynnie.
Co wyróżnia zestaw narzędzi CUDA:
- Przetwarzanie równoległe: CUDA umożliwia oprogramowaniu wykonywanie wielu zadań jednocześnie na procesorach graficznych NVIDIA. Jest to idealne rozwiązanie do zadań wymagających dużej mocy obliczeniowej.
- Wsparcie dla wielu języków: Możesz używać CUDA z językami programowania, takimi jak C, C++ i Fortran. Współpracuje także z innymi narzędziami komputerowymi, takimi jak OpenCL i DirectCompute.
- Kompletne narzędzia programistyczne: NVIDIA udostępnia programistom pełny zestaw narzędzi w ramach Nsight Eclipse Edition. Pomaga w budowaniu, debugowaniu i ulepszaniu aplikacji CUDA.
- Gotowe do użycia biblioteki: CUDA ma swoje biblioteki do zadań GPU. Przykłady obejmują cuBLAS do operacji matematycznych i cuFFT do analizy danych.
- Projekt gotowy na przyszłość: CUDA jest przystosowana do współpracy z nowymi i nadchodzącymi procesorami graficznymi NVIDIA. Oznacza to, że Twoje oprogramowanie może zostać ulepszone bez zmiany dużej części kodu.
Przed instalacją CUDA na Debianie:
- Sprawdź swój system: Upewnij się, że sprzęt i oprogramowanie komputera są gotowe na obsługę CUDA. NVIDIA ma listę procesorów graficznych i potrzeb systemowych, które możesz sprawdzić.
- Skorzystaj z odpowiedniego źródła: Ten przewodnik koncentruje się na repozytorium APT firmy NVIDIA dla Debiana. To najlepszy sposób na uzyskanie stabilnej i dobrze działającej wersji CUDA dla Twojego systemu Debian.
- Być na bieżąco: Warto od czasu do czasu poszukać aktualizacji. NVIDIA często wprowadza nowe funkcje i poprawki, aby ulepszyć CUDA.
Podsumowując to wprowadzenie, zrozumienie i używanie CUDA w Debianie może znacząco ulepszyć Twoje aplikacje. W miarę postępów zagłębimy się w proces instalacji i najlepsze praktyki, aby w pełni wykorzystać zestaw narzędzi CUDA firmy NVIDIA w systemie Debian.
Czyszczenie istniejących instalacji CUDA i NVIDIA (sytuacyjne)
Przed zainstalowaniem sterowników NVIDIA lub rozważeniem aktualizacji wersji w Debianie kluczowe znaczenie ma rozpoczęcie od czystej karty. Oznacza to usunięcie wszelkich istniejących instalacji NVIDIA z systemu Debian. Ten krok pozwala uniknąć potencjalnych problemów wynikających z nakładających się instalacji. Jeśli dopiero zaczynasz instalować sterowniki NVIDIA, możesz pominąć tę sekcję i przejść do następnej.
Metoda 1: Odinstalowanie pakietów NVIDIA zainstalowanych przez APT
Jeśli wcześniej korzystałeś z menedżera pakietów APT do instalowania sterowników NVIDIA, możesz użyć jednego polecenia, aby usunąć wszystkie pakiety związane z NVIDIA. Ta czynność skutecznie usunie NVIDIA z twojego systemu. Wpisz następujące polecenie w terminalu:
sudo apt autoremove cuda* nvidia* --purge
To polecenie używa autoremove
cecha apt
Komenda. Usuwa pakiety, które zostały automatycznie zainstalowane w celu spełnienia zależności dla innych pakietów, ale nie są już potrzebne. The nvidia*
wzór identyfikuje wszystkie pakiety zaczynające się od „nvidia”. The --purge
opcja mówi apt
aby usunąć nie tylko pakiety, ale także powiązane z nimi pliki konfiguracyjne.
Metoda 2: Odinstalowanie sterowników NVIDIA zainstalowanych poprzez plik Runfile
Jeśli zainstalowałeś sterowniki NVIDIA przy użyciu pliku .run
(generalnie nie jest to zalecane ze względu na lepsze alternatywy, takie jak repozytorium NVIDIA CUDA), do jego usunięcia potrzebne jest inne podejście.
Aby usunąć typ instalacji typu runfile, wykonaj następującą komendę:
sudo /usr/bin/nvidia-uninstall
To polecenie uruchamia nvidia-uninstall
skrypt dostarczany wraz z instalacją pliku runfile. Skrypt metodycznie usuwa sterownik NVIDIA, który został zainstalowany przy użyciu pliku uruchomieniowego.
Metoda 3: Odinstalowanie zestawu narzędzi CUDA instalowanego poprzez plik Runfile
Jeśli zainstalowałeś zestaw narzędzi CUDA przy użyciu pliku uruchomieniowego, konieczne jest również jego usunięcie. Proces usuwania jest podobny do procesu usuwania sterowników NVIDIA. Aby usunąć zestaw narzędzi CUDA, wykonaj następujące polecenie:
sudo /usr/local/cuda-X.Y/bin/cuda-uninstall
W powyższym poleceniu zamień X.Y
z numerem wersji zainstalowanego zestawu narzędzi CUDA. To polecenie uruchamia cuda-uninstall
skrypt, który jest zawarty w pliku instalacyjnym zestawu narzędzi CUDA. Skrypt ma na celu metodyczne usuwanie zestawu narzędzi CUDA z systemu Debian.
Aktywuj repozytoria Contrib i niewolne
Początkowy krok polega na dodaniu repozytoriów „contrib” i „non-free” do listy repozytoriów Debiana. Procedura różni się, począwszy od Debian 12 Bookworm, dlatego kluczowe znaczenie ma użycie polecenia odpowiadającego konkretnej wersji dystrybucji Debiana.
Przede wszystkim sprawdź, czy w systemie Debian są zainstalowane następujące elementy:
sudo apt install software-properties-common -y
Mól książkowy i nie tylko:
sudo add-apt-repository contrib non-free-firmware
Bullseye i Buster w dół:
sudo add-apt-repository contrib non-free
Zanim będziesz kontynuować, wykonaj szybką aktualizację APT, aby odświeżyć indeks pakietów:
sudo apt update
Dodaj repozytorium NVIDIA APT w Debianie
Najbardziej wydajną metodą instalacji CUDA jest instalacja bezpośrednio z repozytorium NVIDIA CUDA. Takie podejście gwarantuje, że użytkownicy otrzymają aktualne aktualizacje, w tym nowe funkcje, poprawki błędów, poprawki zabezpieczeń i ulepszenia.
Przygotowanie systemu Debian przed instalacją CUDA
Zanim rozpoczniesz proces instalacji, kluczowe znaczenie ma odpowiednie przygotowanie systemu Debian. Oznacza to, że będziesz musiał zainstalować kilka wstępnie wymaganych pakietów. Nawet jeśli niektóre z tych pakietów są już w Twoim systemie, warto to jeszcze raz sprawdzić. Wykonaj następujące polecenie w swoim terminalu:
sudo apt install build-essential gcc dirmngr ca-certificates software-properties-common apt-transport-https dkms curl -y
To polecenie instaluje niezbędne pakiety, które będą kluczowe w kolejnych krokach. Pomiędzy nimi, dirmngr
zarządza kluczami, ca-certificates
obsługuje certyfikaty SSL, software-properties-common
zarządza repozytoriami oprogramowania, apt-transport-https
zapewnia bezpieczne pobieranie pakietów, dkms
zarządza modułami jądra i curl
ułatwia pobieranie plików z Internetu.
Uwierzytelnianie instalacji za pomocą klucza GPG repozytorium NVIDIA
Zapewnienie autentyczności i integralności pakietów oprogramowania ma kluczowe znaczenie. Importując klucz GPG dla konkretnej wersji Debiana, weryfikujesz autentyczność pakietów repozytorium. Klucz podpisuje pakiety, a importując je, mówisz systemowi, aby ufał tym podpisanym pakietom.
Mól książkowy, biegnij:
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, biegnij:
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, użyj:
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
Integracja repozytorium NVIDIA z systemem Debian
Za pomocą klucza GPG możesz teraz dodać repozytorium NVIDIA do swojego systemu Debian. To repozytorium zawiera pakiety niezbędne do instalacji CUDA.
Mól książkowy, użyj:
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, użyj:
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, użyj:
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
Krok 4: Odświeżanie listy pakietów
Po dodaniu repozytorium NVIDIA niezbędna jest aktualizacja listy pakietów systemu. Dzięki temu Twój system rozpozna nowe pakiety z repozytorium NVIDIA. Aby zaktualizować, uruchom:
sudo apt update
Zainstaluj CUDA ze sterownikami NVIDIA
Wyszukaj sterowniki CUDA
Po spełnieniu wymagań wstępnych możesz zainstalować CUDA i najnowsze sterowniki NVIDIA. Zalecamy jednak sprawdzenie dostępnych wersji sterowników za pomocą polecenia APT show przed kontynuowaniem:
apt show cuda-drivers -a
Spowoduje to wyświetlenie listy dostępnych pakietów dla różnych wersji sterowników NVIDIA.
Alternatywnie możesz także sprawdzić dostępność wersji CUDA za pomocą polecenia APT Policy:
sudo apt policy cuda
Kontynuuj instalację sterowników Cuda
To polecenie wyświetli dostępne wersje CUDA. Wybierz wersję, która najlepiej odpowiada Twoim potrzebom. W tym przewodniku zademonstrujemy, jak zainstalować najnowszą dostępną wersję.
Pamiętaj o wymianie 545
z 535,530
, 525
, 520
, 515
itp., w zależności od Twojego wyboru.
sudo apt install nvidia-driver cuda-drivers-545 cuda
Dokończ instalację i uruchom ponownie
Po zakończeniu instalacji uruchom ponownie system, aby upewnić się, że wszystkie zmiany odniosły skutek:
sudo reboot
Ten krok kończy konfigurację CUDA w systemie Debian, zapewniając efektywne wykorzystanie jego możliwości.
Pierwsze kroki z CUDA
Ocena możliwości procesora graficznego
Przed zanurzeniem się w programowaniu w CUDA niezbędne jest zrozumienie możliwości procesora graficznego. Różne procesory graficzne obsługują różne wersje CUDA, każda z unikalnymi atrybutami, takimi jak liczba rdzeni, rozmiar pamięci i inne. Aby uzyskać szczegółowe informacje na temat procesora graficznego, użyj pliku nvidia-smi
Komenda:
nvidia-smi
To polecenie zapewnia wgląd w różne atrybuty procesora graficznego, takie jak jego nazwa, całkowita pamięć i obsługiwana wersja CUDA.
Tworzenie pierwszego programu CUDA
Na początek opracujemy podstawowy program CUDA, skompilujemy go i uruchomimy, aby mieć pewność, że wszystko działa poprawnie. Zacznij od utworzenia nowego pliku z rozszerzeniem .cu
rozszerzenie, które jest standardem dla programów CUDA. Możesz do tego użyć dowolnego edytora tekstu:
nano helloworld.cu
Wstaw następujący kod do pliku. Ten prosty program wyświetla komunikat „Hello, World!” komunikat z 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;
}
Aby skompilować ten program, użyj nvcc
polecenie, które oznacza kompilator NVIDIA CUDA:
nvcc helloworld.cu -o helloworld
Teraz uruchom skompilowany program:
./helloworld
Dane wyjściowe powinny wyświetlić następujące informacje:
Witaj świecie z procesora! Witaj świecie od GPU!
Zaawansowane programowanie CUDA: Mnożenie macierzy
Aby jeszcze bardziej zademonstrować możliwości CUDA, opracujmy program wykonujący mnożenie macierzy przy użyciu CUDA. To pokaże, jak CUDA może skutecznie obsługiwać wysoce równoległe zadania.
Zacznij od utworzenia nowego pliku:
nano matrixmul.cu
Wstaw następujący kod do pliku matrixmul.cu
plik. Ten program przeprowadza mnożenie macierzy na 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;
}
}
Skompiluj program za pomocą pliku nvcc
Komenda:
nvcc matrixmul.cu -o matrixmul
Następnie wykonaj skompilowany program:
./matrixmul
Na wyjściu zostanie wyświetlony wynik operacji mnożenia macierzy. Ten przykład ilustruje, jak CUDA może efektywnie obsługiwać zadania równoległe, takie jak mnożenie macierzy, oferując znaczny wzrost wydajności w porównaniu z tradycyjnym wykonaniem procesora.
Wniosek
W tym obszernym przewodniku skrupulatnie zainstalowaliśmy zestaw narzędzi CUDA w systemach Debian 12 Bookworm, Debian 11 Bullseye i Debian 10 Buster. Postępując zgodnie z przedstawionymi krokami, użytkownicy mogą wykorzystać moc obliczeniową procesorów graficznych NVIDIA, odblokowując szereg możliwości w zakresie zadań obliczeniowych o wysokiej wydajności. Zapewnienie zgodności instalacji z konkretną wersją Debiana jest niezbędne do zagwarantowania stabilności i optymalnej wydajności. W miarę rozwoju technologii kluczowe znaczenie ma bycie na bieżąco z najnowszymi wersjami i oficjalną dokumentacją. Oficjalne zasoby i fora NVIDIA są nieocenione dla tych, którzy chcą głębiej zagłębić się w możliwości CUDA lub rozwiązać określone problemy.