zurück zum Artikel

Ithemal sagt voraus, wie schnell Code auf Chips läuft

Kim Sartorius
Ithemal

(Bild: HomeArt/Shutterstock.com)

Das Prognose-Tool Ithemal stellt mithilfe von maschinellem Lernen bisherige Performance-Modelle in den Schatten.

Forscher vom MIT haben das Open-Source-Tool Ithemal (Instruction Throughput Estimator using Machine Learning) veröffentlicht, das über ein neuronales Netzwerk vorhersagt, wie schnell Code auf Chips läuft. Diese Information kann auch für Compiler wichtig sein, da sie diese nutzen können, um den Maschinencode automatisch zu optimieren.

Um herauszufinden, wie schnell Code auf verschiedenen Prozessoren läuft, lässt man diesen bisher anhand von Performance-Modellen analysieren. Die simulierten für ihre Prognose verschiedene Mikrocontroller-Architekturen. In ihrem ersten von insgesamt drei Papern beschreiben die Forscher [1], dass das Erstellen solcher Modelle, insbesondere für moderne x86-64-Prozessoren, sehr kompliziert sei und jede Prozessorgeneration ein neues Modell erfordere. Hinzu komme, dass es sich bei den meisten Analyse-Tools um nicht validierte Modelle handele, was zu sehr unzuverlässigen Ergebnissen führen könne.

Ithemal bietet mit Haswell, Skylake und Ivy Bridge drei Modelle, die wohl um 50 Prozent genauer als bisherige Analyse-Tools sein sollen und trotzdem nicht zu viel Zeit zur Berechnung brauchen. Wer eins davon testen möchte, kann dies mit Assembler-Anweisungen online ausprobieren [2]. Auf GitHub steht außerdem der Sourcecode von Ithemal nebst einer Anleitung zur Installation und Nutzung des Tools zur Verfügung.

Ithemal sagt voraus wie schnell Code auf Chips läuft

Ithemal sagt die Anzahl von Zyklen für den Befehl mov al, 61h voraus

(Bild: [Link auf http://3.18.198.23/predict] [3] )

Um Ithemal zu trainieren, takteten die Forscher die durchschnittliche Anzahl von Zyklen, die ein Mikroprozessor benötigt, um grundlegende Blockbefehle zu berechnen. Hierzu gehören die Reihenfolge beim Hochfahren, Ausführen und Herunterfahren ohne menschliches Eingreifen. Mit diesen Daten lernte Ithemal, wie unterschiedliche Prozessoren die selben Befehle berechnen und konnte anschließend Vorhersagen darüber treffen, wie schnell Code auf verschiedenen Chips läuft.

Um die Genauigkeit vorhandener Modelle besser einschätzen zu können, stellten die Wissenschaftler in ihrem zweiten Paper das Framework BHive vor [4], das zum Validieren von x86-64-Performance-Modellen dient. Bei einer Evaluation mit BHive kam offenbar heraus, dass Ithemal andere Modelle übertrifft und die Geschwindigkeit von Code auf Intel Chips sogar schneller voraussagt als ein Intel-eigenes Modell. Einzig bei vektorisierten Blockbefehlen schnitt Ithemal nicht überdurchschnittlich ab.

In dem letzten der drei Paper [5] widmete sich das Forscherteam der Aufgabe, Compiler-Optimierungen automatisch so zu generieren, dass sie den SLP-Vektorisierer des Compiler-Baukastens LLVM übertreffen.

In Zukunft plant das Team rund um das Ithemal-Projekt weiterführende Forschung, um herauszufinden, wie genau die Prognosen von Ithemal entstehen. Das stellt eine allgemeine Herausforderung des maschinellen Lernens dar, da bisher unbekannt ist, was genau mit den Daten zum Trainieren in Modellen geschieht. Um einen Einstieg ins Thema maschinelles Lernen zu bekommen, bietet Google mit der Teachable Machine [6] ein Tool, mit dem Nutzer ein eigenes neuronales Netz trainieren können. (kim [7])


URL dieses Artikels:
https://www.heise.de/-4630107

Links in diesem Artikel:
[1] http://proceedings.mlr.press/v97/mendis19a/mendis19a.pdf
[2] http://3.18.198.23/predict
[3] http://3.18.198.23/predict
[4] http://groups.csail.mit.edu/commit/papers/19/ithemal-measurement.pdf
[5] http://papers.nips.cc/paper/9604-compiler-auto-vectorization-with-imitation-learning.pdf
[6] https://www.heise.de/news/Teachable-Machine-2-0-Google-erweitert-sein-KI-Lernangebot-4582433.html
[7] mailto:kim@heise.de