AMD a financé une implémentation de la bibliothèque CUDA Drop-In intégrée basée sur ROCm : elle est désormais open source,
l'arrêt du financement de ce projet suscite des inquiétudes

Au fil des années, AMD a travaillé pour faciliter le portage des codes CUDA de NVIDIA vers HIP/ROCm, mais cela nécessitait toujours des ajustements importants. Au cours des deux dernières années, AMD a soutenu un projet visant à assurer une compatibilité binaire, permettant à de nombreuses applications CUDA de fonctionner sur ROCm sans modification du code source. Cette solution, désormais disponible en open source, offre la possibilité aux utilisateurs d'exécuter des logiciels compatibles avec CUDA sans nécessiter l'intervention d'un développeur.

Depuis son introduction en 2006, CUDA a été largement déployé à travers des milliers d'applications et s'appuie sur une base installée de plus de 500 millions de GPU compatibles CUDA dans des ordinateurs portables, des stations de travail, des clusters de calcul et des supercalculateurs. La plateforme de calcul CUDA s'étend des milliers de processeurs de calcul généralistes intégrés à l'architecture de calcul des GPU, aux extensions de calcul parallèle pour de nombreux langages populaires, aux puissantes bibliothèques accélérées "drop-in", aux applications clés en main et aux appliances de calcul basées sur le cloud.

Nom : Cuda.jpg
Affichages : 13178
Taille : 6,0 Ko

Le projet open source ZLUDA visait à fournir une implémentation CUDA sur les cartes graphiques Intel basée sur Intel oneAPI Level Zero. ZLUDA a été abandonné pour des raisons privées, mais il s'avère que le développeur à l'origine de ce projet (et qui était également employé par Intel à l'époque) a été engagé par AMD en 2022 pour adapter ZLUDA à une utilisation sur les GPU AMD avec HIP/ROCm. Avant d'être engagé par AMD, Intel envisageait de développer ZLUDA. Cependant, Intel a finalement rejeté l'idée et n'a pas financé le projet.

Janik a publié le travail en open source, permettant aux utilisateurs de tester cette implémentation CUDA sur les GPU Radeon avec ROCm. Bien que l'implémentation ne soit pas à 100 % sûre, elle a démontré sa capacité à faire fonctionner des logiciels CUDA sur ROCm sans modification. Le code source est sous double licence Apache 2.0 ou MIT, et le langage de programmation Rust a été utilisé pour cette implémentation Radeon.

ROCm est une pile open source, composée principalement de logiciels open source, conçue pour les calculs de l'unité de traitement graphique (GPU). ROCm consiste en une collection de pilotes, d'outils de développement et d'API qui permettent la programmation du GPU, depuis le noyau de bas niveau jusqu'aux applications de l'utilisateur final.

Avec ROCm, ilest possible de personnaliser un logiciel GPU pour répondre à des besoins spécifiques. Il est possible de développer, collaborer, tester et déployer des applications dans un écosystème logiciel libre, intégré et sécurisé. ROCm est particulièrement adapté au calcul haute performance (HPC) accéléré par le GPU, à l'intelligence artificielle (AI), au calcul scientifique et à la conception assistée par ordinateur (CAO).

ROCm s'appuie sur l'interface Heterogeneous-computing Interface for Portability (HIP) d'AMD, un environnement de programmation GPU C++ open source et son moteur d'exécution correspondant. HIP permet aux développeurs de ROCm de créer des applications portables sur différentes plateformes en déployant le code sur une gamme de plateformes, des GPU dédiés aux jeux aux clusters HPC exascale. ROCm prend en charge des modèles de programmation tels que OpenMP et OpenCL, et inclut tous les compilateurs, débogueurs et bibliothèques de logiciels libres nécessaires. ROCm est entièrement intégré dans les cadres d'apprentissage machine (ML), tels que PyTorch et TensorFlow.

Les opinions divergent quant à la priorité qu'AMD aurait dû accorder à ce projet

La décision d'AMD d'interrompre le financement du projet d'implémentation CUDA Drop-In basée sur ROCm suscite des inquiétudes significatives au sein de la communauté technologique. Après deux ans de développement, cette initiative visait à permettre l'exécution d'applications CUDA sur des GPU AMD de manière transparente, offrant ainsi aux utilisateurs une alternative prometteuse. Cependant, l'arrêt soudain du financement soulève des questions sur la stratégie à long terme d'AMD dans un secteur où la compatibilité avec CUDA est devenue essentielle, en particulier dans le contexte de l'apprentissage automatique.

Certains critiques expriment une certaine déception quant à la gestion de cette situation par AMD. La possibilité de faire fonctionner des applications CUDA sur des GPU AMD aurait pu être un atout majeur pour l'entreprise, susceptible de rivaliser avec les offres de NVIDIA. La question se pose alors sur la vision stratégique de l'entreprise et sur sa capacité à répondre aux besoins changeants du marché, notamment dans des domaines aussi critiques que l'intelligence artificielle.

De l’avis de certains, la compatibilité avec CUDA aurait dû être une priorité absolue, compte tenu de l'essor de l'apprentissage automatique utilisant des outils centrés sur CUDA. D'autres, cependant, remettent en question la viabilité commerciale de cet investissement, soulignant peut-être des défis économiques auxquels AMD fait face. L'avenir de la compatibilité avec CUDA pour les GPU AMD demeure incertain.

Et vous ?

Quel est votre avis sur le sujet ?

Quelles alternatives s'offrent aux utilisateurs qui dépendaient de cette implémentation CUDA Drop-In basée sur ROCm ?

Quels sont les avantages et les inconvénients de la compatibilité binaire offerte par cette implémentation, notamment en termes de facilité d'utilisation pour les développeurs et d'interopérabilité avec les applications existantes ?

Comment cette solution open source pourrait-elle potentiellement affecter la dynamique du marché entre AMD et NVIDIA, compte tenu de la popularité de CUDA dans le domaine de l'apprentissage automatique ?

Voir aussi :

AMD revient avec une nouvelle gamme de processeurs haut de gamme, Ryzen pourra concurrencer les puces Intel

Utilisation de CUDA sous Delphi : comment profiter de la puissance de calcul des GPU, un billet blog de Gouyon