Przewodnik krok po kroku po instalacji platformy AMD ROCm na systemie Ubuntu 26.04. Dowiedz się, jak skonfigurować środowisko dla pytorch i tensorflow, aby w pełni wykorzystać potencjał kart graficznych Radeon w obliczeniach sztucznej inteligencji.
Wprowadzenie: Dlaczego AMD ROCm staje się kluczowym graczem w świecie AI?
Przez wiele lat rynek sprzętowy i programistyczny dla głębokiego uczenia (Deep Learning) oraz sztucznej inteligencji był zdominowany przez jedno rozwiązanie – architekturę NVIDIA CUDA. Monopol ten jednak powoli ustępuje miejsca alternatywnym rozwiązaniom. W obliczu rosnących cen akceleratorów oraz konieczności budowy lokalnych, niezależnych środowisk obliczeniowych, uwaga inżynierów i badaczy AI coraz częściej kieruje się ku platformie AMD ROCm (Radeon Open Compute).
AMD ROCm to otwarta platforma oprogramowania (open-source), stworzona z myślą o obliczeniach wysokiej wydajności (HPC) oraz uczeniu maszynowym. Umożliwia ona programistom bezpośrednie wykorzystanie mocy obliczeniowej procesorów graficznych AMD Radeon i Instinct. Dzięki dynamicznemu rozwojowi, ROCm oferuje dziś natywne lub niemal natywne wsparcie dla najpopularniejszych frameworków, takich jak pytorch i tensorflow, stając się realną i opłacalną alternatywą dla środowisk opartych na CUDA. Wybór stabilnego systemu operacyjnego, takiego jak Ubuntu 26.04 LTS jako system operacyjny dla AI i uczenia maszynowego, stanowi idealny fundament pod budowę takiej stacji roboczej lub serwera.
W tym wyczerpującym poradniku przejdziemy wspólnie przez cały proces: od weryfikacji sprzętu, przez instalację sterowników jądra i pakietów ROCm na Ubuntu 26.04, aż po konfigurację środowisk wirtualnych Python i testy wydajnościowe w pytorch oraz tensorflow.
1. Wymagania systemowe i sprzętowe
Przed przystąpieniem do instalacji należy upewnić się, że posiadany sprzęt oraz konfiguracja systemowa spełniają wymagania platformy ROCm. Chociaż AMD stale rozszerza listę wspieranych układów, środowisko to stawia określone wymagania architektoniczne.
Wspierane karty graficzne (GPU)
Oficjalne wsparcie AMD ROCm koncentruje się wokół kart profesjonalnych oraz wybranych modeli konsumenckich o architekturze RDNA i CDNA:
- Seria AMD Instinct: MI300, MI200, MI100 (dedykowane akceleratory dla centrów danych).
- Karty profesjonalne Radeon Pro: Seria W7000, W6800 i nowsze.
- Karty konsumenckie (Radeon RX): Oficjalne i stabilne wsparcie obejmuje modele oparte na architekturze RDNA 3 (np. Radeon RX 7900 XTX, RX 7900 XT). Modele oparte na architekturze RDNA 2 (np. RX 6900 XT) również działają bardzo dobrze, choć mogą wymagać ustawienia odpowiednich zmiennych środowiskowych podczas uruchamiania kodu (tzw. override wersji architektury).
Wymagania sprzętowe i systemowe
- System operacyjny: Czysta instalacja Ubuntu 26.04 LTS (64-bit).
- Procesor (CPU): Procesor x86_64 ze wsparciem dla instrukcji PCIe Gen 3 lub Gen 4 (zalecane Gen 4 dla optymalnej przepustowości pamięci GPU).
- Pamięć RAM: Minimum 16 GB pamięci RAM (zalecane 32 GB lub więcej, szczególnie przy pracy z dużymi modelami językowymi LLM).
- Zasilacz i chłodzenie: Stabilne zasilanie dostosowane do TDP karty graficznej oraz odpowiednia wentylacja obudowy. Obliczenia AI potrafią obciążać GPU w 100% przez wiele godzin.
Ważna uwaga dotycząca wersji jądra: Ubuntu 26.04 dostarczane jest z nowym jądrem Linux. Przed instalacją upewnij się, że instalujesz najnowszą wersję ROCm dedykowaną dla tej edycji systemu, aby uniknąć konfliktów modułów DKMS ze strukturą jądra.
2. Przygotowanie systemu Ubuntu 26.04 do instalacji
Pierwszym krokiem jest kompleksowe przygotowanie systemu operacyjnego. Musimy upewnić się, że system jest w pełni zaktualizowany, a wszelkie potencjalne konflikty ze starymi sterownikami zostały wyeliminowane.
Krok 2.1: Aktualizacja pakietów systemowych
Uruchom terminal i wykonaj poniższe polecenia, aby zaktualizować listę pakietów oraz zainstalować najnowsze poprawki bezpieczeństwa:
sudo apt update && sudo apt upgrade -y
Po zakończeniu aktualizacji zaleca się restart komputera, szczególnie jeśli aktualizowane było jądro systemu (kernel):
sudo reboot
Krok 2.2: Instalacja niezbędnych zależności
Do poprawnej kompilacji modułów jądra (DKMS) oraz pobierania kluczy repozytoriów będą nam potrzebne podstawowe narzędzia deweloperskie. Zainstaluj je za pomocą komendy:
sudo apt install -y wget gpg cmake build-essential dkms linux-headers-$(uname -r) python3-pip python3-venv
Jeśli planujesz wdrożenie produkcyjne na wielu maszynach, warto pomyśleć o automatyzacji tego procesu. Więcej o tworzeniu skryptów instalacyjnych dowiesz się z artykułu o automatyzacji serwera Linux za pomocą skryptów Bash.
3. Instalacja sterowników AMDGPU i platformy ROCm
Instalacja ROCm opiera się na oficjalnym repozytorium dostarczanym przez AMD. Proces ten podzielony jest na dodanie kluczy kryptograficznych, konfigurację źródła pakietów oraz instalację właściwych metapakietów.
Krok 3.1: Dodanie klucza GPG repozytorium AMD
Aby system Ubuntu ufał pakietom pobieranym z serwerów AMD, musimy zaimportować ich oficjalny klucz GPG. Utwórz katalog na klucze i pobierz go za pomocą poniższych poleceń:
sudo mkdir -p /etc/apt/keyrings
wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/rocm.gpg > /dev/null
Krok 3.2: Dodanie oficjalnego repozytorium ROCm
W zależności od dokładnej wersji ROCm, którą chcesz zainstalować (zalecamy najnowszą stabilną wersję, np. ROCm 6.x), musimy utworzyć odpowiedni plik listy źródeł. Wykonaj poniższe polecenie w terminalu:
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/6.0/ ubuntu noble main" | sudo tee /etc/apt/sources.list.d/rocm.list
Uwaga: W momencie wydania Ubuntu 26.04, AMD dostosowuje ścieżki repozytoriów. Jeśli wersja dedykowana dla Twojego wydania ma inną nazwę kodową, zastąp słowo "noble" (lub odpowiednik) właściwym identyfikatorem wersji dystrybucji AMD.
Krok 3.3: Konfiguracja priorytetów pakietów (Apt Pinning)
Aby zapobiec sytuacji, w której system pobierze niekompatybilne sterowniki graficzne z domyślnych repozytoriów Ubuntu zamiast oficjalnych pakietów AMD, warto ustawić priorytet dla repozytorium ROCm. Utwórz plik konfiguracyjny:
sudo tee /etc/apt/preferences.d/rocm-pin-600 <<EOF
Package: *
Pin: release o=repo.radeon.com
Pin-Priority: 600
EOF
Krok 3.4: Aktualizacja bazy pakietów i instalacja
Po dodaniu repozytorium odśwież bazę danych pakietów:
sudo apt update
Teraz możemy przystąpić do instalacji sterowników jądra oraz podstawowego stosu ROCm. Najbezpieczniejszą metodą jest instalacja metapakietu rocm, który automatycznie konfiguruje niezbędne biblioteki:
sudo apt install -y amdgpu-dkms rocm
Proces ten może potrwać od kilku do kilkunastu minut, ponieważ system będzie kompilował moduły jądra (DKMS) dopasowane do aktualnie uruchomionej wersji kernela. Upewnij się, że w trakcie instalacji nie pojawiają się błędy kompilacji.
4. Konfiguracja uprawnień i zmiennych środowiskowych
Samo zainstalowanie pakietów nie wystarczy, aby użytkownik systemowy mógł uruchamiać zadania obliczeniowe na GPU bez uprawnień administratora (root). Musimy skonfigurować grupy użytkowników oraz ścieżki systemowe.
Krok 4.1: Dodanie użytkownika do grup Render i video
W systemach Linux bezpośredni dostęp do akceleracji sprzętowej 3D oraz obliczeń GPGPU jest kontrolowany przez grupy systemowe render oraz video. Dodaj swojego bieżącego użytkownika do tych grup:
sudo usermod -aG render $USER
sudo usermod -aG video $USER
Ważne: Aby zmiany grup weszły w życie, musisz się wylogować i zalogować ponownie do systemu, bądź wykonać polecenie restartujące sesję użytkownika:
newgrp render
newgrp video
Krok 4.2: Konfiguracja zmiennych środowiskowych (PATH)
Pliki wykonywalne ROCm (takie jak kompilatory, profilery czy narzędzia diagnostyczne) domyślnie instalowane są w katalogu /opt/rocm/bin. Aby mieć do nich wygodny dostęp z dowolnego miejsca w terminalu, dodajmy tę ścieżkę do pliku konfiguracyjnego powłoki (np. .bashrc lub .zshrc):
echo 'export PATH=$PATH:/opt/rocm/bin:/opt/rocm/opencl/bin' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/rocm/lib:/opt/rocm/lib64' >> ~/.bashrc
source ~/.bashrc
5. Weryfikacja poprawności instalacji
Przed przejściem do uruchamiania modeli sztucznej inteligencji musimy bezwzględnie potwierdzić, że system operacyjny prawidłowo komunikuje się z kartą graficzną za pośrednictwem sterowników ROCm.
Krok 5.1: Test narzędzia rocminfo
Uruchom polecenie rocminfo w terminalu. Powinno ono zwrócić szczegółowe informacje o architekturze systemu oraz wykrytych procesorach graficznych:
rocminfo
Jeśli instalacja przebiegła pomyślnie, w konsoli zobaczysz sekcje opisujące Twoje GPU (np. Agent 2, Name: gfx1100 w przypadku kart RDNA 3). Brak błędów w tym miejscu to znak, że warstwa sprzętowa działa poprawnie.
Krok 5.2: Monitorowanie stanu karty za pomocą rocm-smi
Narzędzie rocm-smi (System Management Interface) odpowiada za monitorowanie temperatury, zużycia energii, taktowania rdzenia oraz obciążenia pamięci VRAM karty graficznej. Uruchom je wpisując:
rocm-smi
Powinieneś zobaczyć tabelę zbliżoną do tej, którą użytkownicy kart NVIDIA znają z narzędzia nvidia-smi. To doskonałe narzędzie do monitorowania zużycia zasobów podczas trenowania modeli.
6. Konfiguracja środowiska obliczeniowego dla AI: pytorch i tensorflow
Gdy warstwa systemowa i sterowniki działają bez zarzutu, możemy przejść do instalacji frameworków uczenia maszynowego. Najlepszą praktyką jest izolowanie tych bibliotek w dedykowanych środowiskach wirtualnych Pythona.
Krok 6.1: Przygotowanie środowiska wirtualnego
Utwórzmy osobny katalog na projekty AI oraz zainicjujmy w nim wirtualne środowisko Python:
mkdir ~/ai_projects
cd ~/ai_projects
python3 -m venv rocm_env
source rocm_env/bin/activate
Pamiętaj, aby zawsze przed instalacją bibliotek aktywować to środowisko poleceniem source rocm_env/bin/activate.
Krok 6.2: Instalacja i konfiguracja pytorch z obsługą ROCm
Oficjalny zespół pytorch dostarcza gotowe pakiety skompilowane bezpośrednio pod biblioteki ROCm. Nie instaluj standardowej wersji pytorch za pomocą zwykłego pip install torch, gdyż domyślnie pobierze ona wersję skompilowaną dla CUDA. Użyj dedykowanego indeksu pakietów AMD:
pip install --upgrade pip
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.0
Uwaga: Dostosuj wersję ROCm w adresie URL (np. rocm6.0) do wersji, którą faktycznie zainstalowałeś w systemie.
Weryfikacja działania pytorch na GPU AMD
Po zakończeniu instalacji uruchom interaktywną konsolę Pythona i sprawdź, czy pytorch widzi Twoją kartę graficzną:
python3 -c "import torch; print('Czy ROCm jest dostępny?', torch.cuda.is_available()); print('Nazwa karty:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'Brak GPU')"
Zwróć uwagę na ciekawy niuans techniczny: pytorch na poziomie API zachowuje nazewnictwo powiązane z CUDA (np. torch.cuda.is_available()), jednak pod spodem wszelkie wywołania są transliterowane na instrukcje ROCm (HIP). Jeśli powyższy skrypt zwróci True oraz poprawną nazwę Twojej karty, Twoje środowisko pytorch jest w pełni gotowe do pracy!
Krok 6.3: Instalacja i konfiguracja tensorflow z obsługą ROCm
tensorflow również oferuje wsparcie dla platformy ROCm, choć proces ten bywa bardziej zależny od konkretnych wersji bibliotek. AMD aktywnie rozwija dedykowany port tensorflow pod nazwą tensorflow-rocm.
Wewnątrz aktywnego środowiska wirtualnego zainstaluj odpowiedni pakiet:
pip install tensorflow-rocm
W celu weryfikacji poprawności instalacji tensorflow i wykrywania akceleracji sprzętowej, uruchom poniższy jednolinijkowiec:
python3 -c "import tensorflow as tf; print('Dostępne urządzenia:', tf.config.list_physical_devices('GPU'))"
Jeśli na liście urządzeń pojawi się obiekt typu GPU, oznacza to sukces konfiguracji.
7. Zaawansowane wskazówki i optymalizacja wydajności
Praca z lokalnymi modelami sztucznej inteligencji, zwłaszcza tak dużymi jak LLM (np. Llama 3, Mistral) czy generatorami obrazów (Stable Diffusion), wymaga optymalnego zarządzania zasobami systemowymi.
Zmienna środowiskowa HSA_OVERRIDE_GFX_VERSION
Jeśli posiadasz konsumencką kartę graficzną (np. Radeon RX 6700 XT lub RX 7800 XT), która nie znajduje się na oficjalnej liście wspieranych układów enterprise, ROCm może zgłosić błąd inicjalizacji urządzenia. Rozwiązaniem tego problemu jest wymuszenie na bibliotece uruchomieniowej (runtime) traktowania Twojej karty jako modelu w pełni wspieranego o podobnej architekturze.
Dla kart z serii RDNA 3 (np. RX 7800/7700) dodaj do swojego środowiska:
export HSA_OVERRIDE_GFX_VERSION=11.0.0
Dla kart z serii RDNA 2 (np. RX 6800/6700) użyj:
export HSA_OVERRIDE_GFX_VERSION=10.3.0
Możesz dopisać tę linijkę na stałe do swojego pliku ~/.bashrc, co zaoszczędzi Ci konieczności wpisywania jej przy każdym uruchomieniu terminala.
Zarządzanie zasobami systemowymi
Intensywne trenowanie sieci neuronowych potrafi doprowadzić system do krytycznego zużycia pamięci operacyjnej oraz procesora, co w skrajnych przypadkach skutkuje zawieszeniem środowiska graficznego. Aby temu zapobiec, warto zapoznać się z technikami limitowania zasobów dla poszczególnych procesów. Przydatne wskazówki na ten temat znajdziesz w naszym artykule o tym, jak ograniczyć zużycie CPU i RAM przez procesy w systemie Linux.
8. Rozwiązywanie najczęstszych problemów (Troubleshooting)
Mimo postępów w rozwoju oprogramowania, instalacja zaawansowanych sterowników graficznych na Linuksie bywa wyzwaniem. Oto najczęstsze problemy, na jakie możesz natrafić, wraz z gotowymi rozwiązaniami:
Błąd: "Permission denied" przy próbie dostępu do GPU
Objawy: rocminfo zwraca błąd braku uprawnień lub pytorch informuje, że CUDA nie jest dostępna, mimo poprawnej instalacji sterowników.
Rozwiązanie: Upewnij się, że Twój użytkownik został poprawnie przypisany do grup video oraz render. Uruchom polecenie groups w terminalu, aby zweryfikować przynależność. Jeśli grup brakuje na liście, wykonaj krok 4.1 i bezwzględnie zrestartuj komputer.
Błąd: DKMS compilation failed podczas instalacji amdgpu-dkms
Objawy: Podczas instalacji pakietu instalator zgłasza błąd kompilacji modułu jądra i przerywa proces.
Rozwiązanie: Najczęstszą przyczyną jest brak zainstalowanych nagłówków jądra dopasowanych do aktualnie uruchomionej wersji systemu lub zbyt nowa wersja kernela, która nie jest jeszcze w pełni wspierana przez dany pakiet DKMS od AMD. Upewnij się, że zainstalowałeś pakiet linux-headers-$(uname -r). Jeśli problem nadal występuje, rozważ tymczasowe uruchomienie systemu ze starszą, stabilną wersją jądra (wybieraną w menu GRUB podczas rozruchu).
Błąd: Brak wykrywania GPU w pytorch (mimo poprawnego rocminfo)
Objawy: Narzędzie systemowe działa, ale kod Python zwraca false dla torch.cuda.is_available().
Rozwiązanie: Najprawdopodobniej zainstalowałeś standardową wersję pytorch z pypi zamiast dedykowanego buildu AMD ROCm. Odinstaluj pakiety poleceniem pip uninstall torch torchvision torchaudio, a następnie zainstaluj je ponownie, ściśle stosując się do instrukcji z kroku 6.2, wskazując odpowiedni indeks URL.
Podsumowanie: Przyszłość AI w barwach AMD
Instalacja platformy AMD ROCm na systemie Ubuntu 26.04 otwiera przed pasjonatami oraz profesjonalistami AI zupełnie nowe możliwości. Dzięki tej konfiguracji zyskujemy dostęp do potężnej mocy obliczeniowej nowoczesnych kart Radeon, omijając ograniczenia licencyjne i wysokie koszty związane z ekosystemem konkurencji. Choć konfiguracja ROCm wymaga nieco większej uwagi i precyzji niż instalacja CUDA, stabilność środowiska i korzyści ekonomiczne w pełni rekompensują ten wysiłek.
Z gotowym środowiskiem pytorch i tensorflow możesz bez przeszkód przystąpić do wdrażania zaawansowanych projektów – od lokalnego uruchamiania modeli językowych po trenowanie własnych, głębokich sieci neuronowych.
Najczęściej zadawane pytania (FAQ)
Czy mogę używać AMD ROCm na laptopach z kartami Radeon?
Oficjalnie AMD ROCm jest projektowane i wspierane dla desktopowych oraz serwerowych układów graficznych. Chociaż technicznie możliwe jest uruchomienie ROCm na niektórych mobilnych procesorach APU oraz dedykowanych mobilnych GPU (za pomocą wspomnianego parametru HSA_OVERRIDE_GFX_VERSION), stabilność takiego rozwiązania bywa mocno ograniczona, a wydajność może nie być satysfakcjonująca do poważnych zastosowań deweloperskich.
Czy ROCm wspiera starsze karty graficzne, np. z serii Polaris (RX 580)?
Wsparcie dla starszych architektur, takich jak Polaris (RX 400/500) czy Vega, zostało oficjalnie usunięte z nowszych wydań ROCm (wersje 5.x i 6.x). Aby uruchomić obliczenia na tak leciwym sprzęcie, konieczne byłoby korzystanie z bardzo starych wersji ROCm oraz starszych wydań Ubuntu, co nie jest zalecane ze względów bezpieczeństwa oraz braku kompatybilności ze współczesnymi bibliotekami Deep Learning.
Czy na jednym komputerze mogę mieć zainstalowane jednocześnie sterowniki AMD i NVIDIA CUDA?
Technicznie system Linux pozwala na jednoczesne posiadanie sterowników własnościowych NVIDIA oraz otwartoźródłowych sterowników AMD. Jednak konfiguracja środowiska obliczeniowego, w którym współistnieją obie te platformy, jest niezwykle skomplikowana i podatna na konflikty bibliotek. Do celów AI zdecydowanie zaleca się dedykowanie danej stacji roboczej pod jedną, wybraną architekturę sprzętową.
Jak zaktualizować ROCm do nowszej wersji w przyszłości?
Aby zaktualizować ROCm, należy najpierw bezpiecznie usunąć stare pakiety, zmienić adres repozytorium w pliku /etc/apt/sources.list.d/rocm.list na nową wersję, a następnie przeprowadzić proces czyszczenia i ponownej instalacji metapakietu rocm. Po aktualizacji systemowej niezbędne będzie również przeinstalowanie bibliotek pytorch/TensorFlow w środowiskach wirtualnych Pythona, aby były one zgodne z nową wersją API.
Źródła
- https://www.tecmint.com/install-amd-rocm-ubuntu-26-04/
- https://www.amd.com/en/technologies/rocm
- https://www.amd.com/en/support/kb/release-notes/rocm
- https://github.com/RadeonOpenCompute/ROCm
- https://wiki.archlinux.org/title/AMDGPU
- https://www.tensorflow.org/install/gpu
- https://pytorch.org/get-started/locally/
Komentarze