Sans aucune modification ni conversion, les cartes graphiques AMD peuvent exécuter des programmes CUDA originaux !
Une start-up britannique a lancé un outil de compilation de programmes CUDA pour AMD, gratuit pour un usage commercial.
Dès que l'outil a été publié, il a suscité de nombreuses discussions animées parmi les internautes et est arrivé en tête de la liste chaude de HackerNews.
L'outil s'appelle SCALE et le développeur le positionne comme une boîte à outils de programmation GPGPU (GPU à usage général).
Actuellement, 9 programmes, dont le framework grand modèle llama-cpp, ont réussi le test et fonctionnent normalement.
Contrairement à d'autres méthodes d'implémentation, SCALE simule directement l'installation de la boîte à outils CUDA et n'a pas besoin d'être convertie dans d'autres langages pour terminer la compilation à partir des sources.
Par conséquent, SCALE peut également prendre en charge les langages intermédiaires spécifiques à NVIDIA comme le PTX en ligne.
L'introduction officielle du site Web montre que SCALE comporte trois composants principaux : un compilateur nvcc compatible, l'implémentation AMD du runtime CUDA et de l'API du pilote, et la bibliothèque ROCm.
Le compilateur peut directement compiler des programmes écrits dans des langages spécifiques à CUDA, notamment nvcc, inline PTX, etc. en codes binaires pouvant s'exécuter sur les GPU AMD.
La bibliothèque ROCm est utilisée pour fournir l'API "CUDA-X", qui est utilisée par SCALE lorsqu'il s'agit de bibliothèques telles que cuBLAS et cuSOLVER.
La principale innovation de SCALE est d'accepter les programmes CUDA tels quels sans avoir à les porter dans un autre langage, et est compatible avec plusieurs méthodes de compilation telles que nvcc et clang, tandis que les outils et scripts de construction existants (tels que cmake ) Ça fonctionne bien.
Selon la déclaration officielle, SCALE est entièrement compatible avec CUDA, éliminant ainsi le besoin pour les développeurs d'écrire des codes séparés pour différentes plates-formes GPU.
C'est très différent du HIP lancé par AMD, car HIP réécrit le code CUDA d'une certaine manière, peut ne pas être correctement compris lorsqu'on rencontre des macros complexes et ne prend pas en charge les langages propriétaires tels que le PTX en ligne.
Même l'auteur de SCALE estime que HIP ne peut pas résoudre le problème de compatibilité CUDA.
De plus, le langage de SCALE est un sur-ensemble de CUDA, fournissant des extensions de langage facultatives qui peuvent rendre plus facile et plus efficace pour les développeurs qui souhaitent se débarrasser de nvcc pour écrire du code GPU.
L'auteur a exprimé l'espoir qu'à l'avenir, les développeurs ne pourront écrire du code qu'une seule fois et l'exécuter sur différentes plates-formes matérielles, et s'efforce de combler l'écart de compatibilité entre le langage de programmation populaire CUDA et d'autres fournisseurs de matériel.
Actuellement, SCALE prend en charge les séries de GPU AMD comme suit :
Déjà pris en charge : gfx1030 (série RX6000) et gfx1100 (série RX7000)
"semblent fonctionner" : gfx1010 (série RX5000) et gfx1101
Adaptation à : 00 ( Série RX Vega)
De plus, l'auteur a testé certains projets open source CUDA et a exécuté avec succès 9 applications CUDA à l'aide de SCALE.
Cependant, SCALE est un tout nouveau projet après tout, c'est pourquoi l'auteur a également préparé une série de tutoriels de l'installation à la compilation, donnant différents types d'exemples de programmes.
Les étapes clés du didacticiel sont toutes accompagnées de codes pertinents, et incluent même comment déterminer le modèle de votre propre GPU, qui peut être considéré comme très détaillé.
Si vous rencontrez des problèmes lors de l'utilisation, l'auteur présente également des méthodes de dépannage courantes et ouvre également un forum Discord pour communiquer directement avec l'équipe de développement.
La startup qui a créé SCALE s'appelle Spectral Compute. Elle a été fondée au Royaume-Uni en 2018. Elle prétend avoir une compréhension approfondie de l'architecture du CPU et du GPU, et son objectif est d'aider les développeurs à les utiliser efficacement. ressources informatiques.
Certains internautes pensent que si SCALE peut vraiment avoir un effet (comme annoncé), il remettra en question les douves de NVIDIA et permettra à AMD de rivaliser directement avec lui.
Cependant, il est trop tôt pour tirer une conclusion. Après tout, SCALE admet officiellement qu'il existe encore quelques défauts par rapport au CUDA original.
Et le développeur a également précisé que certaines API et fonctions CUDA ne sont pas prises en charge, mais n'a pas donné de liste spécifique.
Concernant d'autres lacunes de la "solution AMD", un internaute qui a affirmé avoir communiqué avec l'équipe SCALE a déclaré que la SCALE actuelle ne peut pas faire fonctionner TensorCore, ce qui signifie que le framework d'accélération FlashAttention ne peut pas être exécuté sur AMD.
De plus, étant donné que la carte N dispose d'une puissante unité de multiplication matricielle, même si elle peut être compilée et exécutée, les performances de la carte AMD peuvent ne pas être aussi bonnes que celles de la carte N.
Certains internautes pensent que la raison pour laquelle NVIDIA est dominant est qu'AMD n'est pas disposé à investir pour que son GPU ait des performances d'apprentissage automatique plus élevées (au lieu de simplement avoir l'avantage de CUDA).
Même si elles peuvent fonctionner efficacement, il s'agit également de savoir si les cartes AMD sont vraiment abordables et accessibles.
Il y a aussi une vague d'internautes qui pensent que le plus gros problème n'est pas de savoir si le système peut fonctionner techniquement, mais les problèmes juridiques qui se cachent derrière.
Cette question a également déclenché de nombreuses discussions, mais il n'y a pas encore de conclusion.
Certaines personnes pensent que SCALE a des doutes juridiques comme ZLUDA (une autre façon d'exécuter des programmes CUDA sur AMD) et peut conduire à des poursuites judiciaires de la part de NVIDIA.
Plus précisément, selon les termes du CLUF de NVIDIA, le SDK CUDA permet uniquement le développement d'applications qui s'exécutent sur des cartes N, ce qui peut interdire les implémentations compatibles comme SCALE.
Mais immédiatement certains internautes ont dit que SCALE n'utilisait pas le « SDK » de NVIDIA, alors comment parler de l'accord d'utilisation du SDK ?
Bref, qu'il s'agisse de carences techniques ou de problèmes juridiques, les discussions autour de ce nouvel outil sont toujours en cours.
Quant à savoir si c'est utile ou non, c'est aux développeurs de voter avec leurs pieds.
Lien de référence :
[1]https://docs.scale-lang.com/
[2]https://news.ycombinator.com/item?id=40970560
Cet article provient du compte public WeChat : Qubit (ID : QbitAI), auteur : Cressy
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!