Zephyrnet-Logo

Das Tool sagt voraus, wie schnell Code auf einem Chip ausgeführt wird

Datum:

MIT-Forscher haben ein Tool zum maschinellen Lernen erfunden, das vorhersagt, wie schnell Computerchips Code aus verschiedenen Anwendungen ausführen.  

Damit Code so schnell wie möglich ausgeführt wird, verwenden Entwickler und Compiler - Programme, die Programmiersprache in maschinenlesbaren Code übersetzen - normalerweise Leistungsmodelle, die den Code durch eine Simulation bestimmter Chiparchitekturen ausführen. 

Compiler verwenden diese Informationen, um Code automatisch zu optimieren, und Entwickler verwenden sie, um Leistungsengpässe auf den Mikroprozessoren zu beheben, auf denen sie ausgeführt werden. Leistungsmodelle für Maschinencode werden jedoch von einer relativ kleinen Gruppe von Experten handgeschrieben und nicht ordnungsgemäß validiert. Infolgedessen weichen die simulierten Leistungsmessungen häufig von den tatsächlichen Ergebnissen ab. 

In einer Reihe von Konferenzbeiträgen beschreiben die Forscher eine neuartige Pipeline für maschinelles Lernen, die diesen Prozess automatisiert und ihn einfacher, schneller und genauer macht. In einem Krepppapier Auf der Internationalen Konferenz über maschinelles Lernen im Juni präsentierten die Forscher Ithemal, ein neuronales Netzwerkmodell, das beschriftete Daten in Form von „Basisblöcken“ - grundlegenden Ausschnitten von Computeranweisungen - trainiert, um automatisch vorherzusagen, wie lange es dauert Chip zur Ausführung bisher nicht sichtbarer Basisblöcke. Die Ergebnisse legen nahe, dass Ithemal weitaus genauer arbeitet als herkömmliche handgestimmte Modelle. 

Dann, auf dem IEEE International Symposium on Workload Characterization im November, die Forscher vorgeführt Eine Benchmark-Suite von Basisblöcken aus verschiedenen Bereichen, einschließlich maschinellem Lernen, Compilern, Kryptografie und Grafiken, die zur Validierung von Leistungsmodellen verwendet werden können. Sie haben mehr als 300,000 der profilierten Blöcke in einem Open-Source-Datensatz namens BHive zusammengefasst. Während ihrer Evaluierungen sagte Ithemal voraus, wie schnell Intel-Chips Code noch besser ausführen würden als ein von Intel selbst entwickeltes Leistungsmodell. 

Letztendlich können Entwickler und Compiler das Tool verwenden, um Code zu generieren, der schneller und effizienter auf einer ständig wachsenden Anzahl von verschiedenen Black-Box-Chip-Designs ausgeführt wird. „Moderne Computerprozessoren sind undurchsichtig, schrecklich kompliziert und schwer zu verstehen. Es ist auch unglaublich schwierig, Computercode zu schreiben, der für diese Prozessoren so schnell wie möglich ausgeführt wird “, sagt Michael Carbin, Co-Autor aller drei Artikel, Assistenzprofessor am Institut für Elektrotechnik und Informatik (EECS) und Forscher in das Labor für Informatik und künstliche Intelligenz (CSAIL). "Dieses Tool ist ein großer Schritt vorwärts, um die Leistung dieser Chips vollständig zu modellieren und die Effizienz zu verbessern."

Zuletzt in einem Krepppapier Das Team, das auf der NeurIPS-Konferenz im Dezember vorgestellt wurde, schlug eine neue Technik vor, um automatisch Compiler-Optimierungen zu generieren. Insbesondere generieren sie automatisch einen Algorithmus namens Vemal, der bestimmten Code in Vektoren konvertiert, die für paralleles Rechnen verwendet werden können. Vemal übertrifft handgefertigte Vektorisierungsalgorithmen, die im LLVM-Compiler verwendet werden - einem in der Branche beliebten Compiler.

Aus Daten lernen

