AMD a discrètement soutenu une implémentation de CUDA basée sur ROCm, désormais publiée en open source
- AMD s’efforce depuis plusieurs années de permettre aux développeurs d’exécuter sur HIP/ROCm des bases de code visant l’API CUDA de NVIDIA.
- Malgré ces efforts, ce n’était pas la meilleure solution pour rechercher des performances optimales, c’est-à-dire une solution simple, immédiate et garantissant les performances.
- Au cours des deux dernières années, AMD a discrètement soutenu un projet visant à offrir, au niveau des bibliothèques, une compatibilité binaire permettant à de nombreuses applications NVIDIA CUDA de fonctionner sur la pile AMD ROCm sans modification du code source.
ZLUDA : prise en charge de CUDA pour les cartes graphiques Intel
- Il y a quelques années, un projet appelé ZLUDA avait été lancé pour prendre en charge CUDA sur les cartes graphiques Intel, mais il a été interrompu pour des raisons personnelles.
- Le développeur de ZLUDA, Andrzej Janik, a reçu d’AMD en 2022 un contrat pour adapter ZLUDA aux GPU AMD en utilisant HIP/ROCm.
- Janik a implémenté ZLUDA sur les GPU Radeon au cours des deux dernières années, permettant à de nombreux logiciels CUDA de fonctionner sur HIP/ROCm sans modification.
Publication open source de ZLUDA
- AMD a décidé cette année d’arrêter le financement de ce projet et de ne pas le lancer comme produit logiciel.
- Toutefois, le contrat prévoyait qu’à son expiration, Janik pourrait publier son travail en open source.
- Janik a fourni un accès afin de tester et benchmarker cette nouvelle implémentation de ZLUDA.
Limites de l’implémentation ZLUDA et code open source
- L’implémentation de ZLUDA n’est pas sûre à 100 % : la prise en charge de NVIDIA OptiX n’est pas complète, et les logiciels n’utilisant pas de code assembleur PTX ne sont actuellement pas pris en charge, entre autres limites.
- Dans la plupart des cas, cette implémentation est étonnamment capable pour le travail d’un seul développeur.
- Le code open source est proposé sous double licence Apache 2.0 ou MIT.
- Le langage de programmation Rust a été utilisé pour cette implémentation sur Radeon.
L’avis de GN⁺
- Cet article présente un projet qu’AMD a discrètement soutenu pour offrir une compatibilité CUDA, et qui pourrait représenter une contribution majeure à la communauté open source.
- ZLUDA constitue une avancée importante en permettant aux développeurs d’exécuter des applications CUDA sur la plateforme AMD sans modifier le code source.
- Ces efforts offrent aux utilisateurs de GPU AMD un accès à un écosystème logiciel plus large, et l’usage d’un langage moderne comme Rust est particulièrement intéressant.
2 commentaires
Nvidia, va te faire foutre !
Avis sur Hacker News
ZLUDA a été publié parce qu’AMD a cessé de le financer
Mention de la CUDA Dark API
Avis soutenant AMD dans sa volonté de briser le monopole de CUDA
Retour d’expérience sur une tentative d’exécuter Stable Diffusion sur un GPU AMD et sur les difficultés rencontrées
Plusieurs années après que Blender a abandonné OpenCL et adopté un backend CUDA, un backend Radeon HIP a été ajouté, mais il s’est avéré que l’utilisation de ZLUDA + le backend CUDA était légèrement plus rapide que le backend Radeon HIP.
La décision d’AMD d’arrêter de financer ce projet semble incompréhensible.
Question liée à l’information selon laquelle Nvidia aurait contourné les vérifications du pilote sous licence GPL du noyau
Un guide destiné à ceux qui souhaitent compiler eux-mêmes la stack ROCm/HIP d’AMD est présenté dans un article de Phoronix.
ROCm est mieux expliqué sur GitHub que dans la documentation officielle, ce qui souligne l’importance du branding comme l’une des raisons pour lesquelles AMD perd en compétitivité sur le marché.
Certains estiment qu’AMD devrait affecter davantage d’équipes à ce projet.