Il est désormais possible d'exécuter des applications CUDA sur des GPU AMD

Faire tourner des applications CUDA sur une carte Radeon ? C'est désormais possible. AMD a financé pendant deux ans le développement d'un projet permettant de remplacer les bibliothèques CUDA par celles de ROCm. Les résultats sont au rendez-vous mais AMD a décidé d'arrêter de soutenir le projet. Il est disponible en open source pour tous ceux voulant le tester.

AMD GPU Radeon
Après deux ans de développement et de discussions, AMD a décidé qu'il n'y avait aucun potentiel de rentabilisation pour exécuter des applications CUDA sur des GPU AMD.

Nvidia a su s'imposer depuis une quinzaine d'années comme l'acteur de référence du calcul pour l'intelligence artificielle. Toutes les grandes innovations du secteur depuis deux décennies, de l'avènement du deep learning aux grands modèles de langage qui agitent la tech depuis l'année dernière, tournent sur des GPU Nvidia.

La clé de ce succès a été CUDA (Compute Unified Device Architecture), une plateforme logicielle qui permet d'exécuter des opérations non spécialisées sur une puce graphique. Une approche appelée GPGPU, pour "general-purpose computing on GPUs". Ces calculs pour un "usage général" étaient jusqu'alors l'apanage des CPU. Aujourd'hui, Nvidia est l'une des entreprises les plus cotées au monde, sa capitalisation boursière ayant dépassé celle d'Intel, le géant des CPU, en août dernier lors de l'annonce de ses résultats trimestriels.

AMD s'attaque à l'écosystème CUDA

AMD, l'autre grand fournisseur historique de puces graphiques (depuis le rachat d'ATI en 2006), s'est finalement sérieusement lancé dans la bataille il y a quelques mois, avec un GPU conçu spécifiquement pour l’intelligence artificielle générative : l'Instinct MI300X. Un réveil certes tardif mais bienvenu. Seul problème : l'optimisation de la quasi-intégralité des tâches d'IA pour CUDA limite son utilité dans l'immédiat.

AMD cherche donc depuis plusieurs années à rendre ses GPUs compatibles avec cet écosystème propriétaire. On apprend ainsi ce 13 février par nos confrères de Phoronix qu'AMD a discrètement financé ces deux dernières années des travaux pour faire tourner les applications CUDA sur ROCm, sa propre plateforme logicielle conçue pour le calcul haute performance (HPC) et l'IA, simplement en remplaçant les bibliothèques logicielles (donc sans avoir besoin d'adapter le code). Et ces efforts semblent avoir payé. C'est un ancien développeur d'Intel, Andrzej Janik, recruté en 2022 par AMD, qui en est à l'origine.

Le projet d'un ancien ingénieur d'Intel

Andrzej Janik avait indépendamment lancé un projet open source baptisé ZLUDA (basé sur OneAPI Level Zero), dont le but était de faire tourner CUDA sur les GPU d'Intel. Mais ce dernier ne l'avait pas jugé suffisamment prometteur et n'avait pas souhaité financer le projet. Andrzej Janik a donc poursuivi son travail au sein d'AMD, avec cette fois comme objectif d'adapter ZLUDA pour une utilisation sur les Radeon.

Andrzej Janik est resté discret durant ses travaux, et il lui a également été demandé de ne pas participer publiquement au développement de ZLUDA. Après deux ans de développement et de discussions, ça fonctionne. Malgré cela, AMD a décidé d'arrêter de financer ce développement, et ne publiera rien en résultant. Par chance, Andrzej Janik avait prévu le coup.

"L'un des termes de mon contrat avec AMD était que s'ils ne le jugeaient pas apte à un développement ultérieur, je pourrais le publier. Ce qui nous amène à aujourd’hui",précise Andrzej Janik. Le projet a donc été publié sur GitHub et peut être téléchargé. D'après notre confrère de Phoronix, qui a effectué plusieurs tests, de nombreuses applications CUDA peuvent désormais tourner sur HIP/ROCm sans aucune modification.

Des résultats satisfaisants

"Exécutez simplement les fichiers binaires comme vous le feriez normalement tout en veillant à ce que les bibliothèques ZLUDA remplaçant CUDA soient chargées", assure-t-il. Du côté des performances, les logiciels compatibles CUDA fonctionnent tout à fait convenablement sur ROCm. "Même les moteurs de rendu propriétaires et autres fonctionnent avec cette implémentation CUDA sur Radeon", est-il précisé.

AMD Intel Cuda

Si la RTX 4080 arrive en tête des benchmarks dans tous les tests de notre confrère, la Radeon RX 7900 XTX n'est souvent pas loin derrière et surpasse la RTX 4070. ZLUDA s'en tire aussi mieux qu'OpenCL dans de nombreux cas de figure. Évidemment, cette implémentation de ZLUDA n'est pas parfaite (Nvidia OptiX n'est par exemple pas entièrement pris en charge), et AMD préfère sans doute de vrais portages optimisés pour sa plateforme, mais ce projet a le mérite de fonctionner sans efforts dans une majorité de cas.

Newsletter L'Usine Digitale
Nos journalistes sélectionnent pour vous les articles essentiels de votre secteur.
Cherche talents numériques
Les webinars