Connexion Premium

#Nextquick Pourquoi tout le monde se jette encore sur les GPU NVIDIA pour l’IA

Dans l'IA, tous les chemins mènent à CUDA

#Nextquick Pourquoi tout le monde se jette encore sur les GPU NVIDIA pour l’IA

Illustration : Flock

NVIDIA est toujours le maître incontesté quand on parle d’entraînement et d’inférence de l’intelligence artificielle (générative). Ses GPU sont encore et toujours incontournables alors qu’il existe des alternatives, parfois plus économes, avec des puces spécialisées (ASIC) développées par Google, Microsoft ou encore Amazon. Pourquoi une telle situation ?

Avant toute chose, rendons à Furanku ce qui appartient à Furanku : l’idée de ce Nextquick. Dans les commentaires sur notre analyse de la consommation électrique des datacenters, il a soulevé une très intéressante question : « Pourquoi alors les TPU ne sont pas plus présents au sein des DC ? S’ils sont plus efficients, etsi j’ai bien suiviplus économiques, comment se fait-il que tout le monde continue à se jeter sur des GPU ? »

Les TPU, ou Tensor Processing Unit (unité de traitement de tenseur), sont développés par Google, mais il existe aussi les Trainium de chez Amazon et les Maia chez Microsoft, pour ne citer qu’eux. Il s’agit d’ASIC, des circuits spécialisés, contrairement aux GPU qui sont généralistes (avec quand même une forte optimisation pour les calculs massivement parallélisables). Nous élargissons la question aux ASIC dans leur ensemble.

La réponse courte de la domination de NVIDIA tient en quatre lettres : CUDA, pour Compute Unified Device Architecture, une plateforme de programmation lancée en 2007, bien avant l’arrivée de l’IA. Depuis 20 ans, NVIDIA la développe et l’enrichit. La force de NVIDIA sur le logiciel est telle que son arrivée sur le quantique « fait peur à tout le monde ».

Maintenant, la réponse détaillée.

CUDA s’impose comme un standard de fait

Il reste 78% de l'article à découvrir.

Cadenas en colère - Contenu premium

Soutenez un journalisme indépendant,
libre de ton, sans pub et sans reproche.

Accédez en illimité aux articles

Profitez d'un média expert et unique

Intégrez la communauté et prenez part aux débats

Partagez des articles premium à vos contacts

Commentaires (26)

votre avatar
Merci pour ce papier fort enrichissant et qui répond totalement aux questions que je me posais !

Je me doutais fortement qu'il y avait du lock-in dans tout cela, mais pas à ce point.
Et je suis même surpris que les régulateurs ne se penchent pas plus sur la question. Il y a une situation de monopole évidente. Alors quand on nous vend du "libre marché" et que l'on constate ce type de situation, avec un acteur qui étouffe tout un pan industriel...

Typiquement CUDA devrait, amha, finir comme un standard ouvert de facto.
Cela réduirait en partie la dépendance à NVIDIA, en plus de permettre à la concurrence d'arriver plus fortement sur les marchés l'intégrant, donc stimuler l'innovation.
votre avatar
CUDA est un standard de facto. L'implémentation est propriétaire, mais l'interface est publique. Rien n'empêche les autres de proposer cette interface sur leur matériel ; c'est d'ailleurs le principe de HIP sur ROCm. Mais CUDA est pensé pour les GPU nvidia, leur architecture, leur workflow. C'est forcément moins efficace une fois que tu le plaques sur une archi qui n'a pas été conçue dès le départ pour faire du CUDA.
votre avatar
nVidia refuseront cette ouverture en open standard : ils auraient trop à perdre.
votre avatar
Et je suis même surpris que les régulateurs ne se penchent pas plus sur la question
Tant que l'épice coule...
Typiquement CUDA devrait, amha, finir comme un standard ouvert de facto.
Il y aurait du y avoir une autorité de standards comme IEEE ou du genre pour tamponner la chose et la rendre ouverte. Ou un truc dirigé par des mathématiciens. Même si ce sont les pires programmeurs du monde AMHA.

Certes on ne pouvait pas imposer à NVidia de le faire mais cela aurait pu aider... chépa, l'humanité. C'est là ou l'on voit que ces entités n'ont quasi pas de pouvoir. C'est le marché qui décide. Donc c'est con.

