Hauptseminar: VLIW und EPIC1 VLIW und EPIC Hauptseminar “Techniken der Code-Optimierung für moderne Rechnerarchitekturen” SS/98 an der TU München von Christian.

Slides:



Advertisements
Ähnliche Präsentationen
Kurzwiederholung Informatik I, Teil I: Grundkonzepte
Advertisements

CPI Der einzelne Befehl braucht immer noch 5 Zyklen (stimmt nicht ganz, einige brauchen weniger!) Was verbessert wird, ist der Durchsatz = #Befehle /
Kapitel 11 Deadlocks RW-Systemarchitekur Kap. 11.
Informatik 12 | DAES Compilerbau Wintersemester 2010 / 2011 Dr. Heiko Falk Technische Universität Dortmund Lehrstuhl Informatik 12 Entwurfsautomatisierung.
Technische Universität Dortmund
On the Criteria to Be Used in Decomposing Systems into Modules
Der Crusoe-Prozessor von Transmeta
2.5 Vektorrechner & Multimedia-Erweiterungen
Peter Marwedel TU Dortmund, Informatik 12
Einführung in Berechenbarkeit und Formale Sprachen
1 Energiebewusste Compilierung für digitale Signalprozessoren Markus Lorenz Peter Marwedel Universität Dortmund Lehrstuhl Informatik XII Projekt Prozessorarchitekturen.
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
CPU, Programmausführung
On a Buzzword: Hierachical Structure David Parnas.
Systeme 1 Kapitel 7 Deadlocks WS 2009/10.
Funktionsmerkmale und Vorteile Die Intel Core i7 Prozessoren der zweiten Generation verfügen über folgende Funktionsmerkmale: Die Intel® Turbo-Boost-Technik.
Ausnahmen HS Merseburg (FH) WS 06/07.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
XINDICE The Apache XML Project Name: Jacqueline Langhorst
SQL als Abfragesprache
OpenMP Präsentation im Rahmen des Seminars
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
1 Linux Paging, Caching und Swapping. 1 Vortragsstruktur Paging – Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation.
Zusammenfassung Vorwoche
Vorlesung 2 Rechnerarchitektur Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Rechnerarchitektur Vorlesung 2 Peter B. Ladkin
Vorlesung, Wintersemester 2009/10M. Schölzel 1 Optimierungstechniken in modernen Compilern Einführung.
Brandenburgische Technische Universität Cottbus Program Profiling Andrzej Filipiak Übung Testen von Software SoSe 2006.
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Vortrag: Ingo Gensch, Mathias Reich am:
EPIC, IA-64 und Itanium Eine Kurzpräsentation von Jan Hübbers bei Prof. Dr.-Ing. Risse im Fach Labor Rechnerstrukturen an der Hochschule Bremen
Addierwerke.
Beiträge erheben Im Internet-Explorer müssen Sie zum Start der Präsentation Beitraege erheben.html auf das Leinwandsymbol unten rechts klicken. Mit einem.
Der VFP Debugger - Coverage und Profiling. © 1999 TMN-Systemberatung GmbH Der VFP Debugger n Neues Aussehen, eigene Task n Erweiterte Möglichkeiten n.
Rushmore - Einführung oder wie Sie Fehler vermeiden.
Referat zum Thema „DLL“
Kakuro Regeln und Strategien
EDO-RAM,SDRAM,RDRAM,DDR2-SDRAM.
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
Einstellungen im Web für Outlook
Duo- und Quad Prozessor-Architektur
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
OMRON 1 FINS Befehle schicken mit CX – Server Lite Aufgabe :
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Von Patrik, Yannik, Marc und Luca
Ein Vortrag von Simon Bayer
Clean Code Software-Entwicklung als Handwerkskunst Thomas Nagel, November 2011.
Objectives Verstehen was unterDelegate verstanden wird
Algorithmen und Datenstrukturen Übungsmodul 3
Programmieren in Assembler
PHP: Operatoren und Kontrollstrukturen
Betriebssysteme Übung Tutorium „TLB & Virtual Memory“
Parallelisierung für Multiprozessor-Maschinen
Grundlagen der Übersetzung und Optimierung von Programmiersprachen
Hauptseminar: VLIW und EPIC1 VLIW und EPIC Hauptseminar “Techniken der Code-Optimierung für moderne Rechnerarchitekturen” SS/98 an der TU München von Christian.
Grundlagen von PowerPoint
Recovery    AIFB SS Grundlegende Annamen(1/2) Um den Erfolg der der Recovery-Maßnahmen zu gewährleisten, werden folgende Annahmen.
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
Greenstone. Theoretischer Teil Entstehung: Entwickelt vom New Zealand Digital Library Project an der Universität von Waikato Kooperation mit der UNESCO.
Aktueller Stand der Technik. Auf dem Markt sind heute bereits 64-Bit Mikrocontroller. Die meiste Verwendung finden allerdings noch immer die 8-Bit Modelle.
Binärbäume.
Dr. Klaus Ruhlig Technology & Product Consulting Sun Microsystems, München Skalierbare Rechnerarchitekturen für ein DWH: Eine vergleichende Analyse.
Praktische Informatik 1
מבוא למערכות מחשב ואסמבלי
 Präsentation transkript:

