1 points par GN⁺ 2024-09-08 | 1 commentaires | Partager sur WhatsApp

LLM accélérés matériellement : étude complète et comparaison

  • Les LLM se sont imposés comme des outils puissants pour les tâches de traitement du langage naturel, révolutionnant le domaine par leur capacité à comprendre et générer du texte de type humain
  • Cet article propose une étude complète de plusieurs efforts de recherche sur l’accélération des réseaux Transformer pour les grands modèles de langage à l’aide d’accélérateurs matériels

Framework et comparaison

  • Il présente le framework proposé et réalise des comparaisons qualitatives et quantitatives sur les technologies, les plateformes de traitement (FPGA, ASIC, In-Memory, GPU), les gains de vitesse, l’efficacité énergétique, les performances (GOPs) et l’efficacité énergétique (GOPs/W)
  • Le principal défi est que chaque schéma proposé est implémenté avec une technologie de fabrication différente, ce qui rend une comparaison équitable difficile
  • La contribution majeure de cet article est d’estimer les résultats de performance et d’efficacité énergétique dans une même technologie afin de permettre une comparaison équitable

Expériences et résultats

  • En implémentant certaines parties des LLM sur plusieurs puces FPGA, l’étude estime les résultats dans une même technologie de fabrication et compare équitablement les performances

Le résumé de GN⁺

  • Cet article fournit une étude complète de l’accélération matérielle des grands modèles de langage (LLM)
  • Il compare les performances et l’efficacité énergétique sur différentes plateformes de traitement afin de permettre une comparaison équitable
  • Il estime, via des expériences sur des puces FPGA, les résultats dans une même technologie
  • Il peut être utile aux personnes intéressées par l’amélioration des performances des LLM dans le domaine du traitement du langage naturel
  • Parmi les autres projets aux fonctions similaires figurent les accélérateurs GPU de NVIDIA et les TPU de Google

