Come compilare ROCm senza perdere la testa
Se hai mai provato a distribuire lo stack ROCm (Radeon Open Compute) per il lavoro su reti neurali su GPU AMD, sai che è tutta un'avventura. Di solito finisce o con l'installazione di enormi pacchetti binari che trascinano metà delle dipendenze del sistema, oppure con il tentativo di compilare tutto dal codice sorgente, che si trasforma in una ricerca infinita delle versioni delle librerie giuste.
Recentemente mi sono imbattuto nel repository TheRock del team AMD. È un tentativo di rendere umano il processo di build e deployment di HIP e ROCm. Il progetto è attualmente in fase di anteprima iniziale, ma sembra già un'ancora di salvezza per chi vuole usare le ultime funzionalità di PyTorch o JAX su hardware AMD senza aspettare le release di distribuzione ufficiali.
Cosa c'è dentro questa "pietra"
TheRock (The HIP Environment and ROCm Kit) è una piattaforma di build leggera. In sostanza, è un enorme progetto CMake che può prelevare i componenti ROCm richiesti, applicare le patch e compilarli in un'unica unità coesa.
Il valore principale qui non sta nel codice in sé, ma nell'infrastruttura. La gente di AMD ha rilasciato gli strumenti che, a giudicare da tutto, usano loro stessi per le build giornaliere.
Ecco cosa offre il progetto adesso:
- Build notturne di ROCm e PyTorch. Se hai bisogno di una correzione che è atterrata in master proprio ieri, questa è la tua strada.
- Supporto per compilare PyTorch e JAX dal codice sorgente specificamente per ROCm.
- Compatibilità multipiattaforma. Funziona su varie distribuzioni Linux e, sorprendentemente, nativamente su Windows 11.
- Personalizzazione granulare. Puoi rimuovere tutto ciò che non è necessario (come debugger o librerie di comunicazione specifiche) e compilare solo ciò che ti serve per il tuo compito specifico.
Come funziona nella pratica
Il progetto usa script Python per la preparazione dell'ambiente e CMake per la build effettiva. Un dettaglio interessante: DVC (Data Version Control) viene usato per gestire dati binari pesanti (come i kernel MIOpen compilati). Questo fa davvero risparmiare tempo durante la compilazione dato che non devi ricompilare tutto da zero.
Per iniziare su Ubuntu 24.04, il processo assomiglia a questo:
Dopo di che, inizia la magia di CMake. Puoi specificare l'architettura della tua GPU usando il flag . Se non sai quale "testa" hai, c'è uno script nel repository che ti suggerirà il target giusto.
Flessibilità della build
TheRock implementa un sistema di flag modulare. Se non stai facendo training distribuito su cluster, probabilmente non hai bisogno delle librerie di comunicazione come RCCL. Puoi semplicemente disattivarle:
La lista dei componenti è impressionante: dal compilatore e runtime alle librerie di elaborazione video (rocDecode, rocJPEG) e strumenti di profiling. C'è persino il supporto di emulazione tramite ROCjitsu, che è utile se stai scrivendo codice per una GPU che non hai sottomano in questo momento.
Velocizzare il processo con ccache
Compilare LLVM e librerie ML pesanti richiede molto tempo. Gli sviluppatori di TheRock lo capiscono e hanno aggiunto script per configurare ccache. Inoltre, hanno tenuto conto delle specificità della compilazione di codice per AMDGPU (il flag ), che a volte può far impazzire ccache normale.
Su Linux, questo viene abilitato con un singolo comando:
Dopo di che, le build ripetute vanno molto più veloci.
Chi ne trarrà beneficio
Vedo tre scenari principali in cui TheRock è davvero utile:
- Ricercatori e ingegneri ML: quando hai bisogno di eseguire l'ultimo PyTorch con supporto per le nuove funzionalità di ROCm che non sono ancora arrivate alle immagini Docker stabili.
- Sviluppatori di librerie: se stai scrivendo qualcosa sopra HIP, TheRock fornisce una sandbox comoda con tutti gli strumenti di debugging (ROCgdb, rocprofv3).
- Utenti Windows: il supporto ROCm su Windows sta ancora raggiungendo Linux, e avere una guida di build chiara tramite VS 2022 è un grande vantaggio.
Il progetto TheRock non è "solo un altro installer" — è più come un banco di lavoro professionale. Sì, richiede capire come funziona CMake e quali dipendenze il tuo sistema ha bisogno. Ma in cambio, ti dà il pieno controllo sullo stack ROCm.
Se sei stanco di combattere con i conflitti di pacchetti nel tuo sistema o vuoi spremere il massimo dalla tua Radeon per i compiti di machine learning, dai un'occhiata a questo repository. Tieni presente che il progetto è in accesso anticipato — i bug sono possibili, ma la comunità e gli sviluppatori AMD sono piuttosto attivi lì.
Puoi controllare lo stato delle build notturne e la documentazione sulla loro Progetti correlatiCome Costruire un Terminale di Analisi Quantitativa Personale con Polars e DuckDB
Come Connettere una Rete Neurale a un Browser Reale con Browser Harness
ElevenLabs in locale sul tuo hardware con VoiceStudio
Tickflow Stock Panel: Come Costruire il Tuo Terminale per l'Analisi Quantitativa dei Titoli
Come Trasformare il Familiar NumPy in Codice GPU Compilabile
Come insegnare a Cursor e Claude Code a scrivere correttamente per Salesforce