Hauptseminar: VLIW und EPIC1 VLIW und EPIC Hauptseminar “Techniken der Code-Optimierung für moderne Rechnerarchitekturen” SS/98 an der TU München von Christian Mailer (Betreuer Michael Eberl) gehalten am Donnerstag den

Hauptseminar: VLIW und EPIC2 Gliederung 1. Allgemeines zu VLIW 2. Allgemeines zu EPIC 3. Kurzinfo über Superblocks 4. Predication –4.1. Full predication –4.2. Partial predication 5. Speculation –5.1. Control speculation –5.2 Data speculation

Hauptseminar: VLIW und EPIC3 Gliederung 6. Predication und speculation vereint (basiert auf IMPACT EPIC) 7. Modelle für das exception-handling bei diesen Techniken 8. Ausblick 9. Quellenangaben

Hauptseminar: VLIW und EPIC4 1. Allgemeines zu VLIW VLIW = Very Long Instruction Word Codegenerierung ergänzt um abschließendes Scheduling zur Befehlszusammenfassung Compiler untersucht Unabhängigkeiten der Befehle anstatt CPU Unabhängige Instruktionen werden dann in VLIWs gepackt CPU kann sicher sein, daß Befehle in einem VLIW parallel ausgeführt werden können

Hauptseminar: VLIW und EPIC5 Allgemeines zu VLIW Vorteile: –Vereinfachung der Hardware –Compiler kann Parallelität durch Übersicht über ganzen Code besser extrahieren –durch den Aufbau der VLIWs können auch unterschiedliche Funktionseinheiten optimal ausgenutzt werden Nachteile: –sind nicht genug unabhängige Befehle vorhanden müssen i.a. die freien Slots durch NOPs verschwendet werden –höhere Ansprüche an Compiler –Problem der Abwärtskompatibilität

Hauptseminar: VLIW und EPIC6 VLIW-Compiler-Ablauf

Hauptseminar: VLIW und EPIC7 Aufbau der Multiflow VLIWs 1024 Bit lang, aufgeteilt in vier 256-Bitblöcke, die jeweils sieben Instruktionen enthalten, insgesamt also 28 Instruktionen pro VLIW schon 1985 von Multiflow definiert Um den Codeverschnitt zu minimieren werden NOPs komprimiert

Hauptseminar: VLIW und EPIC8 Aufbau der Multiflow VLIWs

Hauptseminar: VLIW und EPIC9 Aufbau der IA-64 VLIWs 128 Bit lang, enthält 3 Instruktionen und Template-Feld 1994 wurde mit der Entwicklung begonnen Template-Feld zur Vermeidung von NOPs genauere Bitaufteilung noch nicht bekannt