Maintenant on ne peut pas enlever à NVidia le fait qu'ils aient eu le nez creux de miser dessus. Ce sont quand même des dépenses de développement sur le hardware et le soft.
votre avatar
Maintenant on ne peut pas enlever à NVidia le fait qu'ils aient eu le nez creux de miser dessus. Ce sont quand même des dépenses de développement sur le hardware et le soft.
Ce ne sont pas des visionnaires, ils ont juste suivi le mouvement. L'idée du GPGPU ne vient pas de nvidia. Ça a démarré avec BrookGPU à Stanford, et ça tournait sur DirectX ou OpenGL, sans pile logicielle dédiée du concepteur du GPU. Ce sont eux qui ont montré la faisabilité du truc. C'est seulement quand ça a commencé à marcher, que nvidia a vu qu'il y avait de la demande, qu'ils ont lancé CUDA. Et au départ, CUDA c'était purement logiciel ; ça devait se satisfaire d'une puce pensée encore exclusivement pour le graphisme. Et c'est seulement quand CUDA a eu capté une grosse part de marché qu'ils ont investi pour améliorer le matériel pour le support CUDA et à sortir les puces dédiées (Tesla & co).

Bref, ils n'ont pas "misé" sur le GPGPU. Ils se sont laisser porter par la tendance, et n'y ont été qu'un peu à la fois. En revanche, ce qu'on ne peut pas leur enlever (et qui explique leur succès), c'est que leurs GPU sont puissants.
votre avatar
Je suis à moitié d'accord. Ils n'ont pas initié, certes. Mais si NVidia ne pousse au cul, c'est mort. Entre le plan final et le chip gravé il s'en passe des années.

Oui ils n'ont pas inventé le train mais sans la locomotive, le train, il reste sur place. Et le papier BrookGPU reste un papier errant dans les limbes d'une université. Comme tant d'autres papiers.

Je pense que c'est quand même un pari. Imagine que CUDA ait flopé... Ca en fait du transistor inutile.
votre avatar
Et le papier BrookGPU reste un papier errant dans les limbes d'une université. Comme tant d'autres papiers.
Ah, tu penses que BrookGPU c'est juste un papier. Alors je suis désolé de t'apprendre que BrookGPU, c'est du code, ça tourne, et ça a même connu sa petite période de gloire il y a 20 ans.
Et c'est clair que c'est le proof-of-concept qui a encourage nvidia à proposer CUDA.
Imagine que CUDA ait flopé... Ca en fait du transistor inutile.
Tu n'as même pas lu le message auquel tu réponds, en fait.
Les première versions de CUDA tournaient sur un GPU 100% conçu pour le graphisme. Si CUDA flopait, ça faisait 0 transistor inutile.
votre avatar
Quand je dis un papier j'inclus tout. Le POC etc. Sans Nvidia il ne serait peut-être pas aller plus loin que le code qui tourne dans un coin mu par une obscure communauté. Personne ne peut nier que sans le coup de pouce, les chances de flopage sont bien plus grandes. Malheureusement dans nos sociétés, il faut des entreprises qui poussent les choses. A tord ou à raison.

Oui les premières version de CUDA sont logicielles. Maintenant Le fait que NVidia fasse de l'accélération hard pour CUDA est un engagement certain. Ça reste bel et bien de la place sur un 'die' avec toutes les problématiques que cela engendre (étude, complexité, TDP, taille, support etc...).
votre avatar
Certes on ne pouvait pas imposer à NVidia de le faire mais cela aurait pu aider... chépa, l'humanité. C'est là ou l'on voit que ces entités n'ont quasi pas de pouvoir. C'est le marché qui décide. Donc c'est con.
Le truc c'est que même si rapidement on a compris l'intérêt du truc, jamais à l'époque (il y a plus de 20 ans) on aurait imaginé que CUDA devienne le centre du monde...
C'est comme pour les réseaux sociaux et tous les géants désormais encadrés par les DSA/DMA, ils ne sont pas nés gigantesques : ils le sont devenus.

Il est toujours plus facile de pointer ce qu'on aurait pu faire une fois qu'on a l'issue devant les yeux !

Cela étant, comme toujours dans le secteur du hardware, c'est pas dit que ça dure malgré tout. Vu les coûts associés et les besoins démentiels, c'est pas un hasard si justement d'autres essaient de se barrer sur d'autres solutions où y'a pas une autorité qui fixe les prix.

On voit déjà comment Microsoft/Google/Apple partent en solution proprio, tout en utilisant leur OS en cheval de Troie pour concurrencer les petits nouveaux avec leurs propres IA. Alors OK ils sont en retard pour l'instant, mais pour combien de temps ?

Puis ce sont pas les premiers à devenir tout puissant, on peut citer Intel qui faisait >80% du marché des CPU en 2004 et même 95% des processeurs pour serveurs en 2015. Ils font plus autant la fête maintenant, alors que même Windows s'ouvre à ARM...
votre avatar
Après coup oui. Mais c'est pas la première fois que je milite pour ce genre de chose. Un processus un peu plus raisonné que l'obédience aveugle au marché. Qui quoiqu'on en dise, fait de nombreuses conneries... Genre, l'état du monde aujourd'hui.

