- SCALE est une boîte à outils de programmation GPGPU qui permet de compiler nativement des applications CUDA pour les GPU AMD
- Il n’est pas nécessaire de modifier les programmes CUDA ni le système de build, et la prise en charge d’un plus grand nombre de fournisseurs de GPU ainsi que des API CUDA est en cours de développement
Comment cela fonctionne-t-il ?
- SCALE apporte plusieurs innovations majeures par rapport aux autres solutions GPGPU multiplateformes
- Il accepte les programmes CUDA tels quels. Aucun portage vers un autre langage n’est nécessaire. Cela vaut même si le programme utilise du PTX
asm inline
- Le compilateur SCALE accepte les mêmes options en ligne de commande et le même dialecte CUDA que
nvcc, ce qui lui permet de fonctionner comme un remplaçant direct
- Il « imite » une installation du NVIDIA CUDA Toolkit afin que les outils et scripts de build existants continuent de fonctionner tels quels
Quels projets ont été testés ?
- SCALE a été validé en compilant des projets CUDA open source et en exécutant leurs tests
- Les projets open source suivants sont actuellement inclus dans les tests automatisés nocturnes et les passent intégralement
- NVIDIA Thrust, Blender Cycles, AMGX, llama-cpp, faiss, xgboost, GOMC, stdgpu, hashcat
Quels GPU sont pris en charge ?
- Les cibles GPU suivantes sont prises en charge et incluses dans les tests Nightly
- AMD
gfx1030 (Navi 21, RDNA 2.0)
- AMD
gfx1100 (Navi 31, RDNA 3.0)
- Les cibles GPU suivantes ont fait l’objet de tests manuels ponctuels et « semblent fonctionner »
- Le support des GPU suivants est en cours de développement
- AMD
gfx900 (Vega 10, GCN 5.0)
- Si vous souhaitez une prise en charge rapide d’une architecture GPU AMD spécifique, veuillez les contacter
Les composants de SCALE
- Un compilateur compatible
nvcc capable de compiler du CUDA dialecte nvcc pour les GPU AMD, y compris le PTX asm
- Une implémentation des API CUDA Runtime et Driver pour les GPU AMD
- Une bibliothèque wrapper open source qui fournit les API « CUDA-X » en déléguant aux bibliothèques ROCm. Des bibliothèques comme
cuBLAS et cuSOLVER sont gérées de cette manière
En quoi SCALE diffère-t-il des autres solutions ?
- Au lieu de proposer une nouvelle manière d’écrire des logiciels GPGPU, SCALE permet de compiler directement pour les GPU AMD des programmes écrits dans le langage CUDA largement utilisé
- SCALE vise une compatibilité complète avec NVIDIA CUDA. Le projet considère que les utilisateurs doivent pouvoir prendre en charge plusieurs fournisseurs de GPU sans maintenir plusieurs bases de code ni faire de compromis sur les performances
- Le langage de SCALE est un superset de NVIDIA CUDA, avec des extensions de langage optionnelles qui rendent l’écriture de code GPU plus simple et plus efficace pour les utilisateurs qui souhaitent s’éloigner de
nvcc
- SCALE est un travail en cours. Si une API manquante empêche son utilisation, veuillez les contacter. Ils ajusteront les priorités de développement
Le résumé de GN⁺
- SCALE est une boîte à outils importante qui permet de compiler nativement des applications CUDA pour les GPU AMD
- Il offre un avantage majeur aux développeurs en permettant d’exécuter des programmes CUDA existants sur des GPU AMD sans modification
- Son objectif de compatibilité complète avec NVIDIA CUDA en fait une solution intéressante pour prendre en charge plusieurs fournisseurs de GPU
- Le projet est encore en cours de développement, et si une API nécessaire manque, il est possible de contacter l’équipe afin d’ajuster les priorités
- Parmi les projets aux fonctionnalités similaires figurent ROCm et HIP
1 commentaires
Avis Hacker News
Beaucoup estiment qu’AMD devrait prendre en charge une couche de traduction, mais certains pensent que c’est une mauvaise idée
Certains estiment que rechercher la compatibilité avec les bugs est une absurdité
Certains disent ne pas comprendre comment du code fortement dépendant du matériel pourrait « simplement fonctionner » sur AMD
wgmma, les dispositions mémoire et registres optimales pour les tensor cores, les instructions du tensor memory accelerator, etc.Si c’est vrai, c’est impressionnant, mais certains notent que ce n’est pas open source et qu’il manque des détails précis sur son fonctionnement
Certains estiment que la principale raison de la valorisation élevée de Nvidia est qu’AMD n’investit pas pour rendre ses GPU vraiment utiles pour le ML
Certains ont tellement l’impression qu’AMD se trompe qu’ils ont envie de féliciter ce genre de projet
Une personne dit avoir travaillé chez Spectral Compute il y a quelques années
Une personne dit avoir déjà un peu écrit en CUDA
Certains trouvent ce projet excellent
C’est bien qu’il existe une page sur les limitations actuelles, mais certains soulignent que ce que la plupart des gens appellent « CUDA » ne représente qu’une petite partie des capacités réelles de CUDA
Certains pensent que cela pourrait être réel, puisque c’est techniquement possible