Hauptseminar: VLIW und EPIC10 Infos von INTEL über IA-64 komplette 64-Bit-Architektur 128 Elemente großes Registerfile full predication data speculation vollständige Abwärtskompatibilität (angeblich sogar in Hardware) Merced soll nun wohl gegen Ende 1999 erscheinen

Hauptseminar: VLIW und EPIC11 Infos von INTEL über IA-64

Hauptseminar: VLIW und EPIC12 Infos von INTEL über IA-64

Hauptseminar: VLIW und EPIC13 2. Allgemeines zu EPIC EPIC = Explicitly Parallel Intruction Computing EPIC beschreibt eine Sammlung von Techniken um ILP (Instruction Level Parallelism) auszubeuten. Kombinierte Soft- oder Hardwaretechniken zur Leistungssteigerung Synthese erzeugt oft deutlich bessere Resultate Verlagerung von Codeoptimierung von CPU zum Compiler Compiler erhält neue hardware-realisierte Werkzeuge zur Seite für weitere Optimierung

Hauptseminar: VLIW und EPIC14 Allgemeines zu EPIC Vorteile: –direkte Anpassung von Compiler und Hardware –statt Anpassung Neudesign –dadurch werden neue Technologien ermöglicht Nachteile: –noch höhere Ansprüche an Compiler –Verzicht auf etablierte Standards –Abwärtskompatibilität und Leistung alter Programme

Hauptseminar: VLIW und EPIC15 3. Kurzinfo Superblocks Superblocks sind keine eigentliche VLIW-Optimierung Ein Superblock hat nur einen Eingang, kann aber mehrere Ausgänge besitzen Durch diese Einschränkung kann man mehrere basic blocks zu einem größeren Superblock zusammenfassen. Ziel dieser Zusammenfassung ist Verzweigungen zu eliminieren. Teile des Codes werden vervielfacht und dadurch Sprünge unnötig gemacht. der Codeumfang steigt aber dabei an

Hauptseminar: VLIW und EPIC16 Superblock Diagramm

Hauptseminar: VLIW und EPIC17 Superblock Beispiel Wc ist das Linux-Programm Word Count. Auf den folgenden Folien stelle ich zuerst den Sourcecode der meist genutzten Schleife (main loop) dar. Danach den control flow graph (CFG) dieser Schleife und daneben der daraus entstandene Superblock.

Hauptseminar: VLIW und EPIC18 Superblock Beispiel

Hauptseminar: VLIW und EPIC19 CFG des Beispiels

Hauptseminar: VLIW und EPIC20 Predication ist eine Technik um Verzweigungen aufzulösen dadurch auch Auflösung von Abhängigkeiten (Aufbrechen der basic blocks) Compiler hat mehr Möglichkeiten für weitere Optimierungen anstatt von Sprüngen werden 1-Bit-Register (die predicates) beachtet Befehle werden dabei immer ausgeführt 4. Predication

Hauptseminar: VLIW und EPIC21 Predication aber Resultate werden nur noch bei gesetzten predicates (TRUE) gespeichert Pipelines müssen nicht mehr gefüllt werden v.a. keine mispredictions bei diesen ehemaligen Sprüngen mehr möglich zwei verschiedene Arten von Predication die ich weiter erläutern werde

Hauptseminar: VLIW und EPIC Full predication Voraussetzungen: –Das predicate-Register ist ein Set aus 1-Bit-Registern, die den Flags ähnlich sind. –Befehle um diese Register zu setzen oder zu löschen. –Jeder Befehl muß um die Möglichkeit ein predicate als Quelloperand angeben zu können erweitert werden.

Hauptseminar: VLIW und EPIC23 Beispiel

Hauptseminar: VLIW und EPIC24 Funktionsschema:

Hauptseminar: VLIW und EPIC25 Weitere Beispiele

