So bauen Sie ROCm, ohne den Verstand zu verlieren
Wenn Sie jemals versucht haben, den ROCm-Stack (Radeon Open Compute) für neuronale Netzwerkarbeit auf AMD-GPUs bereitzustellen, wissen Sie, dass es ein ziemliches Abenteuer ist. Normalerweise endet es entweder mit der Installation massiver Binärpakete, die die Hälfte der Systemabhängigkeiten mit sich bringen, oder mit dem Versuch, alles aus dem Quellcode zu kompilieren, was zu einer endlosen Suche nach den richtigen Bibliotheksversionen wird.
Kürzlich bin ich auf das TheRock-Repository vom AMD-Team gestoßen. Es ist ein Versuch, den HIP- und ROCm-Build- und Deployment-Prozess benutzerfreundlich zu gestalten. Das Projekt befindet sich derzeit im frühen Vorschaustatus, aber es sieht bereits aus wie ein Rettungsanker für diejenigen, die die neuesten PyTorch- oder JAX-Funktionen auf AMD-Hardware nutzen möchten, ohne auf offizielle Distributions-Releases zu warten.
Was steckt in diesem „Stein"
TheRock (The HIP Environment and ROCm Kit) ist eine leichtgewichtige Build-Plattform. Im Wesentlichen handelt es sich um ein massives CMake-Projekt, das die erforderlichen ROCm-Komponenten einbinden, patchen und zu einer einzigen kohärenten Einheit zusammenbauen kann.
Der Hauptwert liegt hier nicht im Code an sich, sondern in der Infrastruktur. Die Leute bei AMD haben die Tools veröffentlicht, die sie nach allem, was man hört, selbst für tägliche Builds verwenden.
Hier ist, was das Projekt derzeit bietet:
- Nightly Builds von ROCm und PyTorch. Wenn Sie eine Korrektur benötigen, die gestern in Master gelandet ist, ist dies Ihr Weg.
- Unterstützung für das Bauen von PyTorch und JAX aus dem Quellcode speziell für ROCm.
- Plattformübergreifende Kompatibilität. Funktioniert auf verschiedenen Linux-Distributionen und überraschenderweise nativ auf Windows 11.
- Fein granulare Anpassung. Sie können alles Unnötige entfernen (wie Debugger oder bestimmte Kommunikationsbibliotheken) und nur das bauen, was Sie für Ihre spezifische Aufgabe benötigen.
Wie es in der Praxis funktioniert
Das Projekt verwendet Python-Skripte für die Umgebungsvorbereitung und CMake für den eigentlichen Build. Ein interessantes Detail: DVC (Data Version Control) wird verwendet, um schwere Binärdaten (wie kompilierte MIOpen-Kernel) zu verwalten. Das spart wirklich Zeit während der Kompilierung, da Sie nicht alles von Grund auf neu bauen müssen.
Um auf Ubuntu 24.04 zu starten, sieht der Prozess ungefähr so aus:
Danach beginnt die CMake-Magie. Sie können Ihre GPU-Architektur mit dem {0}-Flag angeben. Wenn Sie nicht wissen, welchen „Kopf" Sie haben, gibt es ein Skript im Repository, das das richtige Ziel vorschlägt.
Build-Flexibilität
TheRock implementiert ein modulares Flag-System. Wenn Sie kein verteiltes Training auf Clustern durchführen, benötigen Sie wahrscheinlich keine Kommunikationsbibliotheken wie RCCL. Sie können sie einfach deaktivieren:
Die Liste der Komponenten ist beeindruckend: vom Compiler und der Runtime bis zu Videoverarbeitungsbibliotheken (rocDecode, rocJPEG) und Profiling-Tools. Es gibt sogar Emulationsunterstützung über ROCjitsu, was nützlich ist, wenn Sie Code für einen GPU schreiben, den Sie gerade nicht zur Hand haben.
Beschleunigung des Prozesses mit ccache
Das Bauen von LLVM und schweren ML-Bibliotheken dauert lange. Die TheRock-Entwickler verstehen das und haben Skripte zum Konfigurieren von ccache hinzugefügt. Außerdem haben sie die Spezifika der Kompilierung von Code für AMDGPU berücksichtigt (das {1}-Flag), was manchmal dazu führen kann, dass reguläres ccache verrücktspielt.
Auf Linux wird dies mit einem einzigen Befehl aktiviert:
Danach gehen wiederholte Builds viel schneller.
Wer wird davon profitieren
Ich sehe drei Hauptszenarien, in denen TheRock wirklich nützlich ist:
- Forscher und ML-Ingenieure: wenn Sie das neueste PyTorch mit Unterstützung für neue ROCm-Funktionen ausführen müssen, die noch nicht in stable Docker-Images gelangt sind.
- Bibliotheksentwickler: wenn Sie etwas auf HIP aufbauen, bietet TheRock eine komfortable Sandbox mit allen Debugging-Tools (ROCgdb, rocprofv3).
- Windows-Benutzer: Die ROCm-Unterstützung auf Windows hinkt Linux noch hinterher, und eine klare Build-Anleitung über VS 2022 ist ein großes Plus.
Das TheRock-Projekt ist kein „nur ein weiterer Installer" – es ist eher eine professionelle Werkbank. Ja, es erfordert ein Verständnis dafür, wie CMake funktioniert und welche Abhängigkeiten Ihr System benötigt. Aber im Gegenzug erhalten Sie die volle Kontrolle über den ROCm-Stack.
Wenn Sie es leid sind, Package-Konflikte in Ihrem System zu bekämpfen, oder das Maximum aus Ihrer Radeon für Machine-Learning-Aufgaben herausholen möchten, werfen Sie einen Blick auf dieses Repository. Beachten Sie nur, dass sich das Projekt in einem frühen Zugang befindet – Fehler sind möglich, aber die Community und AMD-Entwickler sind dort recht aktiv.
Sie können den Nightly-Build-Status und die Dokumentation auf ihrem Ähnliche ProjekteSo erstellst du ein persönliches Quant-Analyse-Terminal mit Polars und DuckDB
So verbinden Sie ein neuronales Netzwerk mit einem echten Browser über Browser Harness
Lokale ElevenLabs-Qualität auf eigener Hardware mit VoiceStudio
Tickflow Stock Panel: Bauen Sie Ihr eigenes Terminal für quantitative Aktienanalyse
Vertrautes NumPy in kompilierbaren GPU-Code umwandeln
So bringen Sie Cursor und Claude Code bei, korrekt für Salesforce zu schreiben