La compatibilité CUDA avec les GPU AMD et Intel n’est plus un rêve de pipe
Pourquoi c’est important: NVIDIA a introduit CUDA en 2006 en tant qu’API et couche logicielle propriétaires qui sont finalement devenus la clé pour débloquer l’immense puissance de calcul parallèle des GPU. Cuda joue un rôle majeur dans des domaines tels que l’intelligence artificielle, l’informatique scientifique et les simulations de haute performance. Mais l’exécution du code CUDA est restée largement verrouillée sur le matériel NVIDIA. Maintenant, un projet open-source travaille pour briser cette barrière.
En permettant aux applications CUDA d’exécuter des GPU tiers d’AMD, Intel et d’autres, cet effort pourrait étendre considérablement le choix matériel, réduire le verrouillage des fournisseurs et rendre le calcul du GPU puissant plus accessible que jamais.
L’équipe Zluda a récemment partagé sa dernière mise à jour trimestrielle, confirmant que le projet reste axé sur la mise en œuvre pleinement de la compatibilité CUDA sur les accélérateurs graphiques non NVIDIA. L’objectif déclaré de Zluda est d’offrir un remplacement sans rendez-vous pour CUDA sur AMD, Intel et d’autres architectures GPU – permettant aux utilisateurs et aux développeurs d’exécuter des applications non modifiées basées sur CUDA avec des performances « presque natives ».
Un changement des plus prometteurs pour Zluda est que son équipe a doublé en taille. Il y a maintenant deux développeurs à temps plein travaillant sur le projet. Le développeur nouvellement ajouté, connu sous le nom de « Violet », a déjà apporté des contributions notables au référentiel open-source officiel de l’outil sur GitHub.
D’autres mises à jour importantes impliquent des améliorations de l’exécution ROCM / HIP GPU, qui devrait désormais fonctionner de manière fiable sur Linux et Windows. Les temps d’exécution GPU comme CUDA et ROCM sont conçus pour compiler le code GPU à l’exécution, garantissant que le code développé pour le matériel plus ancien peut généralement compiler et s’exécuter sur des architectures GPU plus récentes avec un minimum de problèmes.
Zluda est également beaucoup mieux pour exécuter des binaires CUDA non modifiés sur des GPU non NVIDIA. Auparavant, l’outil a ignoré certains modificateurs d’instructions ou n’a pas réussi à les exécuter en pleine précision. Maintenant, le code amélioré peut gérer certains des cas les plus délicats – tels que l’instruction CVT – avec une précision précise.
Une étape clé pour prendre en charge pleinement les applications CUDA consiste à suivre la façon dont le code interagit avec l’API grâce à la journalisation détaillée. Zluda s’est également améliorée dans ce domaine. Il peut désormais capturer des interactions précédemment négligées et même gérer les appels d’API intermédiaires.
Voir également: pas seulement le matériel: quelle est la profondeur des douves du logiciel de Nvidia?
Les développeurs ont également fait des progrès significatifs pour soutenir LLM.C, une implémentation de test CUDA pur (écrit en C) pour des modèles de langage comme GPT-2 et GPT-3. Zluda implémente actuellement 16 fonctions sur 44 dans LLM.C, et l’équipe espère exécuter complètement le test bientôt.
Enfin, Zluda a légèrement progressé dans son support potentiel pour le code Physx 32 bits. Nvidia a abandonné la prise en charge matérielle et logicielle de ce middleware avec les GPU de la série GeForce 50 basée à Blackwell, laissant les fans d’anciens jeux (ish) avec ce qui peut être essentiellement décrit comme une expérience brisée ou inférieure.
Au cours du dernier trimestre, Zluda a reçu une mise à jour mineure liée au support Physx 32 bits. L’accent initial est de collecter efficacement les journaux CUDA pour identifier les bogues potentiels, ce qui peut éventuellement affecter également le code Physx 64 bits. Cependant, les développeurs mettent en garde que le soutien physique complet du Phyx 32 bits nécessitera probablement des contributions importantes de codeurs tiers.