TileFuse: A Fused Mixed-Precision Kernel Library for Efficient Quantized LLM Inference on AMD NPUs
Dit artikel introduceert TileFuse, een close-to-metal mixed-precision kernelbibliotheek voor AMD XDNA2 NPU's die het uitpakken, dequantization en matrixoperaties fuseert om efficiënte, native ondersteuning te bieden voor populaire AWQ-stijl gekwantiseerde LLM-inferentie, waarbij significante prestatie- en energie-efficiëntiewinsten worden behaald ten opzichte van bestaande baselines op client edge-apparaten.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
Stel je voor dat je een gloednieuwe, supersnelle bezorgwagen (de NPU) in je garage hebt staan, maar de enige landkaart die je hebt (de software) vertelt je hoe je op een trage, oude fiets moet rijden. Je kunt de snelheid van de vrachtwagen niet gebruiken omdat de kaart niet weet hoe hij door de rijstroken moet navigeren.
Dit is het probleem met het draaien van moderne AI-chatbots (LLM's) op de nieuwe laptopchips van vandaag. Deze chips hebben krachtige "AI-motoren" (NPU's) die ontworpen zijn om batterij te besparen en snel te zijn, maar de software dwingt de AI meestal om van vorm te veranderen om in de motor te passen, in plaats van de motor aan te laten passen aan de AI.
TileFuse is een nieuwe set tools die dit oplost. Het is alsof je een aangepaste, hogesnelheidsweg bouwt die specifiek voor de vrachtwagen is ontworpen, zodat deze zware ladingen gecomprimeerde data kan vervoeren zonder ze tussendoor opnieuw te hoeven verpakken.
Hier is hoe het artikel deze oplossing uitlegt met behulp van eenvoudige analogieën:
1. Het Probleen: De "Verpakkings"-bottleneck
Normaal gesproken, om AI op deze nieuwe chips te draaien, moet je de "gecomprimeerde" gewichten van de AI (die als boeken strak in een kleine koffer gepakt zitten) uitpakken naar een volumineus formaat (zoals de boeken uit de koffer halen en ze plat op een tafel leggen) zodat de chip ze kan lezen.
- De Oude Manier: De chip leest de koffer, pakt de boeken uit, stopt ze in een andere koffer, en dan begint hij pas met lezen. Dit verspilt tijd en energie.
- De TileFuse Manier: De chip leest de koffer, opent hem, en leest de boeken terwijl ze nog worden uitgepakt. Hij doet alles in één vloeiende beweging.
2. De Oplossing: "Fused" Kernels
De auteurs hebben een bibliotheek gemaakt genaamd TileFuse. Beschouw een "kernel" als een specifieke instructiehandleiding voor de chip.
- Fusion (Versmelting): In plaats van drie aparte werkers (één om uit te pakken, één om te converteren, één om te berekenen), combineert TileFuse hen tot één superwerker. Deze werker grijpt de gecomprimeerde data, converteert deze on the fly, en doet de berekeningen allemaal in één keer.
- Het Resultaat: Dit is als een chef die niet alleen groenten snijdt; hij snijdt, kruidt en kookt ze in één continue beweging. Het artikel beweert dat dit het "uitpakken" van het proces tot wel 2,8 keer sneller maakt voor bepaalde taken vergeleken met oudere methoden.
3. De "Interleaved" Lay-out: Het organiseren van het magazijn
Grote AI-modellen hebben enorme lijsten met getallen (gewichten). Het geheugensysteem van de chip heeft een limiet aan hoe ver het kan reiken om het volgende stukje data te pakken. Als de data op een rommelige, verspreide manier is opgeslagen, moet de chip lange, trage afstanden afleggen om het volgende stukje te halen.
- De Analogie: Stel je een magazijn voor waar dozen willekeurig zijn gestapeld. Een heftruck moet 15 meter rijden om de volgende doos te halen.
- De Fix van TileFuse: Ze herordenen het magazijn (genaamd "Interleaved Pre-tiling") zodat de dozen die de heftruck als volgende nodig heeft, direct naast elkaar staan. Hierdoor kan de chip enorme hoeveelheden data in één vloeiende beweging grijpen, wat veel grotere AI-modellen ondersteunt (tot 32.000 items breed) die voorheen niet pasten.
4. Het "GEMV"-probleem: De verkeersopstopping
AI-chatbots werken in twee fasen:
- Prefilling: Een lange prompt in één keer lezen (zoals het lezen van een heel boek). Dit is snel en makkelijk voor de vrachtwagen.
- Token Generation: Woord voor woord schrijven (zoals het schrijven van een zin). Dit is traag en lastig.
- Het Probleel: Tijdens het schrijven van woorden één voor één, staat de "vrachtwagen" van de chip vaak stil omdat hij is ontworpen om grote ladingen te dragen, niet kleine. Het is alsof je een semi-vrachtwagen gebruikt om een enkele brief te bezorgen; de motor draait, maar de vrachtwagen is leeg.
- De Fix: TileFuse heeft de verkeersstroom voor deze fase herontworpen. In plaats van data naar slechts één rijstrook van de snelweg te sturen, verdeelt het de taken over alle 3-en-30 rijstroken van de chip tegelijkertijd. Dit houdt de hele motor bezig, zelfs wanneer de "lading" klein is.
5. De Resultaten in de Praktijk
Het team heeft dit getest op echte AMD-laptops (Ryzen AI) en vergeleken met het gebruik van de standaard grafische kaart (iGPU) van de laptop.
- Snelheid: Voor het lezen van lange prompts (prefilling) was de NPU met TileFuse tot wel 2 keer sneller dan de grafische kaart.
- Batterij: Omdat de NPU efficiënter is, verbruikte deze 64% minder energie om dezelfde taak uit te voeren.
- De Keerzijde: Bij het schrijven van woorden één voor één (token generation) was de NPU soms langzamer dan de grafische kaart. Dit komt omdat de "opstarttijd" om de NPU te configureren te lang is voor zulke kleine, snelle taken.
- De Hybride Oplossing: Het artikel suggereert een "het beste van beide werelden"-aanpak: Gebruik de NPU voor het zware werk (het lezen van lange prompts) en de grafische kaart voor de snelle taken (het schrijven van woorden). Deze combinatie geeft de beste snelheid en batterijduur.
Samenvatting
TileFuse is een brug. Het neemt de populaire, gecomprimeerde AI-formaten die ontwikkelaars al gebruiken (zoals AWQ) en zorgt ervoor dat ze direct op de nieuwe AI-chips van AMD kunnen draaien zonder dat de AI-modellen zelf veranderd hoeven te worden. Door het uitpakken en de berekeningen te combineren, de data perfect te organiseren en de volledige kracht van de rijstroken van de chip te benutten, maakt het het draaien van AI op laptops aanzienlijk sneller en energie-efficiënter.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.