Accelerating GPU Inference of Large Language Models with Moderately Unstructured Sparse Weight Matrices
Dieses Paper schlägt ein neuartiges dreischichtiges Matrix-Speicherformat und einen hybriden SpMM-Kernel vor, die gemeinsam Sparse- und CUDA-Kerne nutzen, um eine moderat unstrukturierte, dünnbesetzte LLM-Inferenz auf modernen GPUs zu ermöglichen, wobei erstmals eine Beschleunigung auf Kernel-Ebene gegenüber der dichten Matrixmultiplikation erzielt und State-of-the-Art-Methoden wie SpInfer und FlashLLM übertroffen werden.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Stellen Sie sich vor, Sie besitzen eine riesige Bibliothek voller Bücher (ein Large Language Model), die Geschichten schreiben, Fragen beantworten und programmieren kann. Damit diese Bücher funktionieren, muss ein superschneller Roboter (die GPU) Millionen von Seiten voller Zahlen (Gewichte) lesen, um das nächste Wort zu bestimmen. Das Problem? Der Roboter ist so beschäftigt mit dem Lesen, dass er müde wird und der Betrieb teuer ist.
Wissenschaftler versuchten einen cleveren Trick: Sie warfen die langweiligen, unwichtigen Seiten weg, um die Bibliothek leichter zu machen. Dies nennt man „Pruning“ (Beschneidung). Aber es gibt einen Haken: Wenn man zu viele Seiten wegwirft, wird die Geschichte seltsam und ergibt keinen Sinn mehr. Der ideale Mittelweg liegt darin, etwa die Hälfte der Seiten zu behalten (5ische Sparsity/Dünnbesetztheit).
Das große Problem
Man würde denken, dass eine leichtere Bibliothek schneller zu lesen ist, oder? Nicht ganz. Die Lesemaschine des Roboters (die GPU) ist darauf ausgelegt, dichte, vollständige Seiten sehr schnell zu lesen. Wenn die Seiten verstreut sind und Lücken aufweisen (unstrukturierte Sparsity), wird der Roboter verwirrt. Er verbringt so viel Zeit damit, nach den fehlenden Seiten zu suchen und die Bruchstücke zu organisieren, dass er tatsächlich langsamer ist, als wenn er einfach die schwere, vollständige Bibliothek gelesen hätte. Bestehende Werkzeuge für dieses „verstreute“ Lesen waren entweder zu langsam oder erforderten, dass der Roboter zusätzliche Berechnungen durchführte, die die Geschwindigkeitsgewinne wieder zunichtemachten.
Die neue Lösung: Ein dreischichtiges Ablagesystem
Die Autoren dieser Arbeit haben ein brandneues Ablagesystem entwickelt, um dem Roboter beim effizienten Lesen dieser verstreuten Seiten zu helfen. Sie nennen es ein „dreischichtiges“ Format, und es funktioniert wie ein super organisierter Bibliothekar:
- Die „Sparse-TC“-Schicht (Der VIP-Bereich): Der Bibliothekar greift zuerst die Seiten, die zufällig in ein ordentliches, vorab genehmigtes Muster passen (wie zum Beispiel jede 4. Seite, die 2 wichtige Notizen enthält). Diese gehen direkt in die schnellsten, spezialisierten Lesearme des Roboters (Sparse Tensor Cores). Kein Suchen nötig!
- Die „Slot-Filling“-Schicht (Das Puzzleteil): Was ist mit den zusätzlichen Notizen, die nicht in das VIP-Muster passten? Anstatt sie wegzuwerfen oder eine unordentliche Liste zu erstellen, schiebt der Bibliothekar sie in die freien Lücken, die die VIP-Seiten hinterlassen haben. Um den Überblick zu behalten, wo sie gelandet sind, ohne ein riesiges Adressbuch zu führen, verwenden sie einen „Parallel Differential Distance“-Code. Denken Sie an eine Schatzkarte, die nur sagt: „Der nächste Hinweis ist 3 Schritte nach rechts“, anstatt jedes Mal die vollständige Adresse aufzuschreiben. Dies spart eine Menge Platz und ist schnell zu dekodieren.
- Die „Residual“-Schicht (Die Krimskrams-Schublade): Eine winzige, winzige Handvoll Notizen (weniger als 1 %) sind einfach zu seltsam, um irgendwo hineinzupassen. Diese kommen in einen standardmäßigen, altmodischen Aktenschrank (CSR-Format). Da es so wenige von ihnen sind, stört es den Roboter nicht, in dieser Schublade nachzusehen.
Die Super-Pipeline
Die wahre Magie liegt nicht nur im Ablagesystem, sondern darin, wie der Roboter während des Lesens arbeitet. Die Autoren entwarfen einen Arbeitsablauf, bei dem der Roboter drei Dinge exakt gleichzeitig tut:
- Er holt sich den nächsten Block an Seiten aus dem großen Gedächtnisregal (Global Memory).
- Er dekodiert die „3 Schritte nach rechts“-Hinweise der Schatzkarte (unter Verwendung von Standard-Cores).
- Er berechnet die Zahlen für die VIP-Seiten (unter Verwendung der schnellen spezialisierten Cores).
Durch das Überlappen dieser Aufgaben sitzt der Roboter nie untätig herum und wartet auf Daten. Es ist wie ein Koch, der gleichzeitig Gemüse schneidet, den Topf rührt und den Tisch deckt, anstatt eine Sache nach der anderen zu tun.
Die Ergebnisse: Schneller als zuvor
Als sie dies an einem modernen, Hochgeschwindigkeits-Roboter (einer NVIDIA H100 GPU mit 80 GB Speicher) testeten, waren die Ergebnisse beeindruckend.
- Geschwindigkeit: Ihre Methode war die erste, die tatsächlich schneller war als das Lesen der schweren, vollständigen Bibliothek. Sie lief bis zu 1,64-mal schneller als das bisher beste Werkzeug (SpInfer) auf Kernel-Ebene.
- End-to-End: Für den gesamten Prozess der Texterstellung war sie bis zu 1,41-mal schneller als FlashLLM.
- Speicher: Sie sparte auch etwa 21,4 % des Speicherplatzes im Vergleich zum Lesen der vollständigen Bibliothek ein.
Was sie nicht leisten
Die Autoren weisen vorsichtig darauf hin, was dies nicht ist. Es funktioniert nicht am besten, wenn die Bibliothek fast leer ist (hohe Sparsity von 90 %+); in solchen Fällen sind die alten Methoden immer noch besser. Außerdem ist es auf die „Decode“-Phase optimiert (wo der Roboter ein Wort nach dem anderen schreibt), was die häufigste Aufgabe ist. Wenn der Roboter einen riesigen Textblock auf einmal lesen muss (die „Prefill“-Phase), könnte diese neue Methode etwas langsamer sein als die standardmäßigen, schweren Lesewerkzeuge, aber das ist ein spezifisches Szenario, das sie derzeit nicht lösen wollen.
Kurz gesagt: Durch die Organisation der verstreuten Seiten in ein intelligentes, dreischichtiges System und indem sie den Roboter ständig beschäftigt halten, ist es ihnen gelungen, KI-Chatbots schneller und kostengünstiger zu machen, ohne sie dabei dümmer zu machen.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.