1 Punkte von GN⁺ 2024-09-08 | 1 Kommentare | Auf WhatsApp teilen

Hardwarebeschleunigte LLMs: Umfassende Untersuchung und Vergleich

  • LLMs haben sich als leistungsstarkes Werkzeug für Aufgaben der natürlichen Sprachverarbeitung etabliert und revolutionieren das Feld durch ihre Fähigkeit, menschenähnlichen Text zu verstehen und zu erzeugen
  • Dieses Paper untersucht umfassend verschiedene Forschungsansätze zur Beschleunigung von Transformer-Netzwerken für große Sprachmodelle mithilfe von Hardwarebeschleunigern

Framework und Vergleich

  • Es stellt das vorgeschlagene Framework vor und führt qualitative sowie quantitative Vergleiche hinsichtlich Technologie, Verarbeitungsplattformen (FPGA, ASIC, In-Memory, GPU), Beschleunigung, Energieeffizienz, Leistung (GOPs) und Energieeffizienz (GOPs/W) durch
  • Eine zentrale Herausforderung besteht darin, dass jedes vorgeschlagene Schema mit unterschiedlichen Fertigungstechnologien implementiert wurde, was einen fairen Vergleich erschwert
  • Der wichtigste Beitrag des Papers besteht darin, Ergebnisse zu Leistung und Energieeffizienz unter derselben Technologie abzuschätzen und so einen fairen Vergleich zu ermöglichen

Experimente und Ergebnisse

  • Teile von LLMs werden auf mehreren FPGA-Chips implementiert, um Ergebnisse unter derselben Fertigungstechnologie abzuschätzen und die Leistung fair zu vergleichen

Zusammenfassung von GN⁺

  • Dieses Paper bietet eine umfassende Untersuchung der Hardwarebeschleunigung großer Sprachmodelle (LLMs)
  • Es ermöglicht faire Vergleiche durch den Vergleich von Leistung und Energieeffizienz auf verschiedenen Verarbeitungsplattformen
  • Mithilfe von Experimenten auf FPGA-Chips werden Ergebnisse unter derselben Technologie abgeschätzt
  • Es kann für Personen nützlich sein, die sich für die Leistungssteigerung von LLMs im Bereich der natürlichen Sprachverarbeitung interessieren
  • Ähnliche Projekte mit vergleichbarer Funktionalität sind etwa NVIDIAs GPU-Beschleuniger und Googles TPU