Das Entwerfen von Leistungsmodellen von Hand kann „eine schwarze Kunst“ sein, sagt Carbin. Intel bietet eine umfassende Dokumentation von mehr als 3,000 Seiten, in denen die Architekturen seiner Chips beschrieben werden. Derzeit gibt es jedoch nur eine kleine Gruppe von Experten, die Leistungsmodelle erstellen, die die Ausführung von Code auf diesen Architekturen simulieren. 

"Intels Dokumente sind weder fehlerfrei noch vollständig, und Intel wird bestimmte Dinge weglassen, da sie urheberrechtlich geschützt sind", sagt Charith Mendis, Co-Autorin aller drei Artikel, eine Doktorandin in EECS und CSAIL. „Wenn Sie jedoch Daten verwenden, müssen Sie die Dokumentation nicht kennen. Wenn etwas versteckt ist, können Sie es direkt aus den Daten lernen. “

Zu diesem Zweck haben die Forscher die durchschnittliche Anzahl von Zyklen getaktet, die ein bestimmter Mikroprozessor benötigt, um grundlegende Blockbefehle - im Grunde die Reihenfolge des Hochfahrens, Ausführens und Herunterfahrens - ohne menschliches Eingreifen zu berechnen. Die Automatisierung des Prozesses ermöglicht die schnelle Profilerstellung von Hunderttausenden oder Millionen von Blöcken. 

Domänenspezifische Architekturen

Im Training analysiert das Ithemal-Modell Millionen von automatisch profilierten Basisblöcken, um genau zu erfahren, wie verschiedene Chip-Architekturen Berechnungen ausführen. Wichtig ist, dass Ithemal Rohtext als Eingabe verwendet und keine manuellen Funktionen zu den Eingabedaten hinzufügen muss. Beim Testen kann Ithemal zuvor nicht sichtbare Basisblöcke und einen bestimmten Chip gespeist werden und generiert eine einzelne Zahl, die angibt, wie schnell der Chip diesen Code ausführt. 

Die Forscher fanden heraus, dass Ithemal die Fehlerrate bei der Genauigkeit - was den Unterschied zwischen der vorhergesagten Geschwindigkeit und der realen Geschwindigkeit bedeutet - gegenüber herkömmlichen handgefertigten Modellen um 50 Prozent senkte. In ihrem nächsten Artikel zeigten sie außerdem, dass die Fehlerrate von Ithemal 10 Prozent betrug, während die Fehlerrate des Intel-Modells zur Leistungsvorhersage bei einer Vielzahl von Basisblöcken in mehreren verschiedenen Domänen 20 Prozent betrug.

Das Tool macht es jetzt einfacher, die Leistungsgeschwindigkeiten für neue Chip-Architekturen schnell zu erlernen, sagt Mendis. Beispielsweise werden derzeit domänenspezifische Architekturen wie die neue Tensor Processing Unit von Google, die speziell für neuronale Netze verwendet wird, erstellt, die jedoch nicht allgemein verstanden werden. „Wenn Sie ein Modell auf einer neuen Architektur trainieren möchten, sammeln Sie einfach mehr Daten aus dieser Architektur, führen sie über unseren Profiler aus, verwenden diese Informationen zum Trainieren von Ithemal, und jetzt haben Sie ein Modell, das die Leistung vorhersagt“, sagt Mendis.

Als nächstes untersuchen die Forscher Methoden, um Modelle interpretierbar zu machen. Ein Großteil des maschinellen Lernens ist eine Black Box, daher ist nicht wirklich klar, warum ein bestimmtes Modell seine Vorhersagen getroffen hat. „Unser Modell sagt, dass ein Prozessor beispielsweise 10 Zyklen benötigt, um einen Basisblock auszuführen. Jetzt versuchen wir herauszufinden, warum “, sagt Carbin. "Das ist ein feines Maß an Granularität, das für diese Art von Werkzeugen erstaunlich wäre."

Sie hoffen auch, Ithemal zu verwenden, um die Leistung von Vemal noch weiter zu verbessern und automatisch eine bessere Leistung zu erzielen.


Quelle: http://news.mit.edu/2020/tool-how-fast-code-run-chip-0106

spot_img

Neueste Intelligenz

spot_img