Die rasante Weiterentwicklung von künstlicher Intelligenz und maschinellem Lernen erfordert immer leistungsfähigere Hardwarelösungen. Tensor-Beschleuniger haben sich in den letzten Jahren als eine Schlüsseltechnologie etabliert, da sie speziell darauf ausgelegt sind, komplexe Operationen neuronaler Netze effizient auszuführen, insbesondere jene, die auf Tensoren basieren. Diese spezialisierten Hardwareeinheiten ermöglichen tausendfache Verbesserungen in der Rechenleistung und Energieeffizienz im Vergleich zu herkömmlichen CPUs oder GPUs. Trotz ihres Potenzials steht die Entwicklergemeinschaft vor der Herausforderung, die für diese Beschleuniger erforderliche Software effizient und performant zu schreiben und zu optimieren. Hier setzt die innovative Lösung namens Autocomp an, ein System zur automatischen Code-Optimierung durch den Einsatz großer Sprachmodelle (LLMs), das von Forschern der Universität Berkeley entwickelt wurde.
Autocomp verspricht einen Paradigmenwechsel bei der Programmierung und Optimierung von Tensor-Beschleuniger-Code, indem es domänenspezifisches Wissen und hardwarebezogenes Feedback nutzt und dabei gleichzeitig den Optimierungsprozess automatisiert. Tensor-Beschleuniger sind spezialisierte Hardwarekomponenten, die die charakteristischen Rechenmuster neuronaler Netze, wie Matrixmultiplikationen in hoher Geschwindigkeit und mit geringem Energieeinsatz abbilden. Diese Geräte verfügen oft über eine spezielle Speicherarchitektur, bei der kleinere, schnellere lokale Speicherbereiche wie Scratchpads und Akkumulatoren verwendet werden, um Daten effizienter zu verarbeiten. Die Programmierung solcher Systeme unterscheidet sich fundamental von der herkömmlicher CPUs oder GPUs. Neben der expliziten Steuerung der Datenbewegung und der Auswahl der richtigen Rechenbefehle müssen Entwickler komplexe Abläufe planen, wie beispielsweise das Software-Pipelining und die genaue Zuordnung von Speicheradressen, um Synchronisation und Datenabhängigkeiten korrekt zu managen.
Traditionell erfolgt die Entwicklung von Code für Tensor-Beschleuniger durch Hardwarehersteller oder spezialisierte Software-Teams, die große Anteile manuell optimierten Code für häufig genutzte Kernoperationen verfassen. Diese Vorgehensweise ist jedoch extrem aufwendig und bindet wertvolle Ressourcen, was die schnelle Anpassung an neue Hardwarevarianten erschwert. Aktuelle Frameworks und Compiler, wie PyTorch, JAX, XLA, TVM oder Triton, eignen sich vor allem für die Programmierung allgemeiner CPU- oder GPU-Architekturen und stoßen bei der Anpassung an neue, spezialisierte Beschleuniger oft an ihre Grenzen. Dies liegt an der Vielzahl unterschiedlicher Hardwarearchitekturen, der stark hardwareabhängigen ISAs (Instruction Set Architectures) und der großen Komplexität bei der Planung von Optimierungsstrategien, die flexibel an neue Plattformen angepasst werden müssen. Vor diesem Hintergrund stellt Autocomp eine bahnbrechende Neuerung dar.
Anstatt sich allein auf traditionelle Compilertechniken oder ausschließlich auf datengetriebene Modelle zu stützen, nutzt Autocomp das enorme Potenzial großer Sprachmodelle, um den Prozess der Codeoptimierung für Tensor-Beschleuniger zu automatisieren und signifikant zu verbessern. Ein zentraler Aspekt von Autocomp ist die Aufteilung des Optimierungsprozesses in zwei Phasen: Zuerst wird ein Optimierungsplan erstellt, in dem das System auf Basis einer vordefinierten Auswahl an Optimierungsoptionen verschiedene mögliche Transformationen und Verbesserungen am Code skizziert. Anschließend folgt die Implementierungsphase, in der die vorgeschlagenen Transformationsschritte konkret in optimierten Quellcode übersetzt werden. Dieses zweistufige Verfahren ermöglicht nicht nur eine strukturierte und nachvollziehbare Optimierung, sondern erhöht auch die Zuverlässigkeit der automatisierten Codeveränderungen erheblich. Um aus der Vielzahl möglicher Optimierungspfade den besten zu identifizieren und gleichzeitig korrekt funktionierenden und performanten Code sicherzustellen, bedient sich Autocomp einer iterativen, beam search-ähnlichen Suchstrategie.
Dabei werden mehrfach parallele Optimierungsversuche unternommen, von denen nur die funktional einwandfreien und leistungsfähigen Varianten in die nächste Iterationsrunde gelangen. So entfaltet sich ein evolutionärer Prozess, in dem der Code schrittweise verbessert wird und dabei stetig an Geschwindigkeit gewinnt. Bei der Verfeinerung der Suchstrategie legt Autocomp großen Wert darauf, hardwarerelevantes Feedback in die Planung einzubinden. So fließen neben der Prüfung der korrekten Funktion auch tiefergehende Informationen zur Effizienz der Speicherbenutzung, insbesondere der Auslastung lokaler Speicherbereiche des Beschleunigers, mit ein. Dieses Wissen ermöglicht es dem System beispielsweise, Speicherpuffer optimal zu dimensionieren oder Datenbewegungen so zu planen, dass Rechenoperationen und Datenloading effizient überlappt werden.
Ein innovativer Ansatz von Autocomp besteht auch darin, die Vielfalt der Optimierungspläne zu erhöhen. Um zu vermeiden, dass das System immer wieder die gleichen Optimierungen auswählt, arbeitet es mit Techniken, die für eine zufällige Auslassung von Menüoptionen bei der Planung sorgen und verwendet zudem eine Kombination mehrerer Sprachmodelle, um mehr unterschiedliche Perspektiven und Lösungen zu generieren. Autocomp wurde exemplarisch mit dem offenen Hardwareprojekt Gemmini evaluiert. Gemmini ist ein von der Universität Berkeley entwickelter Generator für anpassbare Tensor-Beschleuniger, der sowohl Hardware als auch Softwarearchitektur realistisch abbildet. Die Kombination von Autocomp mit Gemmini zeigte beeindruckende Ergebnisse: Bei der Optimierung von Matrixmultiplikationen konnte Autocomp im Vergleich zu handoptimiertem Code der zurückliegenden Forschungsschritte deutliche Leistungssteigerungen erzielen.
Die Beschleunigung lag im Mittel bei einem Faktor von etwa 1,4 gegenüber handoptimierten Lösungen und sogar bei knapp sechsfachem Speedup gegenüber dem Ausgangspunkt unoptimierten Codes. Darüber hinaus erreichte Autocomp mit den erzeugten Programmen eine Auslastung des Hardware-Finite-State-Machines von mindestens 85 Prozent, was sehr nahe an dem Optimum liegt. Die Fähigkeit von Autocomp, innerhalb einer relativ kleinen Anzahl von Suchschritten derartige Optimierungen zu erzielen, macht die Technologie zum vielversprechenden Kandidaten für zukünftige Entwicklungen. Besonders spannend ist auch der Ansatz, einmal gefundene Optimierungspläne zu speichern und für ähnlich geartete Workloads wiederzuverwenden. Dies reduziert den Aufwand für die Suche nach optimalem Code erheblich und ermöglicht eine schnellere Anpassung an neue Aufgaben oder Datenformate.
Die Wiederverwendung wird durch intelligente Eingrenzung des Suchraums ermöglicht, bei der bereits bekannte gute Optimierungen bevorzugt betrachtet werden, bevor neue Varianten probiert werden. Die Forschung zeigt, dass durch diese Praxis die Leistung bei vergleichbaren Workloads nochmals um ein Viertel verbessert und dabei die Anzahl der notwendigen Versuche deutlich reduziert werden kann. Die Erfolge von Autocomp leiten sich insbesondere aus der Kombination mehrerer Faktoren ab: der strukturierten Zerlegung der Optimierungsaufgabe in Plan und Implementierung, der Nutzung von Domänenwissen über Optimierungen, die engen Integration von funktionaler und hardwarebezogener Rückmeldung sowie der bewussten Förderung von Vielfalt in den Suchprozessen. Dies unterstreicht das Potenzial von großen Sprachmodellen nicht nur als einfache Generatoren von Text oder Code, sondern als intelligente Helfer bei komplexen Optimierungsproblemen in spezialisierten Technologiebereichen. Die automatische Codeoptimierung ist für die Entwicklung und Verbreitung neuer Tensor-Beschleuniger von essenzieller Bedeutung.
Durch die Verkürzung der Entwicklungszyklen und die Senkung der Kosten für manuelle Optimierung können Hersteller rascher auf Marktentwicklungen reagieren und bessere Produkte bereitstellen. Gleichzeitig erlaubt die Automatisierung auch kleineren Entwicklerteams, spezialisierte Hochleistungshardware effektiv zu nutzen. Die hier vorgestellten Resultate von Autocomp sind ein vielversprechender Schritt in diese Richtung. Es bleibt abzuwarten, wie sich dieses Konzept weiterentwickelt und ob es auf breiterer Basis in verschiedene Hardwareumgebungen übertragen werden kann. Dennoch zeigt die Arbeit bereits jetzt, dass der kombinierte Einsatz von KI-Techniken und tiefem Domänenverständnis eine vielversprechende Strategie für zukünftige Herausforderungen in der Hardware-Software-Kopplung darstellt.
Für Unternehmen und Forschungseinrichtungen, die auf dem Gebiet der KI-Beschleuniger aktiv sind, bietet Autocomp einen spannenden Ausblick auf die Zukunft der Programmierung und Optimierung von Hardware naher Software. Durch die Vereinfachung komplexer Entwicklungsprozesse und die Sicherstellung von Effizienzsteigerungen kann diese Technologie erheblich dazu beitragen, die nächste Generation von AI-Systemen schneller und effizienter zu realisieren. Nicht zuletzt trägt Autocomp auch zur Verbreitung offener Forschungsansätze bei, da die Arbeiten auf offenen Tools wie Gemmini aufbauen und damit den Austausch und die Weiterentwicklung fördern. Insgesamt markiert Autocomp eine innovative Verbindung von modernster KI-Forschung mit praktischen Anforderungen der Hardwareentwicklung und eröffnet neue Möglichkeiten für eine intelligentere und automatisierte Softwareoptimierung im Zeitalter der Tensor-Beschleuniger.