Hauptseminar: VLIW und EPIC26 Weitere Beispiele

Hauptseminar: VLIW und EPIC Partial predication Voraussetzungen: –nur ein Teil der Befehle wird erweitert (v.a. für Erweiterung von vorhandenen Architekturen gedacht) –im Extremfall ein einziger Befehl, der conditional move. Syntax: CMOV SRC, DEST, COND Beschreibung: if (COND == TRUE) DEST = SRC; –Oft noch ein SELECT-Befehl Syntax: SELECT SRC1, SRC2, DEST, COND Beschreibung: if (COND == TRUE) DEST = SRC1 else DEST = SRC2; ideal für if-conversion, verringert Codeexpansion

Hauptseminar: VLIW und EPIC28 Partial predication Vorgehensweise: –erst full predicated code –dann erst Umwandlung in partial predicated code –Algorithmen für full predicated code erbringen bessere Resultate –daher Beschreibung der Techniken für Rückwandlung

Hauptseminar: VLIW und EPIC29 Techniken für full->partial pred. prinzipiell läßt sich jeder full predicated Befehl in zwei partial predicated aufspalten if (p1) R5 = R2 + R1 –ADD R1, R2, R5 (p1) –ADD R1, R2, RX CMOV RX, R5, p1 Problem: Codeverdoppelung Problem: Umwandlung der speziellen full predicated Instruktionen Technik: Predicate promotion – unnötige predicates wieder aufgelösen

Hauptseminar: VLIW und EPIC30 Techniken für full->partial pred.

Hauptseminar: VLIW und EPIC31 Techniken für full->partial pred. Technik: Basic Conversions –alle übrigen full predicated Konstrukte umgewandeln –Codeexpansion nicht vermeidbart –Beispiel: load Konstrukt: if (p1) R4 = MEM[ADDR] full: R4 = MEM[ADDR] (p1) partial: RX = MEM[ADDR] CMOV RX, R4, p1 –Beispiel: store Konstrukt: if (p3) MEM[ADDR] = R4 full: MEM[ADDR] = R4 (p3) partial: SELECT ADDR, SAFE, RX, p3 MOV MEM[RX],R4

Hauptseminar: VLIW und EPIC32 Techniken für full->partial pred.

Hauptseminar: VLIW und EPIC33 Techniken für full->partial pred. Technik: Peephole optimizations –Code nach basic conversions oft noch verbesserbar –Umwandlungen betrachten ja nur einzelne Instruktionen –bekannte Techniken: common subexpression elimination copy propagation dead code removal –dazu spezielle Fälle suchen und ausbessern, die standardmäßig häufig vorkommen (peepholes)

Hauptseminar: VLIW und EPIC34 Abschließendes Beispiel

Hauptseminar: VLIW und EPIC35 Predication-Info von HP

Hauptseminar: VLIW und EPIC36 Predication-Info von HP

Hauptseminar: VLIW und EPIC37 Predication-Info von HP

Hauptseminar: VLIW und EPIC38 Predication-Info von HP

Hauptseminar: VLIW und EPIC39 Predication Leistungsanalyse

Hauptseminar: VLIW und EPIC40 Predication Hitanalyse number of branches(MR), mispred.(MP), rate of mispred.(MPR)

Hauptseminar: VLIW und EPIC41 5. Speculation Befehle werden eine oder mehrere Ebenen im Code hinaufgestuft dadurch frühere Ausführung als eigentlich vorgesehen eigentlich Erweiterung der out-of-order-Technologie kann basic block übergreifendend Abhängigkeiten ändern data speculation bezieht sich auf load- oder store-Befehle –Sinn: Probleme durch Latenzzeiten zu vermeiden –durch Aufwertung werden ein paar Zyklen Reserve geschaffen –Problematik der load/store-Abhängigkeiten –Druck auf das Registerfile erhöht sich –spezielles exception-handling nötig