1 Kommentare

 
GN⁺ 2024-09-08
Hacker-News-Kommentare
  • Das Paper erklärt den Hintergrund nur oberflächlich; mit etwas mehr Kontext: Seit den frühen 1990er-Jahren gibt es die Beobachtung, dass sich die CPU-Rechenleistung (FLOPs) schneller verbessert als die Speicherbandbreite, und 1995 sagten William Wulf und Sally McKee voraus, dass diese Lücke zu einer Memory Wall führen würde, bei der die meisten Berechnungen nicht durch Arithmetik, sondern durch Datenzugriffe begrenzt werden
    In den letzten 20 Jahren ist die maximale FLOPS-Leistung von Server-Hardware alle zwei Jahre um das Dreifache gestiegen, während die Bandbreite von DRAM und Interconnects nur um etwa das 1,6-Fache bzw. 1,4-Fache zunahm
    Deshalb verlagert sich bei LLM-Training und -Inference der Leistungsengpass zunehmend zur Speicherbandbreite, und insbesondere bei autoregressiven Transformer-Decoder-Modellen kann sie zum dominierenden Bottleneck werden
    Dieser Trend schafft Nachfrage nach Technologien wie Compute-in-memory (CIM) und Processing-in-memory (PIM). Dabei handelt es sich um Hardware, die direkt auf Daten im Speicher rechnet, ohne sie zuerst in CPU-Register zu verschieben, was Latenz und Stromverbrauch senken und die Memory Wall umgehen könnte
    Das Paper extrapoliert per Polynomial Fit auf 16 nm, um ASIC- und FPGA-Hardware über verschiedene Halbleiterprozessgrößen hinweg zu vergleichen: „Basierend auf Aaron Stillmaker und B. Baas’ ‘Scaling equations for the accurate prediction of CMOS device performance from 180 nm to 7nm’ haben wir Leistung und Energieeffizienz auf 16-nm-Technologie extrapoliert, um einen fairen Vergleich zu ermöglichen“
    Bei CIM/PIM wird jedoch nicht extrapoliert, mit der Begründung: „Da die Performance von In-Memory-Beschleunigern nicht allein auf Prozesstechnologie basiert, haben wir die Extrapolation nur für FPGA- und ASIC-Beschleuniger durchgeführt, bei denen die Prozesstechnologie die Systemleistung stark beeinflusst.“ Das wirkt auf den ersten Blick wie eine merkwürdige Entscheidung, und vielleicht kann jemand diese Entscheidung näher erläutern
    Weiterführende Lektüre: 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...

    • Solche Versuche sind am Markt meist gescheitert; eine Liste dazu gibt es hier: https://news.ycombinator.com/item?id=41069685
      Trotzdem gefällt mir die Idee günstiger Produkte im RAM-Modul-Format. Man könnte sich vorstellen, viele davon in ein 1U-Board zu stecken und über schnelle Interconnects zu verbinden oder sogar eine PCI-Karte damit vollzupacken
    • Das mag bis 2018 gestimmt haben, aber seitdem ist 400GbE-Ethernet der Interconnect mit der schnellsten Verbreitung geworden, und inzwischen gibt es auch 1,6-Tbit-Interconnects
      PCI-e V4 war so schnell wieder vorbei, dass es sich anfühlt, als hätte es nur etwa zwei Jahre gelebt, und NVMeOF hat zusammen mit der Fabric-Performance gut skaliert. In aktuellen H100-DGX-Systemen gibt es 400GB/s-Interconnects
    • Ich frage mich, was eigentlich aus Memristoren und dem Versprechen geworden ist, dass Speicher direkt neben der CPU sitzt
    • Stimmt. Auch Dr. Jung Bae Lee von Samsung hat kürzlich etwas Ähnliches gesagt
      „Das explosive Wachstum von AI-Modellen wird durch die wachsende Lücke zwischen Rechenleistung und Speicherbandbreite begrenzt. Modelle der nächsten Generation wie GPT-5 werden voraussichtlich eine beispiellose Größenordnung von 3 bis 5 Billionen Parametern erreichen, aber der technische Bottleneck der Speicherbandbreite bleibt ein zentrales Hindernis dafür, ihr Potenzial vollständig auszuschöpfen“
      https://www.lycee.ai/blog/2024-09-04-samsung-memory-bottlene...
  • Ich mochte schon immer systolische Arrays und halte nach dem Durchgehen vieler Optionen über die letzten Jahrzehnte ein kartesisches Gitter aus Zellen für die beste Lösung
    Jede Zelle hat 4 Eingangsbits, die je eines von den Nachbarn erhalten, und 4 Ausgangsbits, die je eines an die Nachbarn weitergeben. In der Mitte sitzt ein 64-Bit-Shift-Register als lange Scan-Chain, dessen Ausgänge in 4 Multiplexer vom Typ 16:1 und ein 4-Bit-Latch gehen
    Wenn man mithilfe der Magie der Graphfärbung alle Zellen in einem Schachbrettmuster taktet, können Daten ohne bevorzugte Richtung und ohne Race Conditions in jede Richtung fließen. Jeder Eingang jeder Zelle wird stabil
    Das bietet die Flexibilität eines FPGA, ohne dass man sich um Timing-Probleme, Race Conditions oder Glitches kümmern muss. Außerdem sind alle Leitungen kurz, also ist alles lokal, schnell und stromsparend
    Dafür ist die Gate-Effizienz nicht besonders gut, und es liefert auch nicht den kürzesten Logikpfad. Jede einzelne Operation findet im Grunde parallel statt, und jede Berechnung ist pipelined
    Das ist eine Idee, die ich seit etwa 1982 habe, und ich wünschte, jemand würde sie aufgreifen und richtig umsetzen. Ich nenne sie BitGrid

    • Klingt ähnlich wie der GA144-Chip des Forth-Erfinders
    • Das erinnert an TPUs
  • Verwandtes Material: https://arxiv.org/pdf/2406.08413
    Memory Is All You Need: An Overview of Compute-in-Memory Architectures for Accelerating Large Language Model Inference

  • Ich würde gern sehen, wie ein LLM in WebGL läuft, wo alles Texturen sind. Die architektonischen Unterschiede visuell zu sehen, wäre ziemlich interessant

    • Wäre das nicht einfach so ähnlich, wie statisches Rauschen anzuschauen?
    • Hatte Google nicht ein Tool, mit dem man die Aktivierungszustände von Matrizen ansehen kann? Ich glaube, das war Gemma Scope
  • Der Bottleneck ist derzeit die Speicherbewegung, deshalb ist HBM so teuer. Auch Nvidias Designs sind sowohl auf Chip-Ebene als auch auf System-Ebene auf den Speicher optimiert, der der echte Bottleneck ist

    • Ich frage mich, warum nicht alle GPUs auf HBMx umgestiegen sind
      In der Praxis sieht man das kaum
  • Könnte eine hybride Architektur aus FPGA + ASIC + In-Memory bei Skalierbarkeit und Flexibilität eine Rolle spielen? FPGA bietet Flexibilität, ASIC Leistung und In-Memory Energieeffizienz, daher ist es interessant, ob sich die LLM-Leistung mit einem hybriden Ansatz, der diese kombiniert, weiter steigern ließe.

    • Üblicherweise startet man zuerst mit FPGA + Speicher und ersetzt das FPGA dann durch ein ASIC, wenn der Markt den passenden Volumenpunkt erreicht, um Leistung und Kosten zu optimieren. Große Unternehmen gehen oft direkt zu ASICs.
  • In-Memory scheint nicht nur in Bezug auf die Leistung sinnvoll zu sein, sondern auch als grundsätzliche Richtung. Für Modelle, die selbst im besten Fall schon nach wenigen Monaten veraltet sein könnten, extra ein ASIC zu bauen oder ein FPGA zu programmieren, ergibt wenig Sinn.

  • Es gab eine Arbeit darüber, ein LLM mit ungefähr der Leistung einer einzelnen Glühbirne zu betreiben
    https://arxiv.org/abs/2406.02528
    https://news.ucsc.edu/2024/06/matmul-free-llm.html

    • Zusammen mit Open-Source-Code, der sich auf Standard-GPUs reproduzieren lässt, wird eine 90% geringere Speichernutzung behauptet: https://github.com/ridgerchu/matmulfreellm
      Der Kern besteht darin, zwei Verfahren zu nutzen, um Matrixmultiplikationen zu vermeiden. Erstens werden alle Zahlen in der Matrix auf ternäre Werte mit nur -1, 0 und +1 beschränkt, sodass Multiplikation weitgehend durch Addition ersetzt wird. Zweitens werden nicht alle Elemente einzeln multipliziert, sondern die Matrizen werden überlagert und nur die wichtigen Operationen ausgeführt.
      Die Forschenden sagen, sie hätten zeitbasierte Berechnung in das Modelltraining eingeführt, um die Leistung des neuronalen Netzes aufrechtzuerhalten; dadurch erhalte das Netzwerk eine Art „Gedächtnis“ für die wichtigen Informationen, die es verarbeitet, was die Leistung verbessere.
      Auf Standard-GPUs sank der Speicherverbrauch auf etwa ein Zehntel, während die Geschwindigkeit um rund 25% zunahm; außerdem könnte dies einen Weg eröffnen, den Algorithmus auch auf Geräten mit wenig Speicher wie Smartphones in voller Größe auszuführen. Ein in drei Wochen gebauter FPGA-Prototyp überschritt bei nur 13 W Leistungsaufnahme einen für Menschen lesbaren Durchsatz; eine GPU hätte dafür etwa 700 W benötigt, sodass die maßgeschneiderte Hardware laut den Angaben mehr als 50-mal effizienter war als eine GPU.
  • Ich bin mir nicht sicher, ob mit In-Memory hier spezielle Hardware gemeint ist, die CPU und RAM kombiniert.

    • Ich vermute, gemeint ist ein Ansatz, bei dem MAC-Hardware in den DRAM-Die eingebaut wird. Bei gestapeltem HBM könnte das vielleicht auch im Base-Die untergebracht sein.
      Unter Verweis auf eine ältere Beschleunigerarbeit, die eine 19-fache Verbesserung gegenüber DRAM + GPU zeigte: „Da MAC-Operationen den dominierenden Anteil der Laufzeit bei den meisten Machine-Learning-Workloads ausmachen, schlagen wir Multiplikation innerhalb von Subarrays und Akkumulation innerhalb von Banks vor. Die Multiplikation wird spaltenbasiert mit AND-Operationen und Addition verarbeitet, bei einem Flächen-Overhead von unter 1%.“
      https://arxiv.org/pdf/2105.03736
    • In-Memory bedeutet im Allgemeinen, dass Daten nicht erneut aus dem Speicher geholt werden müssen.
  • Gibt es eine Möglichkeit, Arxiv-Inhalte lesbarer anzusehen?
    Jedes Mal, wenn ich diese Website öffne, frage ich mich, ob es dort überhaupt ein Interface gibt, verirre mich und verlasse sie meist wieder, bevor ich überhaupt zum Inhalt komme.

    • Mit View PDF oder HTML (experimental) oben rechts gelangt man zum eigentlichen Text.
    • Es ist eine Preprint-Plattform, daher ist grundsätzlich alles im PDF-Format. Neuerdings gibt es auch HTML: https://arxiv.org/html/2409.03384v1
      Für einzelne Papers ist das wahrscheinlich der beste Weg, und es gibt auch einige Arxiv-Frontends wie https://arxiv-sanity-lite.com/
    • Ich habe diesen Link heute auch geöffnet und sofort gedacht: „Ach, hier gibt es ja nur das Abstract, dann bin ich wieder weg.“ Ich habe zwar schon Arxiv-Papers gelesen, aber allein von der UI her wirkt es nicht so, als würde dort der eigentliche Inhalt angeboten.