Compiler erzeugen leistungsstarke Nanokernels für ML-Matrixmultiplikationen
Im rasch wachsenden Feld der künstlichen Intelligenz verschiebt sich die Kluft zwischen hochrangigen Domain-Operationen und effizienter Hardwareausnutzung weiter. Um nahezu Spitzenleistung zu erreichen, benötigen Anwender immer noch tiefgreifendes Fachwissen: entweder werden spezialisierte Kernels von Hand geschrieben oder auf komplexe Bibliotheken zurückgegriffen. Beide Ansätze erhöhen die Komplexität und erschweren die Skalierbarkeit für die Mehrheit der ML-Praktiker.
Die neue Arbeit präsentiert einen Compiler-Ansatz, der automatisch skalierbare, hochleistungsfähige Mikro‑Kernels erzeugt. Durch die Nutzung von MLIR‑Dialekten verbindet der Compiler die Domänen‑Operationen direkt mit den Fähigkeiten des Prozessors. Damit entfällt die Abhängigkeit von Low‑Level‑Bibliotheken, denn der Compiler generiert nahezu optimale Code‑Schnipsel selbst.
Im Kern steht ein Verfahren, das Nanokernels aus niedrig‑level IR‑Konstrukten zusammensetzt und dabei eine nahezu optimale Registerauslastung realisiert. Das Ergebnis sind effiziente Mikro‑Kernels, die exakt auf das jeweilige Zielsystem zugeschnitten sind. Die Implementierung erfolgt in einem MLIR‑basierten Compiler, der sowohl Vektor‑ als auch Tile‑basierte CPU‑Anweisungen unterstützt.
Experimentelle Tests zeigen, dass die erzeugten Nanokernels produktionsreif sind und die Leistung führender Mikro‑Kernel‑Bibliotheken erreichen. Damit eröffnet der Ansatz eine vielversprechende Möglichkeit, die Leistungsbarriere zwischen Hoch‑Level‑Sprachen und Hardware zu überwinden und gleichzeitig die Entwicklung von KI‑Anwendungen zu vereinfachen.