Connexion Premium

Avec sa puce Napier, Tensordyne veut faire 13x à 17x mieux que les GPU NVIDIA

Et tu Tape Tape Tape c’est ta façon d’AImer

Avec sa puce Napier, Tensordyne veut faire 13x à 17x mieux que les GPU NVIDIA

Remplacer les multiplications par des additions, telle est l’approche de Tensordyne pour augmenter de manière importante les performances des processeurs pour l’intelligence artificielle. Le fabricant utilise une « sauce secrète » et promet jusqu’à 13 fois plus de tokens par seconde que NVIDIA. On vous explique cette astuce.

L’IA : des centaines de milliards de calculs

Comme nous l’avons déjà expliqué dans un #Nextquick, une simple requête à une IA générative (via un grand modèle de langage) entraine déjà des centaines de milliards de calculs… au bas mot. GPT-3, avec ses 175 milliards de paramètres, représente environ 350 milliards de calculs par token… avec des multiplications et des additions. On peut généralement multiplier par deux le nombre de paramètres pour avoir une approximation du nombre de calculs.

Les GPU avec la parallélisation massive des calculs sont largement devant les CPU pour ce genre d’opérations. NVIDIA domine dans ce domaine, surtout pour entrainer de gros modèles. Il existe certes des concurrents avec des ASIC (notamment les TPU de Google), mais encore faut-il réussir à embarquer l’écosystème face à la plateforme à tout faire CUDA de NVIDIA (là encore, nous avons un Nextquick sur le sujet) qui s’est installée comme une référence et un standard de facto.

Tensordyne transforme les multiplications en additions

Tensordyne propose une autre approche, comme l’indique notamment CNET. Au lieu d’effectuer des calculs sur des nombres à virgule flottante – c’est-à-dire des nombres décimaux classiques comme 1,32 ou encore 0,78 –, la start-up germano-américaine passe dans le monde des logarithmes.

Ces nombres ont un avantage intéressant : une multiplication devient une addition, une opération moins coûteuse et qui demande moins de place sur un circuit électronique. Toutefois, effectuer une addition dans le monde des logarithmes est bien plus compliqué.

Vous avez des nœuds dans le cerveau ? Reprenons, calmement. Dans le monde des mathématiques classiques, une multiplication entre a et b sur un GPU coûte « plus cher » qu’une addition ; c’est plus complexe dans la pratique, mais simplifions au maximum dans le cadre de cet article.

V’la la tête d’une addition dans le monde des logarithmes…

Il reste 79% 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 (16)

votre avatar
Là comme ça, je dirais que leur "sauce secrète", tiens en 2 points :

  • on trouve une première approximation pas trop mauvaise. Bon, pour trouver une approximation entière d'un log en base 2, on sait bien qu'il suffit de trouver le rang du bit de poids fort. C'est connu depuis une éternité, les x86 ont même une instruction dédiée pour le faire en un cycle.

  • ensuite on affine, avec par exemple une méthode de Newton, chose déjà utilisée en matériel couramment sur les processeurs pour certaines fonctions mathématiques.


Bref, des choses connues depuis plusieurs centaines d'années.
votre avatar
C'est plus complexe.

Ils ont conçu une nouvelle représentation des nombres en binaire et de nouvelles opérations ("pareto").

Les opérations "pareto" et "floating point standards" produisent tous les deux des erreurs par rapports aux calculs mathématiques théoriques. Ils se sont autorisés à dévier du standard pour optimiser la performance (vitesse de calcul et consommation d'énergie).
La difficulté a été de bien gérer les écarts entre les opérations "pareto" et "floating point standards" pour éviter qu'elles ne se cumulent (biais), et que les résultats ne s'écartent trop des résultats "floating point standards" pour des applications de type réseaux de neurones.

Pour avoir travaillé sur des quantifications d'algorithmes en virgule fixe (i.e. utiliser une unité de calcul entier pour faire des calculs non entiers) qui pose des problèmes du même genre, ce n'est pas du tout trivial.
votre avatar
Pour du calcul de simulation classique, tout écart avec l'IEEE 754 peut être problématique. Mais pour de l'IA qui se fait couramment en BF16 voir en FP8, je ne suis pas sûr que la précision numérique soit absolument critique.
votre avatar
Ca a déjà été fait pour la 3D avec 3DNow! dans les années 90. 3DNow! permettait d'avoir des "estimations" de l'inverse ou d'une racine carrée.

MAIS dans le cas de l'IA, on touche à la base même de la bascule de l'IA: aller vers l'informatique qui "statistiquement a plutôt juste".

Les modèles, on les "optimise", on les "compresse" pour les faire passer sur les tels et sincèrement, on y perd beaucoup.
Mais cette compression, c'est souvent passer du FP16 au FP8 ou au INT8 + quantization (INT8 qui peut être optimisé CPU du coup - par les instructions MMX)
La perte est énorme par moment (des "scientifiques" nous indiquent que la perte est limité voir inexistante de 80% des paramètres - mais la perte sur les 20% restant, elle est énorme)

Là j'imagine que la perte ne se quantifie même pas en bits (quand on joue sur la transformation en logarithmes, il y a des valeurs qui se confondent aux limites).

La question reste celle que je me pose depuis 4 ans: comment on teste une IA, comment on la patche, comment on garanti que le résultat du début d'année est toujours le même malgré la mise à jour de la chaîne de calcul.

Mais comme l'a dit un ingé NVIdia: l'IA ça survit aux bugs: si le GPU a surchauffé, le client relancera le calcul et ça passera.
votre avatar
Me revoilà renvoyé en 1997/1998, lors d'une conversation avec un copain à l'internat sur l'optimisation de calcul 3d en passant par les logarithmes😁
votre avatar
idée de NextQuick : mettre en face une baie NVidia (gb300 ? ) et les super-calculateurs, pour avoir une idée d'echelle, de perf/w ou de perf/baie, histoire de visualiser à quel point c'est bourrin les baies actuelles :)
votre avatar
si ca marche (et si c'est pas eux, ça sera les suivants) l'amortissement beaucoup trop long des ressources calcul dans les centres IA va prendre un immense coup dans l'aile... il y aurais une correction à venir que je serais pas étonné :D
votre avatar
Ça fait écho au précédent Nextquick de vendredi dernier.
Si cette puce affiche de telles performances face aux GPU, peut-être que les programmeurs prendront le temps de délaisser CUDA à moyen-long terme ?
votre avatar
Je reste sceptique sur cette techno en condition réelle.

D'abord les calculs tensorielles pour les LLM sont déjà très bien gérés par Nvidia via les Tensor Cores (qui pour rappel peuvent faire 256 FMA/clock pour la 3ème génération en précision mixte. Une A100 a 4 Tensor cores/SM, ce qui fait qu'un SM fait 1024 FMA/clock).

