Jak zbudować ROCm, nie tracąc przy tym zmysłów
Jeśli kiedykolwiek próbowałeś wdrożyć stos ROCm (Radeon Open Compute) do pracy z sieciami neuronowymi na GPU AMD, wiesz, że to cała przygoda. Zazwyczaj kończy się albo instalacją ogromnych pakietów binarnych, które ciągną za sobą połowę zależności systemu, albo próbą kompilacji wszystkiego ze źródeł, co zamienia się w niekończącą sięquestę za właściwymi wersjami bibliotek.
Ostatnio natknąłem się na repozytorium TheRock od zespołu AMD. To próba uczynienia procesu budowania i wdrażania HIP oraz ROCm przyjaznym dla człowieka. Projekt jest obecnie we wczesnej fazie preview, ale już wygląda jak linia ratunkowa dla tych, którzy chcą korzystać z najnowszych funkcji PyTorch lub JAX na sprzęcie AMD bez czekania na oficjalne wydania dystrybucyjne.
Co kryje się w tym „Kamieniu"
TheRock (The HIP Environment and ROCm Kit) to lekka platforma budowania. Zasadniczo jest to ogromny projekt CMake, który może pobrać wymagane komponenty ROCm, załatać je i zbudować w jedną spójną całość.
Główna wartość nie tkwi w samym kodzie, ale w infrastrukturze. Ludzie z AMD udostępnili narzędzia, które — sądząc po wszystkim — sami używają do codziennych kompilacji.
Oto co projekt oferuje teraz:
- Nightly builds ROCm i PyTorch. Jeśli potrzebujesz poprawki, która wylądowała w masterze zaledwie wczoraj, to jest twoja ścieżka.
- Wsparcie dla budowania PyTorch i JAX ze źródeł specjalnie dla ROCm.
- Kompatybilność międzyplatformowa. Działa na różnych dystrybucjach Linuksa i, co zaskakujące, natywnie na Windows 11.
- Szczegółowa personalizacja. Możesz wyciąć wszystko niepotrzebne (jak debuggery czy konkretne biblioteki komunikacyjne) i zbudować tylko to, czego potrzebujesz do swojego konkretnego zadania.
Jak to działa w praktyce
Projekt wykorzystuje skrypty Python do przygotowania środowiska i CMake do właściwej kompilacji. Ciekawy szczegół: DVC (Data Version Control) jest używany do zarządzania ciężkimi danymi binarnymi (jak skompilowane jądra MIOpen). To naprawdę oszczędza czas podczas kompilacji, bo nie musisz przebudowywać wszystkiego od zera.
Aby rozpocząć na Ubuntu 24.04, proces wygląda mniej więcej tak:
Po tym zaczyna się magia CMake. Możesz określić architekturę swojego GPU za pomocą flagi . Jeśli nie wiesz, którą „głowę" masz, w repozytorium jest skrypt, który zasugeruje właściwy target.
Elastyczność budowania
TheRock implementuje modułowy system flag. Jeśli nie robisz rozproszonego trenowania na klastrach, prawdopodobnie nie potrzebujesz bibliotek komunikacyjnych jak RCCL. Możesz je po prostu wyłączyć:
Lista komponentów jest imponująca: od kompilatora i runtime po biblioteki przetwarzania wideo (rocDecode, rocJPEG) i narzędzia profilowania. Jest nawet wsparcie dla emulacji przez ROCjitsu, co jest przydatne, jeśli piszesz kod dla GPU, którego nie masz pod ręką.
Przyspieszenie procesu przez ccache
Budowanie LLVM i ciężkich bibliotek ML zajmuje dużo czasu. Twórcy TheRock zdają sobie z tego sprawę i dodali skrypty do konfiguracji ccache. Co więcej, uwzględnili specyfikę kompilacji kodu dla AMDGPU (flaga ), która czasami może sprawić, że zwykły ccache będzie się dziwnie zachowywać.
Na Linuksie włącza się to jednym poleceniem:
Po tym powtórne buildy przebiegają znacznie szybciej.
Kto skorzysta
Widzę trzy główne scenariusze, gdzie TheRock naprawdę się przydaje:
- Badacze i inżynierowie ML: kiedy potrzebujesz uruchomić najnowszego PyTorch z wsparciem dla nowych funkcji ROCm, które jeszcze nie trafiły do stabilnych obrazów Docker.
- Deweloperzy bibliotek: jeśli piszesz coś na bazie HIP, TheRock zapewnia wygodne sandbox z wszystkimi narzędziami debugowania (ROCgdb, rocprofv3).
- Użytkownicy Windows: wsparcie ROCm na Windows wciąż goni Linuksa, a posiadanie jasnego przewodnika budowania przez VS 2022 to duży plus.
Projekt TheRock to nie „tylko kolejny instalator" — to bardziej profesjonalne stanowisko pracy. Tak, wymaga zrozumienia jak działa CMake i jakich zależności potrzebuje twój system. Ale w zamian daje pełną kontrolę nad stosem ROCm.
Jeśli masz dość walki z konfliktami pakietów w systemie lub chcesz wycisnąć maksimum ze swojego Radeona do zadań machine learning, rzuć okiem na to repozytorium. Tylko miej na uwadze, że projekt jest we wczesnym dostępie — błędy są możliwe, ale społeczność i deweloperzy AMD są tam dość aktywni.
Status nightly buildów i dokumentację możesz sprawdzić na ich Powiązane projektyJak zbudować osobisty terminal analizy quant z Polars i DuckDB
Jak połączyć sieć neuronową z prawdziwą przeglądarką za pomocą Browser Harness
Lokalny ElevenLabs na własnym sprzęcie z VoiceStudio
Tickflow Stock Panel: Jak zbudować własny terminal do ilościowej analizy giełdowej
Jak przekształcić znajomy NumPy w kompilowalny kod GPU
How to teach Cursor and Claude Code to write properly for Salesforce