PolyBlocks: A Compiler Infrastructure for AI Chips and Programming Frameworks

Die Arbeit stellt PolyBlocks vor, eine modulare, auf MLIR basierende Compiler-Infrastruktur, die durch passbasierte Transformationen und analytische Kostenmodelle automatisch hochoptimierten Code für KI-Frameworks und Chips generiert und dabei in Tests mit Torch Inductor sowie XLA konkurrieren kann.

Uday Bondhugula, Akshay Baviskar, Navdeep Katel, Vimal Patel, Anoop JS, Arnab Dutta

Veröffentlicht Tue, 10 Ma
📖 4 Min. Lesezeit☕ Kaffeepausen-Lektüre

Each language version is independently generated for its own context, not a direct translation.

Stellen Sie sich vor, Sie sind ein genialer Koch, der ein komplexes Rezept (ein KI-Modell) für eine riesige Menschenmenge zubereiten will. Aber Sie haben ein Problem: Ihre Küche ist voller verschiedener, oft inkompatibler Geräte.

  • PyTorch und JAX sind wie Ihre hochmodernen, aber sehr abstrakten Kochbücher. Sie sagen Ihnen nur: "Mischen Sie die Zutaten A und B." Sie sagen nicht, wie Sie das genau tun sollen.
  • Die Hardware (GPUs) ist Ihre Küche mit speziellen, extrem schnellen Maschinen (wie einem Turbo-Ofen oder einem Roboter-Arm), die nur sehr spezifische Befehle verstehen.
  • Die aktuellen "Übersetzer" (Compiler wie Inductor oder XLA) sind wie erfahrene, aber etwas starre Küchenchefs. Sie schauen in das Kochbuch, sagen: "Ah, das ist ein Braten!" und rufen dann sofort einen externen Dienstleister an, der genau diesen Braten schon perfekt vorbereitet hat (eine fertige Bibliothek). Das geht schnell, aber wenn Sie ein neues, verrücktes Rezept haben, das der Dienstleister nicht kennt, müssen Sie selbst anfangen zu kochen – und das dauert lange und ist fehleranfällig.

PolyBlocks ist nun ein völlig neuer, revolutionärer Küchenchef. Hier ist, was er anders macht, einfach erklärt:

1. Der "Alles-aus-dem-Gedächtnis"-Ansatz (Vollautomatische Code-Generierung)

Die alten Küchenchefs verlassen sich stark auf fertige Gerichte von Lieferanten (Bibliotheken wie cuDNN). PolyBlocks hingegen sagt: "Ich koche alles selbst, von der ersten Zutat bis zum fertigen Teller."

  • Die Analogie: Statt einen fertigen Pizza-Teig zu kaufen, wenn Sie eine Pizza wollen, knetet PolyBlocks den Teig, rollt ihn aus, belegt ihn und backt ihn in genau der Form, die Ihre spezielle Küche am besten verträgt.
  • Der Vorteil: Wenn morgen eine völlig neue, super-schnelle Pizza-Backmaschine auf den Markt kommt, muss PolyBlocks nicht warten, bis ein Lieferant eine neue Pizza dafür entwickelt hat. Er passt sein eigenes Rezept sofort an die neue Maschine an.

2. Der "Ein-Schalter"-Effekt (Benutzerfreundlichkeit)

Normalerweise müssen Programmierer, die ihre KI-Modelle schneller machen wollen, tief in den Code eingreifen und komplexe Optimierungen selbst schreiben (wie ein Koch, der jeden einzelnen Schritt manuell plant).

  • Die Analogie: Mit PolyBlocks reicht es, einen einzigen Schalter umzulegen (eine Zeile Code hinzuzufügen), und schon verwandelt sich das langsame "Eager"-Rezept (Zubereitung Schritt für Schritt) in ein hochleistungsfähiges, optimiertes Menü. Es ist so einfach wie das Umstellen Ihres Herds von "Handgemacht" auf "Turbo-Modus".

3. Der "Zusammenkleber" (Fusion)

Ein großes Problem beim Kochen ist das Hin- und Herlaufen zur Speisekammer (dem Arbeitsspeicher). Wenn Sie für jeden kleinen Schritt (Salzen, Pfeffer, Rühren) extra zur Kiste laufen müssen, vergeht viel Zeit.

  • Die Analogie: PolyBlocks ist ein Meister darin, mehrere Schritte zu einem einzigen zu verschmelzen. Statt "Geh zur Kiste, hol Salz, geh zurück, salze, geh zur Kiste, hol Pfeffer, geh zurück, pfeffere", sagt PolyBlocks: "Geh zur Kiste, hol Salz und Pfeffer, und mach beides auf einmal."
  • Das Ergebnis: Die KI-Modelle müssen viel weniger Daten hin und her schleppen. Das ist wie ein Koch, der alle Zutaten auf einem Tablett vorbereitet hat, bevor er zum Herd geht. Das spart enorm viel Zeit.

4. Der "Schneidemeister" (Slicing & Tiling)

Manchmal sind die Zutaten riesig (große Datenmengen), aber Ihre Arbeitsfläche (der schnelle Speicher im Chip) ist klein.

  • Die Analogie: PolyBlocks schneidet die riesigen Zutaten in perfekte, kleine Stücke (Tiles), die genau auf Ihre Arbeitsfläche passen. Es berechnet genau, welches Stück Sie gerade brauchen, und holt nur dieses. Es vermeidet es, ganze Wassermelonen auf einen kleinen Teller zu legen.
  • Besonderheit: PolyBlocks kann diese Stücke so clever schneiden und zusammenfügen, dass es sogar Teile von Zutaten weglässt, die gar nicht gebraucht werden, oder Dinge berechnet, die eigentlich in einem anderen Schritt passieren würden, aber jetzt direkt mit erledigt werden.

5. Warum ist das so wichtig?

Heute sind die KI-Modelle so komplex, dass die alten Methoden (die auf fertige Bibliotheken angewiesen sind) an ihre Grenzen stoßen. Wenn ein neues KI-Modell oder ein neuer Chip-Typ kommt, hinken die Bibliotheken oft hinterher.

PolyBlocks ist wie ein universeller, lernfähiger Küchenchef, der:

  1. Schneller ist: In vielen Tests war er schneller als die besten existierenden Systeme (Inductor, XLA).
  2. Flexibler ist: Er kann sich an jede neue Küchenmaschine (Hardware) anpassen, ohne dass jemand neues Programmieren muss.
  3. Selbstständig ist: Er braucht keine fertigen Rezepte von Lieferanten, sondern erfindet das perfekte Kochverfahren für jede Situation neu.

Zusammenfassend:
PolyBlocks ist ein neues Werkzeug für KI-Entwickler. Es nimmt das komplexe, langsame "Händewerk" der Optimierung weg und ersetzt es durch einen intelligenten, automatischen Prozess, der KI-Modelle so schnell wie möglich auf der Hardware zum Laufen bringt – egal, ob es sich um eine alte Grafikkarte oder eine brandneue KI-Chip-Architektur handelt. Es ist der Unterschied zwischen einem Koch, der auf fertige Fertiggerichte angewiesen ist, und einem Meisterkoch, der jeden Teller perfekt auf den Gast und die Küche zuschneidet.