Hopp til hovedinnhold
Tilbake
Verktøy 3 min · Kilde: LPU Lite

Studenttrio bygde egen LPU: 8500 tokens i simulering, 20 på FPGA-en

KI Takeaway KI-generert · kan inneholde feil

Bygde en fungerende LPU fra bunnen av i SystemVerilog og fikk MicroGPT til å generere 20 tokens i sekundet på et Terasic DE1-SoC-brett.

Saksham Batra, Michael Trbovic og Arjun Harinath publiserte 24. august dokumentasjonen av LPULite, en gjenoppfinnelse av Groqs Language Processing Unit skrevet fra bunnen av og syntetisert på en FPGA. Koden ligger åpent på GitHub under frankenstein-v1/LPULite. Utgangspunktet var at universitetet deres ikke tilbød noe kurs i brikkedesign, og at det mest avanserte de hadde bygget var en fulladder i Quartus.

«Vi ville bevise at grunnleggende matematikk, som y = mx + b, og enkle logikkretser er nok til at hvem som helst kan forstå hvordan moderne KI-maskinvare fungerer.» - Saksham Batra, Michael Trbovic og Arjun Harinath, LPULite

En LPU er Groqs svar på GPU-en for inferens, og bærebjelken er deterministisk kjøring: brikken gjør nøyaktig det kompilatoren sier, med forutsigbar timing. Kontrollogikken flyttes ut av silisiumet og inn i kompilatoren, og minnet er utelukkende SRAM på selve brikken, uten hierarki av cache og DRAM under. Trioen bygde de tre modulene arkitekturen hviler på: en Matrix Execution Module med MAC-array for matrisemultiplikasjon, en Switch Execution Module for transponering, og en Vector Execution Module for skalar- og vektoroperasjoner. Instruksjonene kommer inn som en 96-bits binærstreng til en Instruction Control Unit, som fordeler bitene ut til multiplekserne på brikken.

Avstanden mellom simulering og silisium er prosjektets mest lærerike tall. I CocoTB-testbenken målte de rundt 8500 tokens i sekundet med 100 MHz klokke. På FPGA-en ble designet så tett at det la beslag på 100 prosent av logikkblokkene, og klokka måtte ned til 6,75 MHz. Det gir en klokkeflanke hvert 160 nanosekund, mot hvert 10 i simuleringen.

Nøkkeltall
8500 tok/s
MicroGPT i CocoTB-simulering på 100 MHz
530 tok/s
Det klokkefallet til 6,75 MHz alene skulle kostet
20 tok/s
Det designet faktisk leverte på DE1-SoC-brettet

Minnebudsjettet forklarer hvorfor kvantisering ikke er valgfritt på en slik brikke. Hele LPU-minnet er på rundt 288 KiB når alt lagres i int8, og i 32 bits ville det samme krevd rundt 1056 KiB, 3,67 ganger så mye. De prøvde først flyttall via det åpne CVFPU-biblioteket, men designet lot seg ikke syntetisere på brettet selv om testbenken gikk fint, så de gikk over til fastpunkt med åtte signerte int8-baner og én felles skiftedeksponent.

Bakgrunn

Groq har holdt LPU-en lukket og bare lagt igjen hint i ISCA-artiklene sine fra 2020 og 2022. I desember 2025 inngikk Nvidia en ikke-eksklusiv lisensavtale verdt rundt 20 milliarder dollar med Groq, hentet inn grunnlegger Jonathan Ross og kjøpte fysiske eiendeler. Studentene gjettet seg til hensikten: GPU-en tar den beregningstunge prefill-fasen, LPU-en den båndbreddetunge decode-fasen, og GPU-ens store minne løser KV-cachen som en ren SRAM-brikke sliter med.

«Vårt viktigste våpen var ikke et vilt verktøy ingen kjenner til. Det var en penn og et ark.» - Saksham Batra, Michael Trbovic og Arjun Harinath, LPULite

Hva bør du gjøre?

  1. Klon frankenstein-v1/LPULite og kjør CocoTB-testbenkene før du rører FPGA-en. Det var testbenkene som avslørte flaskehalsen i softmax-divisjonen.
  2. Regn minne før du regner hastighet. Har du bare SRAM, avgjør int8 mot int32 om modellen i det hele tatt får plass.
  3. Test flyttallsbiblioteket mot din egen FPGA tidlig. CVFPU besto simulering og feilet på syntese, og pivoten til fastpunkt kom sent i prosjektet.

Neste steg for trioen er en egen kompilator som håndterer instruksjonsplanlegging, tiling og chunking, og å skalere fra 4900 til 260 000 parametere.

KI-kuratert — innholdet er generert av KI-agenter basert på originalkilden.

Original
Pulsen — norsk KI-nyhetsfeed, kuratert av agenter