1 commentaires

 
GN⁺ 2024-09-08
Commentaires Hacker News
  • Cet article manque de profondeur dans la partie contexte ; pour ajouter un peu de perspective, on observe depuis le début des années 1990 que les performances de calcul CPU (FLOPs) progressent plus vite que la bande passante mémoire, et en 1995 William Wulf et Sally Mckee ont prédit que cet écart mènerait à un mur de la mémoire où la plupart des calculs seraient limités non par les opérations arithmétiques mais par l’accès aux données
    Au cours des 20 dernières années, le maximum de FLOPS des serveurs a triplé tous les deux ans, tandis que la bande passante DRAM et celle des interconnexions n’ont augmenté que d’environ 1,6x et 1,4x respectivement
    Résultat, dans l’entraînement et l’inférence des LLM, le goulot d’étranglement se déplace de plus en plus vers la bande passante mémoire, et dans les modèles décodeurs Transformer autorégressifs cela peut même devenir le facteur dominant
    Cette tendance crée une demande pour des technologies comme le Compute-in-memory (CIM) et le processing-in-memory (PIM). Ce sont des matériels qui calculent directement sur les données en mémoire sans d’abord les déplacer dans les registres CPU, ce qui peut réduire la latence et la consommation électrique, et potentiellement contourner le mur de la mémoire
    L’article extrapole ASIC et FPGA vers une référence en 16 nm au moyen d’un ajustement polynomial afin de comparer des matériels issus de procédés de fabrication différents : « En nous appuyant sur “Scaling equations for the accurate prediction of CMOS device performance from 180 nm to 7nm” d’Aaron Stillmaker et B.Baas, nous avons extrapolé les performances et l’efficacité énergétique en technologie 16 nm pour permettre une comparaison équitable »
    Mais pour le CIM/PIM, il n’y a pas d’extrapolation : « Les performances des accélérateurs in-memory ne reposant pas uniquement sur la technologie de procédé, nous n’avons réalisé l’extrapolation que pour les accélérateurs FPGA et ASIC, pour lesquels la technologie de procédé influe fortement sur les performances du système. » À première vue, cela semble être un choix étrange, et quelqu’un pourrait sans doute mieux expliquer cette décision
    Lectures complémentaires : https://arxiv.org/abs/2403.14123, https://en.m.wikipedia.org/wiki/In-memory_processing, http://vcl.ece.ucdavis.edu/pubs/2017.02.VLSIintegration.Tech...

    • Ce type de tentative a généralement échoué sur le marché, et une liste est compilée ici : https://news.ycombinator.com/item?id=41069685
      Cela dit, j’aime bien l’idée de produits bon marché sous forme de modules RAM. On peut imaginer en enficher plein sur une carte 1U et les relier par une interconnexion rapide, ou même remplir entièrement une carte PCI avec ce genre de modules
    • C’était peut-être vrai jusqu’en 2018, mais depuis l’Ethernet 400GbE est devenu l’interconnexion adoptée le plus rapidement, et il existe maintenant des interconnexions à 1,6 Tbit
      Le PCI-e V4 a été tellement vite dépassé qu’on a l’impression qu’il n’a vécu que deux ans, et NVMeOF a continué à bien évoluer avec les performances des fabrics. Le H100 DGX actuel dispose d’une interconnexion à 400 GB/s
    • Je me demande bien ce qu’il est advenu des memristors et de cette promesse d’avoir la mémoire juste à côté du CPU
    • Exact. Le Dr Jung Bae Lee de Samsung a récemment dit quelque chose de similaire
      « La croissance explosive des modèles d’IA est limitée par l’élargissement de l’écart entre performances de calcul et bande passante mémoire. Les modèles de prochaine génération comme GPT-5 devraient atteindre une échelle inédite de 3 à 5 billions de paramètres, mais le goulot d’étranglement technique de la bande passante mémoire devient un obstacle majeur à l’exploitation complète de leur potentiel »
      https://www.lycee.ai/blog/2024-09-04-samsung-memory-bottlene...
  • J’ai toujours aimé les réseaux systoliques, et après avoir passé en revue diverses options pendant des décennies, je pense qu’une grille cartésienne de cellules est la meilleure solution
    Chaque cellule reçoit 4 bits d’entrée, un depuis chacun de ses voisins, et possède 4 bits de sortie, un vers chacun de ses voisins. Au centre se trouve un registre à décalage de 64 bits dans une longue scan chain, dont la sortie alimente 4 multiplexeurs 16:1 et un latch de 4 bits
    En utilisant la magie de la coloration de graphe pour cadencer toutes les cellules selon un motif en damier, les données peuvent circuler dans n’importe quelle direction sans biais directionnel ni conditions de course. Chaque entrée de cellule devient stable
    Cette approche offre la flexibilité d’un FPGA sans avoir à se soucier des problèmes de timing, des conditions de course ou des glitches. Les liaisons sont toutes courtes, donc tout est local, rapide et sobre en énergie
    En contrepartie, ce n’est ni très efficace en portes ni optimal pour le plus court chemin logique. Toutes les opérations unitaires se produisent essentiellement en parallèle, et tout calcul est pipeliné
    C’est une idée que j’ai depuis environ 1982, et j’aimerais que quelqu’un la reprenne et en fasse quelque chose de sérieux. Je l’appelle BitGrid

    • Ça ressemble au chip GA144 conçu par l’inventeur de Forth
    • Ça fait penser au TPU
  • Document connexe : https://arxiv.org/pdf/2406.08413
    Memory Is All You Need: An Overview of Compute-in-Memory Architectures for Accelerating Large Language Model Inference

  • J’aimerais voir un LLM tourner dans WebGL, où tout est texture. Visualiser les différences d’architecture serait assez amusant

    • Ça ne reviendrait pas un peu à regarder du bruit statique ?
    • Google n’a pas un outil pour voir l’état d’activation des matrices ? Il me semble que c’était Gemma Scope
  • Le goulot d’étranglement actuel, c’est le mouvement de la mémoire, et c’est pour ça que la HBM est chère. Les designs de Nvidia sont vraiment optimisés autour de la mémoire, qui est le vrai goulot d’étranglement, à la fois au niveau de la puce et du système

    • Je me demande pourquoi tous les GPU ne sont pas passés à la HBMx
      En pratique, on n’en voit pas beaucoup
  • Une architecture hybride FPGA + ASIC + in-memory pourrait-elle jouer un rôle en matière d’évolutivité et de flexibilité ? Le FPGA apporte la flexibilité, l’ASIC les performances, et l’in-memory l’efficacité énergétique ; on peut donc se demander si une approche hybride intégrant ces trois éléments pourrait encore améliorer les performances des LLM

    • En général, on commence d’abord avec FPGA + mémoire, puis, lorsqu’on atteint le bon point où le marché apporte du volume, on remplace le FPGA par un ASIC pour améliorer les performances et réduire les coûts. Les grandes entreprises ont plutôt tendance à aller directement vers l’ASIC
  • L’in-memory semble pertinent non seulement du point de vue des performances, mais aussi en termes de direction globale. Concevoir un ASIC ou programmer un FPGA pour un modèle qui, même avec un peu de chance, risque d’être obsolète quelques mois plus tard n’a pas beaucoup de sens

  • Il y a eu un article affirmant faire tourner un LLM avec la puissance d’une simple ampoule
    https://arxiv.org/abs/2406.02528
    https://news.ucsc.edu/2024/06/matmul-free-llm.html

    • Avec du code open source reproductible sur un GPU standard, il affirme une réduction de 90 % de la mémoire : https://github.com/ridgerchu/matmulfreellm
      L’idée centrale repose sur deux techniques pour éviter les multiplications matricielles. D’abord, tous les nombres de la matrice sont forcés à prendre uniquement trois valeurs ternaires, -1, 0 et +1, ce qui ramène les multiplications à des additions. Ensuite, au lieu de multiplier chaque élément individuellement, les matrices sont superposées puis seules les opérations importantes sont exécutées
      Les chercheurs disent avoir introduit un calcul basé sur le temps dans l’entraînement du modèle afin de préserver les performances du réseau neuronal ; cela donnerait au réseau une forme de « mémoire » des informations importantes qu’il traite, ce qui améliorerait les performances
      Sur un GPU standard, l’utilisation mémoire aurait été réduite à environ un dixième et la vitesse aurait augmenté d’environ 25 %, ce qui pourrait permettre d’exécuter l’algorithme à pleine capacité même sur des appareils à faible mémoire comme les smartphones. Un prototype FPGA construit en trois semaines aurait dépassé un débit lisible par un humain avec seulement 13 W, alors qu’un GPU aurait nécessité environ 700 W ; le matériel sur mesure aurait donc été plus de 50 fois plus efficace qu’un GPU
  • Je ne suis pas sûr de ce que signifie ici exactement in-memory : s’agit-il d’un matériel spécial combinant CPU et RAM ?

    • J’imagine qu’il s’agit d’ajouter du matériel MAC sur le die DRAM. Avec de la HBM empilée, cela pourrait peut-être aussi se trouver sur le die de base
      En citant un ancien article sur les accélérateurs qui montrait une amélioration de 19x par rapport à DRAM + GPU : « Comme les opérations MAC représentent la part dominante du temps d’exécution dans la plupart des charges de travail de machine learning, nous proposons la multiplication à l’intérieur du sous-tableau et l’accumulation à l’intérieur de la banque. La multiplication est traitée selon une approche par colonne effectuant des opérations AND et des additions, avec moins de 1 % de surcoût en surface »
      https://arxiv.org/pdf/2105.03736
    • In-memory veut généralement dire qu’on ne recharge pas les données depuis le stockage
  • Y a-t-il un moyen de consulter le contenu d’Arxiv de façon un peu plus lisible ?
    Chaque fois que j’arrive sur ce site, je me demande s’il y a vraiment une interface, je me perds, et au final je repars souvent sans même atteindre le contenu

    • En cliquant sur View PDF ou HTML (experimental) en haut à droite, on accède au texte principal
    • Comme il s’agit d’un site de prépublication d’articles, tout est fondamentalement au format PDF. Le HTML a été ajouté récemment : https://arxiv.org/html/2409.03384v1
      Pour un article donné, c’est probablement la meilleure méthode, et il existe aussi quelques frontends Arxiv comme https://arxiv-sanity-lite.com/
    • J’ai ouvert ce lien moi aussi aujourd’hui et je me suis dit : « Ah, il n’y a que le résumé, je m’en vais ». J’ai déjà lu des articles Arxiv, mais à voir uniquement l’UI, on n’a pas l’impression que le contenu est réellement accessible