1 / 70

VLIW und EPIC

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 09.07.1998. Gliederung. 1. Allgemeines zu VLIW 2. Allgemeines zu EPIC 3. Kurzinfo über Superblocks

erik
Download Presentation

VLIW und EPIC

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 09.07.1998 Hauptseminar: VLIW und EPIC

  2. 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 EPIC

  3. 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 EPIC

  4. 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 EPIC

  5. 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 EPIC

  6. VLIW-Compiler-Ablauf Hauptseminar: VLIW und EPIC

  7. 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 EPIC

  8. Aufbau der Multiflow VLIWs Hauptseminar: VLIW und EPIC

  9. 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 EPIC

  10. 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 EPIC

  11. Infos von INTEL über IA-64 Hauptseminar: VLIW und EPIC

  12. Infos von INTEL über IA-64 Hauptseminar: VLIW und EPIC

  13. 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 EPIC

  14. 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 EPIC

  15. 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 EPIC

  16. Superblock Diagramm Hauptseminar: VLIW und EPIC

  17. 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 EPIC

  18. Superblock Beispiel Hauptseminar: VLIW und EPIC

  19. CFG des Beispiels Hauptseminar: VLIW und EPIC

  20. 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 EPIC

  21. 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

  22. 4.1. 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 EPIC

  23. Beispiel Hauptseminar: VLIW und EPIC

  24. Funktionsschema: Hauptseminar: VLIW und EPIC

  25. Weitere Beispiele Hauptseminar: VLIW und EPIC

  26. Weitere Beispiele Hauptseminar: VLIW und EPIC

  27. 4.2. 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 EPIC

  28. 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 EPIC

  29. 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 EPIC

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

  31. 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 EPIC

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

  33. 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 EPIC

  34. Abschließendes Beispiel Hauptseminar: VLIW und EPIC

  35. Predication-Info von HP Hauptseminar: VLIW und EPIC

  36. Predication-Info von HP Hauptseminar: VLIW und EPIC

  37. Predication-Info von HP Hauptseminar: VLIW und EPIC

  38. Predication-Info von HP Hauptseminar: VLIW und EPIC

  39. Predication Leistungsanalyse Hauptseminar: VLIW und EPIC

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

  41. 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 EPIC

  42. 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

  43. 5.1. Data speculation Hauptseminar: VLIW und EPIC

  44. Beispiel Hauptseminar: VLIW und EPIC

  45. Speculation-Info von HP Hauptseminar: VLIW und EPIC

  46. Speculation-Info von HP Hauptseminar: VLIW und EPIC

  47. Speculation-Info von HP Hauptseminar: VLIW und EPIC

  48. Speculation-Info von HP Hauptseminar: VLIW und EPIC

  49. Speculation-Info von HP Hauptseminar: VLIW und EPIC

  50. Speculation-Info von HP Hauptseminar: VLIW und EPIC

More Related