Deuxième point, les GPUs sont conçus pour maximiser le throughput et faire du "hide latency". Ce qui tombe bien vu la quantité d'opérations requissent par l’entraînement et l'inférence.

Ensuite, TensorDyne se compare uniquement à Nvidia. C'est bien, mais si on souhaite se spécialiser pour de l'IA (et voir même une spécialisation pour cette type d'IA [CNN, RNN, MLP, transformer...]) il y a les TPUs et les NPUs. Hors, je n'ai rien lu de tel dans l'article et ça aurait été un point intéressant pour ce faire une idée si la société avait communiqué dessus.


Et c'est ici que le mât blesse selon moi, même si TensorDyne sort une puce qui correspond au promesse qu'ils annoncent, il reste que les approximations utilisées ne sont pas compatible avec la norme IEEE-754 (la norme pour les calculs flottants). Donc leur puces ne peuvent uniquement servir à l'IA, là ou Nvidia peut également faire du HPC. Et on le voit au fait que certaines opérations matricielles pour le HPC (typiquement en FP32) peuvent utiliser les Tensors Cores, mais également par le fait que Nvidia a des optimisations hardware pour les matrices creuses (très utilisées pour en simulation numérique)/

Donc au final, même si un GPU Nvidia venait à être moins performant qu'un TensorDyne pour de l'IA, la versalité de la puce Nvidia la rendrait moins risqué en rentabilisé en cas d'éclatement de la bulle.

Wait and see.
votre avatar
On pourrait faire les choses encore plus tordu. Il existe un compilo qui transforme un jeu ASM en mov x86 uniquement, la quintescence de l'obfuscation. Donc technique on pourait faire un processeur avec une seule instruction :-)
github.com GitHub
votre avatar
La règle à calcul et la table de log ont longtemps pallié la difficulté de faire des multiplications et des divisions.

Et ici, avec des représentations de nombres en log, ce sont les additions qui deviennent plus difficiles.
votre avatar
on voit bien que c’est plus compliqué : logₙ(a + b)= logₙ(a)+ logₙ(1 + n^(logₙ(b) − logₙ(a)). Pas besoin d’explication, la complexité se voit.
En fait, ce n'est pas compliqué. L'intérêt de cette formule est que l'on peut utiliser l'approximation log2(1+x) = x pour 0<x<1. On peut toujours être dans ce cas en inversant a et b.
Calculer une puissance de 2 est simple : il suffit de faire des décalages (à droite dans le cas présent).

Comme expliqué dans l'article d’EETimes, c'était cette approximation qui était utilisé dans la première génération de puce.

Tout leur travail a été d'améliorer ce principe pour faire baisser l'erreur d'un facteur 100. Et c'est probablement ça qui est compliqué.
votre avatar
Est-ce que le remplaçant de Napier, ça sera "Aiseaux" :pastaper:
votre avatar
Tu mérites qu'on te jette des Nierres !
votre avatar
C'est bien beau tout ça, on vend du rêve etc jusqu'au jour où quelqu'un va ouvrir la puce et découvrir que la sauce secrète n'est en fait que du ketchup.
votre avatar
Donc récap :

Tensordyne: 144Go de VRAM HBM3e , 2,11 PetaGlops en FP8, 300W

Blackwell Ultra: jusqu’à 288 Go de HBM3e, 5 PetaFLOP en FP8


Blackwell: 192 Go, 5 PetaFLOP en FP8.

Du coup, comment on arrive à x13 d'écart en rack?