Ça ne veut pas dire exclure tout raisonnement commercial. Mais au moins voir un peu plus loin que le bout du nez. Avoir un "système CUDA de NVidia" ouvert et partagé se grave mieux dans l'histoire qu'un brevet propriétaire.
votre avatar
OK, mais donc à quel moment on intervient et sous quelle forme ?

On impose toutes les nouvelles technologies de devenir ouvertes ?
On déclare qu'à partir d'un certain temps elles peuvent pas perdurer si personne ne les concurrencent ?

On voit qu'il y a de plus en plus de volontés d'imposer un minimum d'ouverture et d'interopérabilité, et de plus en plus :

  • l'écosystème Apple (RCS, AirDrop...),

  • la norme USB-C imposée sur tous les ordis et smartphones,

  • la portabilité des données sur les réseaux sociaux,

  • les prises de recharge dans l'automobile,

  • etc.



Pour autant, on ne peut pas intervenir en amont sur ces sujets, pour deux raisons :
1/ Parce que personne n'aura envie d'innover si tout le monde peut taper dedans tout de suite, c'est la base de la concurrence et ce qui justifie pour l'entreprise d'investir.

2/ Parce que personne ne sait quand ça débute si ça va avoir du succès. Les innovations qui font pschit, il y en a en pagaille. On va pas tout réguler dès qu'une entreprise dépose un brevet ou sort un truc, sinon ça veut dire aussi qu'on s'arrête à la première version qui tombe, même si c'est pas la meilleure.

Après, le marché est régulé par des vrais gens, pas par un Deep State qui guide ou on va.
Comme on pourrait le dire pour PHP, Rust ou même les nouveaux mots de la langue française, CUDA s'est développé parce qu'il y a des humains (ici les développeurs) qui se sont mis dessus, dans 1, 10, 100 puis 1000 entreprises. Parce que c'était attractif (documentation, performances...), parce que l'alternative n'était pas plus intéressante (réapprendre pour faire pareil ou moins bien), puis au fil du temps parce que tout le monde était dessus et qu'il fallait y être aussi (recrutement, bibliothèques, entraide, etc.) : c'est devenu un standard incontournable.

C'est donc surtout de la pédagogie générale sur les risques liés aux écosystèmes captifs, de la même façon qu'un consommateur lambda doit avoir conscience qu'une fois qu'il a acheté son Apple Watch et son HomePod, il lui sera compliqué de passer d'iPhone à Android lorsqu'il voudra renouveler son smartphone.

D'ailleurs, on voit bien que les stratégies d'exploitation de l'IA sont distinctes.
Certains construisent des outils qui permettent de switcher entre les modèles d'IA, permettant alors demain de passer d'Anthropic à OpenAI en quelques minutes, alors que d'autres vont foncer tête baissée avec des requêtes qui fonctionnent exclusivement avec l'un d'eux, dont ils seront complètement dépendants, exigeant des mois de travail pour essayer de changer un jour.
votre avatar
Bin l'IETF c'est pas si mal. N'importe qui ne sort pas un nouveau protocole de communication / routage comme cela. Même si un certain Mr G. Pujolle nous disait que c'était un séminaire ou les gens lèvent la main (votent). Ça reste une approche pleine de sens. En tout cas, plus que de laisser en pâture...

Pour Apple je sais pas. Pour le reste :
C'est à cause du bordel déjà présent que l'UE a imposé l'USB-c. Les prises de recharge auto... ça en prenait le même chemin méchamment. Donc plutôt gris que noir ou blanc.

Et surtout c'est de la veille technologique. Celle qui manque cruellement à l'appel en France (ou en UE). Et là je tousse comme un tabagique de 40 ans de carrière en fin de cancer (soutenu par un protocole de recherche à OncoLand) pour faire un signe... Même si je clope pas...

La concurrence est peut-être un souci. Mais bon la situation actuelle entre AMD NVidia montre bien que c'est encore un foutoir. Il y a un moment il faut décider. Cela peut se traduire par des aides pour celui qui est le plus 'sound' (qui fait sens) dans un écosystème.

Je pense que les états du monde entier devraient faire une petit obole pour les paroisses linuxiennes. Pourquoi ne pas le faire pour d'autres choses ? C'est aussi un moyen d'organiser et de sussiter. Bien évidement avec du contrôle et de la veille techno... khoffff, khofff
votre avatar
Il y a une tentative de "porter" CUDA sur d'autres GPU qui s'appelle ZLUDA mais avec une histoire tumultueuse avec Intel et AMD.
votre avatar
Oui et surtout un aspect juridique important puisque NVIDIA refuse de mémoire dans ces CGU ce genre d’usage
votre avatar
Merci, bien utile pour avoir une vision globale sur cette question, sans que ce soit trop technique :yaisse:
votre avatar
Les TPUs sont beaucoup plus efficient que les GPU parce qu’ils sont plus spécialisés, ce qui est très bien pour l’inférence. Par contre quand tu entraînes une IA, tu tâtonnes encore, tu essaies pleins de choses, et tu as besoin de plus de souplesse et de généralité. C’est pour ça que de plus en plus d’entreprises se tournent vers une utilisation hybride : des GPU pour l’entraînement, et des TPU pour l’inférence.