Hauptseminar: VLIW und EPIC42 Speculation Control speculation bezieht sich auf die Aufwertung der sonstigen Befehle –Sinn: Auflösung von Abhängigkeiten –Compiler kann dadurch wiederum besser schedulen –ebenfalls neues exception-handling nötig

Hauptseminar: VLIW und EPIC Data speculation

Hauptseminar: VLIW und EPIC44 Beispiel

Hauptseminar: VLIW und EPIC45 Speculation-Info von HP

Hauptseminar: VLIW und EPIC46 Speculation-Info von HP

Hauptseminar: VLIW und EPIC47 Speculation-Info von HP

Hauptseminar: VLIW und EPIC48 Speculation-Info von HP

Hauptseminar: VLIW und EPIC49 Speculation-Info von HP

Hauptseminar: VLIW und EPIC50 Speculation-Info von HP

Hauptseminar: VLIW und EPIC51 Speculation-Info von HP

Hauptseminar: VLIW und EPIC Control speculation normale Befehle wie ADD oder MUL werden vorgezogen bestimmte Hardwaresysteme können die Resultate temporär behandeln bis die entsprechende Bedingung ausgewertet ist ist dies nicht der Fall muß CPU in der Lage sein die Auswirkung des Befehls total zu tilgen: –z.B. durch shadow-Registerfile –hohe Hardware kosten ein Compiler kann freie slots durch spekulative Befehle füllen Druck auf Registerfile steigt

Hauptseminar: VLIW und EPIC53 Beispiel

Hauptseminar: VLIW und EPIC54 Beispiel

Hauptseminar: VLIW und EPIC55 6. Predication und speculation Die IMPACT EPIC-Studie verspricht noch bessere Resultate wenn beide Techniken kombiniert werden. Ergebnisse basieren auf IMPACT-Testcompiler, keine realen Ergebnisse vorhanden

Hauptseminar: VLIW und EPIC56 Beispiel

Hauptseminar: VLIW und EPIC57 Beispiel

Hauptseminar: VLIW und EPIC58 Performance

Hauptseminar: VLIW und EPIC59 7. exception handling normalerweise bei Fehlern sofort exception bei spekulativen Befehlen so nicht möglich Anforderungen: –keine exceptions dürfen verloren gehen –keine exceptions bei fehlspekulierten Befehlen –präzise Auftrittsangabe soll möglich sein –auch Möglichkeit load/store-Abhängigkeiten zu entschärfen Restriktionen: –Ziel der spekulierten Instruktion darf bis deren eigentlichen Position nicht benutzt werden –keine exception die Resultat verändert darf ausgelöst werden

Hauptseminar: VLIW und EPIC60 exception handling Verschiedene Modelle: –Restricted Percolation: hält beide Restriktionen ein, kann aber keine exception-auslösenden Instruktionen spekulieren, daher normales handling –General Percolation: Löst Restriktion 2 durch Umwandlung aller möglichen Auslöser in spezielle nicht auslösende oder ignorierende Befehle. Bei ignorierenden und exception Zielregister nicht definiert. Daraus resultiert eventuell nächste exception. Aber Ort nicht mehr feststellbar.

Hauptseminar: VLIW und EPIC61 exception handling Weitere Modelle: –Sentinel scheduling: nötige Erweiterungen: –jeder Befehl muß als spekulativ gekennzeichnet werden können (S-Bit) –jedes Register muß als exception behaftet gesetzt werden können (E-Bit) –eigene load-/store-Befehle (E-Bit) jede spekulierte Intruktion erhält Sentinel kann unspekulierter Befehl oder spezieller Sentinel sein => spekulierte Befehle in zwei Teile spalten: –spekulierter nicht auslösender Teil –nicht spekulativer aber falls nötig auslösender Teil tritt bei spekuliertem Teil Fehler auf wird E-Bit des Ziels gesetzt und Ziel enthält Adresse von Auslöser hat spekulierter Teil Quelle mit gesetztem E-Bit wird E-Bit des Ziels gesetzt und Adresse des Auslösers übernommen

