nouvelles

Startup NVIDIA : simulez CUDA sur une carte AMD, compilez et exécutez directement le programme original

2024-07-16

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

  • Crécy vient du temple Aofei
    Qubits | Compte public QbitAI

Sans aucune modification ni conversion, la carte graphique AMD peut exécuter le programme CUDA d'origine !

Une start-up britannique a lancé un outil de compilation de programmes CUDA pour AMD, gratuit pour un usage commercial.

Une fois l’outil publié, il a suscité de vives discussions parmi les internautes etA atteint le sommet de la liste chaude de HackerNews



L'outil s'appelle SCALE et les développeurs le positionnent comme une boîte à outils de programmation GPGPU (GPU à usage général).



Actuellement, 9 programmes, dont le grand framework de modèles llama-cpp, ont réussi le test et fonctionnent normalement.

Contrairement à d'autres implémentations, SCALESimulez directement l'installation de la boîte à outils CUDA, la compilation peut être complétée à partir des sources sans conversion vers d'autres langues.

Par conséquent, SCALE peut également prendre en charge les langages intermédiaires spécifiques à NVIDIA tels que le PTX en ligne.

Pas besoin de conversion, laissez AMD exécuter CUDA

L'introduction officielle du site Web montre que SCALE dispose principalement d'un compilateur nvcc compatible avec trois composants, d'une implémentation AMD du runtime CUDA et de l'API du pilote, ainsi que de 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", et SCALE utilise cette méthode lorsqu'il s'agit de bibliothèques telles que cuBLAS et cuSOLVER.



La principale innovation de SCALE est queAcceptez le programme CUDA tel quel, sans avoir à les porter dans une autre langue,Compatible avec nvcc et clanget d'autres méthodes de compilation, tandis que les outils et scripts de construction existants (tels que cmake) peuvent fonctionner normalement.

Selon le communiqué officiel, SCALE est entièrement compatible avec CUDA, permettantLes développeurs n'ont pas besoin d'écrire des codes distincts pour les différentes plates-formes GPU

Ceci est très différent du HIP lancé par AMD, car HIP réécrit le code CUDA d'une certaine manière et peut ne pas être en mesure de comprendre correctement les 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 quelquesExtensions de langue facultatives, ce qui peut permettre aux développeurs qui souhaitent se débarrasser de nvcc d'écrire du code GPU plus facilement et plus efficacement.

L'auteur a exprimé l'espoir qu'à l'avenir, les développeurs pourront écrire du code 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, la prise en charge par SCALE de diverses séries de GPU AMD est la suivante :

  • Déjà pris en charge : gfx1030 (série RX6000) et gfx1100 (série RX7000)
  • "semble fonctionner": gfx1010 (série RX5000) et gfx1101
  • Adaptation : gfx900 (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 après tout un tout nouveau projet, c'est pourquoi l'auteur a également préparé une série de tutoriels depuis l'installation jusqu'à la compilation, donnant différents types d'exemples de programmes.

Les étapes clés du didacticiel sont accompagnées de codes pertinents et incluent même comment déterminer le modèle de votre propre GPU, que l'on peut qualifier de 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'appelleCalcul spectral, fondée au Royaume-Uni en 2018, prétend avoir une compréhension approfondie de l'architecture du CPU et du GPU, et son objectif est d'aider les développeurs à utiliser efficacement les ressources informatiques.



Internaute : défier les douves de Nvidia ?

Certains internautes pensent que si SCALE peut réellement avoir un effet (comme annoncé), il remettra en question le fossé de NVIDIA et permettra à AMD de rivaliser directement avec lui.



Cependant, il est trop tôt pour tirer une conclusion. Après tout, les responsables de SCALE admettent également 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, comme 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 (pas seulement l'avantage de CUDA).



Même si elles fonctionnent efficacement, se pose également la question de savoir si les cartes AMD sont réellement abordables et accessibles.



Une autre vague d'internautes estime que le plus gros problème n'est pas de savoir si le système peut fonctionner techniquement, mais plutôt les questions juridiques qui le sous-tendent.

Cette question a également suscité de nombreuses discussions, mais aucune conclusion n’a encore été trouvée.

Certaines personnes pensent que SCALE est aussi juridiquement discutable que 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 autorise uniquement le développement d'applications fonctionnant sur des cartes N, ce qui peut interdire les implémentations compatibles telles que SCALE.



Mais immédiatement, certains internautes ont déclaré que SCALE n'utilisait pas le « SDK » de NVIDIA, alors pourquoi parler de l'accord d'utilisation du SDK ?



Bref, qu'il s'agisse d'une lacune technique ou d'un problème juridique, la discussion autour de ce nouvel outil est toujours en cours.

Quant à savoir si c'est utile ou non, c'est aux développeurs de voter avec leurs pieds.

Liens de référence :
[1]https://docs.scale-lang.com/
[2]https://news.ycombinator.com/item?id=40970560