Il y a aussi torchTPU qui est, ou va sortir, et si je ne me trompe pas, qui a été développé par Google et le créateur de PyTorch. Et ça permettrait de faire tourner du PyTorch nativement sur des TPU. Ce qui déverrouille encore un peu le “lock-in”
votre avatar
L'autre point à prendre en compte, c'est que les GPU sur un cluster de calculs, ils ne sont pas utilisés exclusivement pour faire du réseau de neurone. Beaucoup de projets utilisent les GPU pour faire du calcul plus classique sur des grosses tables. Les TPUs spécialisés ne servent plus à rien dans ces cas là.
votre avatar
Il y a quand même un truc inexplicable : certes, les GPU nvidia sont bons, c'est un ecosystème dont on est prisonnier, et il y a une montagne de code existant dessus. Mais quand même, on sait bien que ce qui dirige le monde, c'est le pognon : si les TPU sont moins chers à produire que les GPU nvidia hors de prix, et consomment moins d'énergie qui est hors de prix en ce moment, pourquoi est-ce que les dirigeants des grandes entreprises ne les imposent pas à leurs troupes ? Parce que bon, on sait bien que ce sont les financiers qui dirigent les entreprises, pas les ingénieurs.
votre avatar
Parce que pratiquement tous les devs ont été et son biberonnés sur du nVidia depuis 20 piges, les formations et les dépendances ne se suppriment pas comme ça.

Il y a en plus un coût énorme de migration (hardware et software) en plus des formations nécessaires pour les devs afin d'avoir en sortie des perfs similaires que peu sont près a encaisser.
votre avatar
Tout d'abord, les TPU, ce n'est pas si "pas cher" que ça. Google a développé ses propres puces, et il les fait produire et adapté les grosses bibliothèques à son matos. Une carte graphique, il suffit juste de commander, c'est une ligne dans la conta, et tu as une solution clé en mains, matériel, driver et logiciel.

La majorité des développeurs en ML, eux, utilisent des bibliothèques haut niveau comme pyTorch, Jax, Tensorflow. Le code est, pour l'immense majorité, ligne, agnostique du matos. Techniquement, si tu as le backend qui permet d'utiliser un TPU, il sera compatible avec les TPU. Microsoft a même créé un format ouvert "ONNX" pour les modèles de machine learning et avec un environnement capable de s'adapter à la machine.

Bon après, le TPU, c'est trop spécialisé, certain modèle risque de ne pas fonctionner là-dessus.
votre avatar
Et dire que tout avait commencé avec Brooktree gpgpu qui tournait sur n'importe quel matos...
Et concernant l'enfermement dans le système CUDA, c'est un comble quand on vois que n projets sont rétroengeineré à coup d'IA pour ressortir du code dans un autre langage !
votre avatar
Hum. Brook GPU, c'était quand même vachement restreint.
votre avatar
C'est exactement ce que je me disais.
Qu'est-ce que ce ce ironique, que CUDA soit rétro ingénié à l'aide d'une IA à base de CUDA. 😁
votre avatar
Dans les projets alternatifs d'API agnostique pour ce genre d'usage (exécution sur GPU) en C++, y'a Kokkos.

github.com GitHub
votre avatar
en anglais, une des meilleures source d'information, certes un peu longue, de Chris Lattner dont la boîte construit aussi une alternative, et qui n'a pas son pareil en expertise et en pédagogie
https://www.modular.com/democratizing-ai-compute
votre avatar
Les TPU de Google, par exemple, ne sont disponibles que dans les datacenters de Google.
Ils sont là, les véritables blocages : notion de GPGPU, et capacité d'autonomie du déploiement.
On peut acheter des GPGPU et monter sa propre ferme souveraine, de toute taille.

Qui va aller faire l'effort de solliciter de la concurrence en utilisant des ressources pour changer d'habitudes/API/cadre d'application si la cible est verrouillée, et uniquement disponible dans la crèmerie du fournisseur ?
Il y a un autre grand gagnant : TSMC qui produit des puces pour tout le monde, NVIDIA et les autres.
Encore une démonstration que les seuls gagnants certains d'une ruée vers l'or sont les vendeurs d'outils.
D'ailleurs, ce sont les quelques rares externalités au circuit fermé de la bulle.