← Nieuwste papers
🤖 machine learning

CuTeGen: An LLM-Based Agentic Framework for Generation and Optimization of High-Performance GPU Kernels using CuTe

Dit paper introduceert CuTeGen, een agentisch framework dat grote taalmodellen gebruikt om via een gestructureerde generatie-test-refine-workflow en het CuTe-abstraktieniveau correcte en hoogpresterende GPU-kernen voor machine learning te genereren en te optimaliseren.

Oorspronkelijke auteurs: Tara Saba, Anne Ouyang, Xujie Si, Fan Long

Gepubliceerd 2026-04-03
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Tara Saba, Anne Ouyang, Xujie Si, Fan Long

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

Wat is het probleem? (De "Gouden Hand" van de programmeur)

Stel je voor dat je een supersnelle auto wilt bouwen. Je hebt de blauwdruk (het algoritme) en de motor (de GPU-chip). Maar om die auto echt snel te maken, moet je de wielen, de luchtstroom en de brandstofinjectie perfect op elkaar afstemmen.

In de wereld van kunstmatige intelligentie (AI) zijn dit GPU-kernels: kleine stukjes code die de zware rekenwerk doen. Tot nu toe moesten deze stukjes code met de hand worden geschreven door zeer ervaren experts. Het is als het bouwen van een Formule 1-auto: als je één boutje verkeerd draait, is de auto niet alleen traag, hij ontploft ook nog.

Recentelijk hebben we "AI-assistenten" (Large Language Models of LLMs) die code kunnen schrijven. Maar als je deze AI vraagt om zo'n Formule 1-auto te bouwen, maakt hij vaak een auto die wel rijdt, maar heel traag is, of die zelfs niet start. De AI raakt de weg kwijt in de enorme hoeveelheid details.

Wat is CuTeGen? (De Slimme Bouwmeester)

CuTeGen is een nieuw systeem dat deze AI-assistenten helpt om die supersnelle kernels te bouwen. Het doet dit niet door de AI één keer te laten proberen en hopen dat het lukt. In plaats daarvan werkt het als een meester-bouwmeester met een assistent.

Het proces werkt in drie stappen, net als het renoveren van een huis:

  1. De Schets (Genereren): De AI maakt een eerste ontwerp.
  2. De Keuring (Testen): Een robot controleert of het huis veilig is (werkt de code wel?).
  3. De Verbouwing (Optimaliseren): Als het veilig is, kijkt de robot naar de energie-efficiëntie en helpt de AI om het huis sneller en slimmer te maken.

Als er iets mis is, zegt de robot niet "gooi alles weg", maar "deze muur staat scheef, pas alleen die muur aan". Dit voorkomt dat de hele constructie instort.

De Twee Grote Trucs van CuTeGen

Het paper noemt twee belangrijke manieren waarop CuTeGen slimmer is dan andere systemen:

1. De "Legoblokken" (CuTe)

Stel je voor dat je een auto moet bouwen.

  • Gewone manier (Raw CUDA): De AI moet elke bout, elke boutmoer en elke boutdraad zelf uitzoeken en in elkaar draaien. Dat is lastig en foutgevoelig.
  • CuTeGen manier (CuTe): De AI krijgt een set Legoblokken. Deze blokjes hebben al de vorm van wielen, motoren en chassis. De AI hoeft niet te denken over hoe de boutjes eruitzien, maar kan zich focussen op hoe je de wielen aan de auto bevestigt.

De taal die CuTeGen gebruikt heet CuTe. Het is een tussenlaag die de AI dwingt om te denken in logische blokken (zoals "tiling" of het opdelen van werk), in plaats van in duizenden kleine instructies. Dit maakt het veel makkelijker voor de AI om een goed ontwerp te maken dat later makkelijk te verbeteren is.

2. De "Vertraging" (Delayed Profiling)

Dit is misschien wel het slimste idee in het paper.
Stel je voor dat je een atleet traint.

  • Foutieve aanpak: Je geeft de atleet direct na elke stap een stopwatch en zegt: "Je was 0,01 seconde te langzaam, pas je schoenveters aan!" De atleet raakt in paniek, past alleen zijn schoenveters aan, en vergeet dat hij misschien een verkeerde loopstijl heeft. Hij blijft hangen in een lokale optimum (hij is snel, maar niet snel genoeg).
  • CuTeGen aanpak: De trainer laat de atleet eerst een paar rondjes lopen om de techniek en de houding goed te krijgen. Pas nadat de houding perfect is, geeft de trainer de stopwatch en zegt: "Nu we de techniek hebben, laten we kijken of we sneller kunnen door je schoenveters iets strakker te binden."

CuTeGen gebruikt dit principe: Vertraging van feedback.

  • Eerst zorgt de AI dat de code werkt en dat de grote structuur (de houding) goed is.
  • Pas daarna krijgt de AI de details van de hardware (de stopwatch/analyse) om de kleine dingen te perfectioneren.
    Als je de details te vroeg geeft, raakt de AI in de war en maakt hij slechte keuzes.

Wat leverde het op? (De Resultaten)

De onderzoekers hebben CuTeGen getest op twee soorten taken:

  1. Matrixvermenigvuldiging: De zware, complexe rekenwerk (zoals het vermenigvuldigen van enorme tabellen).
  2. Activeringsfuncties: Simpele, maar vaak voorkomende berekeningen (zoals het toepassen van een wiskundige formule op elk getal).

De resultaten:

  • Bij de simpele taken (Activeringsfuncties) was CuTeGen gemiddeld 1,7 keer sneller dan de standaard software die nu wordt gebruikt.
  • Bij de zware taken (Matrixvermenigvuldiging) deed CuTeGen het net zo goed als, of zelfs beter dan, de allerbeste handgeschreven code van experts in bepaalde gevallen.

Conclusie

CuTeGen is een doorbraak omdat het AI niet laat "gokken" met code, maar het een gestructureerd proces geeft. Het gebruikt een slimme taal (CuTe) om de basis goed te leggen en geeft de AI pas de harde cijfers over snelheid op het juiste moment.

Het is alsof we een AI hebben die niet alleen kan tekenen, maar ook weet hoe je een auto bouwt, en die weet dat je eerst het chassis moet bouwen voordat je de motor afstelt. Hierdoor kunnen we in de toekomst snellere AI-systemen hebben zonder dat we duizenden uren moeten besteden aan het handmatig schrijven van code.

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.

Probeer Digest →