Comment compiler ROCm sans perdre la raison
Si vous avez déjà essayé de déployer la pile ROCm (Radeon Open Compute) pour le travail sur les réseaux de neurones avec des GPU AMD, vous savez que c'est toute une aventure. Habituellement, cela se termine soit par l'installation de paquets binaires massifs qui entraînent la moitié des dépendances du système, soit par une tentative de tout compiler depuis les sources, ce qui se transforme en quête sans fin pour trouver les bonnes versions des bibliothèques.
Récemment, je suis tombé sur le dépôt TheRock de l'équipe AMD. C'est une tentative pour rendre le processus de construction et de déploiement de HIP et ROCm plus convivial. Le projet est actuellement en statut de prévisualisation précoce, mais il ressemble déjà à une bouée de sauvetage pour ceux qui veulent utiliser les dernières fonctionnalités de PyTorch ou JAX sur du matériel AMD sans attendre les versions de distribution officielles.
Qu'y a-t-il à l'intérieur de cette "pierre"
TheRock (The HIP Environment and ROCm Kit) est une plateforme de compilation légère. Fondamentalement, c'est un immense projet CMake qui peut récupérer les composants ROCm requis, les corriger et les compiler en une seule unité cohérente.
La valeur principale ici n'est pas dans le code en soi, mais dans l'infrastructure. Les gens d'AMD ont publié les outils qu'ils utilisent, selon toute vraisemblance, pour leurs constructions quotidiennes.
Voici ce que le projet offre actuellement :
- Des constructions nocturnes de ROCm et PyTorch. Si vous avez besoin d'un correctif qui vient d'arriver dans master hier, c'est votre voie.
- Support pour compiler PyTorch et JAX depuis les sources spécifiquement pour ROCm.
- Compatibilité multiplateforme. Fonctionne sur diverses distributions Linux et,surprisingly, nativement sur Windows 11.
- Personnalisation fine. Vous pouvez retirer tout ce qui est inutile (comme les débogueurs ou des bibliothèques de communication spécifiques) et ne compiler que ce dont vous avez besoin pour votre tâche spécifique.
Comment ça fonctionne en pratique
Le projet utilise des scripts Python pour la préparation de l'environnement et CMake pour la construction réelle. Un détail intéressant : DVC (Data Version Control) est utilisé pour gérer les données binaires lourdes (comme les noyaux MIOpen compilés). Cela fait vraiment gagner du temps lors de la compilation puisque vous n'avez pas à tout recompiler depuis zéro.
Pour commencer sur Ubuntu 24.04, le processus ressemble à ceci :
Après cela, la magie CMake commence. Vous pouvez spécifier l'architecture de votre GPU en utilisant le flag . Si vous ne savez pas quelle "tête" vous avez, il y a un script dans le dépôt qui suggérera la bonne cible.
Flexibilité de compilation
TheRock implémente un système de flags modulaire. Si vous ne faites pas d'entraînement distribué sur des clusters, vous n'avez probablement pas besoin de bibliothèques de communication comme RCCL. Vous pouvez simplement les désactiver :
La liste des composants est impressionnante : du compilateur et du runtime aux bibliothèques de traitement vidéo (rocDecode, rocJPEG) et aux outils de profilage. Il y a même un support d'émulation via ROCjitsu, ce qui est utile si vous écrivez du code pour un GPU que vous n'avez pas sous la main pour le moment.
Accélérer le processus avec ccache
Compiler LLVM et les bibliothèques ML lourdes prend beaucoup de temps. Les développeurs de TheRock le comprennent et ont ajouté des scripts pour configurer ccache. De plus, ils ont tenu compte des spécificités de la compilation de code pour AMDGPU (le flag ), ce qui peut parfois rendre ccache standard récalcitrant.
Sur Linux, cela s'active avec une seule commande :
Après cela, les constructions répétées sont beaucoup plus rapides.
Qui bénéficiera de ceci
Je vois trois scénarios principaux où TheRock est vraiment utile :
- Chercheurs et ingénieurs ML : quand vous avez besoin d'exécuter le dernier PyTorch avec le support des nouvelles fonctionnalités ROCm qui ne sont pas encore arrivées dans les images Docker stables.
- Développeurs de bibliothèques : si vous écrivez quelque chose par-dessus HIP, TheRock fournit un bac à sable pratique avec tous les outils de débogage (ROCgdb, rocprofv3).
- Utilisateurs Windows : le support ROCm sur Windows rattrape encore Linux, et avoir un guide de compilation clair via VS 2022 est un gros plus.
Le projet TheRock n'est pas "juste un autre installateur" — c'est plus comme un établi de travail professionnel. Oui, cela nécessite de comprendre comment CMake fonctionne et quelles dépendances votre système a besoin. Mais en retour, cela vous donne un contrôle total sur la pile ROCm.
Si vous êtes fatigué de lutter contre les conflits de paquages dans votre système ou si vous voulez extraire le maximum de votre Radeon pour les tâches de machine learning, jetez un œil à ce dépôt. Gardez simplement à l'esprit que le projet est en accès précoce — des bugs sont possibles, mais la communauté et les développeurs AMD y sont assez actifs.
Vous pouvez vérifier le statut des constructions nocturnes et la documentation sur leur Projets similairesComment créer un terminal d'analyse quantitative personnel avec Polars et DuckDB
Comment connecter un réseau neuronal à un navigateur réel avec Browser Harness
ElevenLabs en local sur votre propre matériel avec VoiceStudio
Tickflow Stock Panel : Comment créer votre propre terminal d'analyse quantitative des actions
Comment transformer du code NumPy familier en code GPU compilable
Comment apprendre à Cursor et Claude Code à bien écrire pour Salesforce