>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
Python

ROCm bouwen zonder je verstand te verliezen

Als je ooit geprobeerd hebt om de ROCm (Radeon Open Compute) stack te deployen voor neural network werk op AMD GPU's, dan weet je dat het nogal een avontuur is. Meestal eindigt het ofwel met het installeren van enorme binaire pakketten die de helft van de systeemafhankelijkheden meetrekken, of met het compileren van alles vanaf source, wat verandert in een eindeloze zoektocht naar de juiste bibliotheekversies.

Onlangs stuitte ik op de TheRock repository van het AMD team. Het is een poging om het HIP en ROCm build- en deploymentproces gebruiksvriendelijk te maken. Het project is momenteel in vroege preview status, maar het lijkt nu al een levenslijn voor degenen die de nieuwste PyTorch of JAX functies op AMD hardware willen gebruiken zonder te wachten op officiële distributiereleases.

Wat zit er in deze "Steen"

TheRock (The HIP Environment and ROCm Kit) is een lichtgewicht buildplatform. In essentie is het een enorm CMake project dat de vereiste ROCm componenten kan ophalen, patchen en bouwen tot één samenhangende eenheid.

De hoofdwaarde zit hier niet zozeer in de code zelf, maar in de infrastructuur. De mensen bij AMD hebben de tools vrijgegeven die ze, naar alle waarschijnlijkheid, zelf dagelijks gebruiken voor builds.

Hier is wat het project momenteel te bieden heeft:

  • Nightly builds van ROCm en PyTorch. Als je een fix nodig hebt die gisteren in master is geland, is dit je pad.
  • Ondersteuning voor het bouwen van PyTorch en JAX vanaf source specifiek voor ROCm.
  • Cross-platform compatibiliteit. Werkt op verschillende Linux distributies en, verrassend genoeg, native op Windows 11.
  • Fijnmazige aanpassingsmogelijkheden. Je kunt alles onnodige wegstrippen (zoals debuggers of specifieke communicatiebibliotheken) en alleen bouwen wat je nodig hebt voor je specifieke taak.

Hoe het in de praktijk werkt

Het project gebruikt Python scripts voor omgevingsvoorbereiding en CMake voor de eigenlijke build. Een interessant detail: DVC (Data Version Control) wordt gebruikt om zware binaire data te beheren (zoals gecompileerde MIOpen kernels). Dit bespaart echt tijd tijdens compilatie omdat je niet alles opnieuw vanaf source hoeft te bouwen.

Om te beginnen op Ubuntu 24.04, ziet het proces er ongeveer zo uit:

Daarna begint de CMake magie. Je kunt je GPU architectuur specificeren met de vlag. Als je niet weet welke "head" je hebt, is er een script in de repository dat de juiste target zal voorstellen.

Build Flexibiliteit

TheRock implementeert een modulair vlaggensysteem. Als je geen gedistribueerde training op clusters uitvoert, heb je waarschijnlijk geen communicatiebibliotheken zoals RCCL nodig. Je kunt ze gewoon uitschakelen:

De lijst van componenten is indrukwekkend: van de compiler en runtime tot videoverwerkingsbibliotheken (rocDecode, rocJPEG) en profiling tools. Er is zelfs emulatieondersteuning via ROCjitsu, wat handig is als je code schrijft voor een GPU die je momenteel niet bij de hand hebt.

Het proces versnellen met ccache

LLVM en zware ML bibliotheken bouwen kost veel tijd. De TheRock ontwikkelaars begrijpen dit en hebben scripts toegevoegd voor het configureren van ccache. Bovendien hebben ze rekening gehouden met de specificaties van het compileren van code voor AMDGPU (de vlag), wat soms reguliere ccache van streek kan brengen.

Op Linux wordt dit ingeschakeld met één commando:

Daarna gaan herhaalde builds veel sneller.

Wie heeft hier baat bij

Ik zie drie hoofdscenario's waarin TheRock echt nuttig is:

  1. Onderzoekers en ML engineers: wanneer je de nieuwste PyTorch moet draaien met ondersteuning voor nieuwe ROCm functies die nog niet in stabiele Docker images zijn terechtgekomen.
  2. Bibliotheekontwikkelaars: als je iets op HIP bouwt, biedt TheRock een handige sandbox met alle debugging tools (ROCgdb, rocprofv3).
  3. Windows gebruikers: ROCm ondersteuning op Windows loopt nog achter op Linux, en een duidelijke build guide via VS 2022 is een groot pluspunt.

Het TheRock project is niet "zomaar een installer" — het is meer zoals een professionele werkbank. Ja, het vereist begrip van hoe CMake werkt en welke afhankelijkheden je systeem nodig heeft. Maar als tegenprestatie geeft het je volledige controle over de ROCm stack.

Als je moe bent van het vechten tegen pakketconflicten in je systeem of het maximale uit je Radeon voor machine learning taken wilt halen, neem dan een kijkje in deze repository. Houd er alleen rekening mee dat het project in early access is — bugs zijn mogelijk, maar de community en AMD ontwikkelaars zijn daar vrij actief.

Je kunt de nightly build status en documentatie bekijken op hun

Gerelateerde projecten