Hauptseminar: VLIW und EPIC62 exception handling Fortsetzung sentinel scheduling: –tritt bei unspekuliertem Befehl kein Fehler auf wird E-Bit des Ziels gelöscht –ist bei unspekuliertem Befehl bei einer Quelle ein E-Bit gesetzt wird jetzt die exception gestartet und die in dieser Quelle enthaltene Adresse als Ort verwendet –sind bei einem unspekuliertem Befehl die E-Bits mehrerer Quellen gesetzt wird die erste verwendet –Probleme: von undefiniert genutzten Registern können exceptions ausgehen, wenn das E-Bit gesetzt ist bei multiplen exceptions in einem home block wird nicht unbedingt die richtige exception signalisiert

Hauptseminar: VLIW und EPIC63 Beispiele

Hauptseminar: VLIW und EPIC64 Beispiele

Hauptseminar: VLIW und EPIC65 Beispiel für recovery

Hauptseminar: VLIW und EPIC66 Performance

Hauptseminar: VLIW und EPIC67 exception handling Fortsetzung sentinel scheduling: –wie im letzten Beispiel gesehen ist mit dem sentinel scheduling auch ein „retry“ möglich –dieser findet z.B. bei multiplen exceptions in einem home block auch die anderen exceptions, allerdings nicht in der richtigen Reihenfolge –durch die Verwendung von einem Puffer für stores und einem weiterem Befehl, dem confirm_store(index) kann auch eine Spekulation von Stores erreicht werden

Hauptseminar: VLIW und EPIC68 8. Ausblick bis jetzt nur theoretische Ergebnisse erst (Ende) 1999 wird man mit dem Merced in der Lage sein die reale Leistung zu ermitteln Noch Fragen ??? (P.S.: Bitte nicht alle auf einmal......)

Hauptseminar: VLIW und EPIC69 Quellenangaben D. I. August, K. M. Crozier, J. W. Sias, P. R. Eaton, Q. B. Olaniran, D. A. Connors, and W. W. Hwu. Integrated Predicated and Speculative Execution in the IMPACT EPIC Architecture. Technical Report, IMPACT, University of Illinois, Urbana, IL, V. Kathail, M. S. Schlansker, and B. R. Rau. HPL Play­ Doh architecture specification: Version 1.0. Technical Report HPL­93­80, Hewlett­Packard Laboratories, Palo Alto, CA, February S. A. Mahlke, W. Y. Chen, R. A. Bringmann, R. E. Hank, W. W. Hwu, B. R. Rau, and M. S. Schlansker. Sentinel scheduling: A model for compiler­controlled speculative execution. ACM Transactions on Computer Systems, 11(4), November S. A. Mahlke, R. E. Hank, R. A. Bringmann, J. C. Gyllenhaal, D. M. Gallagher, and W. W. Hwu. Characterizing the impact of predicated execution on branch prediction. In Proceedings of the 27th International Symposium on Microarchitecture, pages , December S. A. Mahlke, R. E. Hank, J. McCormick, D. I. August, and W. W. Hwu. A comparison of full and partial predicated execution support for ILP processors. In Proceedings of the 22th International Symposium on Computer Architecture, pages , June 1995.

Hauptseminar: VLIW und EPIC70 Quellenangaben G. S. Tyson. The effects of predicated execution on branch prediction. In Proceedings of the 27th International Symposium on Microarchitecture, pages , December Kemal Ebcioglu, Randy D. Groves, Ki-Chang Kim, Gabriel M. Silberman and Isaac Ziv. VLIW Compilation Techniques in a Superscalar Environment. Wen-mei Hwu. Introduction to Predicated Execution. University of Illinios, Urbana- Champaign. Zeitschrift BYTE. Ausgabe Juli Intel IA-64 intern. Quellen im.ps Format bei: