Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Energiebewusste Compilierung für digitale Signalprozessoren Markus Lorenz Peter Marwedel Universität Dortmund Lehrstuhl Informatik XII Projekt Prozessorarchitekturen.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Energiebewusste Compilierung für digitale Signalprozessoren Markus Lorenz Peter Marwedel Universität Dortmund Lehrstuhl Informatik XII Projekt Prozessorarchitekturen."—  Präsentation transkript:

1 1 Energiebewusste Compilierung für digitale Signalprozessoren Markus Lorenz Peter Marwedel Universität Dortmund Lehrstuhl Informatik XII Projekt Prozessorarchitekturen und Compilertechniken zur verlustarmen digitalen Signalverarbeitung

2 2 Projektübersicht DORTMUND: Schwerpunkt Compiler- techniken DRESDEN: Schwerpunkt Prozessor- architektur DSP-Compiler- Know-How DSP-HW- Know-How HW/SW-Exploration Energie-Kostenmodell HW-Ausnutzung Verbesserungsvorschläge Modell der Leistungsaufnahme Realisierbarkeit Teilziel Entwicklung energiebewusster Compilertechniken Teilziel Entwicklung energiebewusster Prozessorarchitekturen Gesamtziel Energiereduzierung prozessorbasierter DSP-Systeme

3 3 skalierbare Anzahl irregulärer Datenpfade SIMD/SISD Verarbeitung spezielle Speicher- schnittstelle AGU HW-Schleifen 4-stufige Pipeline mehrere Ansätze für Optimierungen M3-DSP Plattform: M3-DSP

4 4 Ziel: Entwicklung eines (energie-) optimierenden Compilers Handhabung der irregulären Prozessorarchitektur -Gruppenspeicher -Verbindungsnetzwerk -Datenpfad (SISD/SIMD-Verarbeitung) modulare Integration von (Energie-) Optimierungen -effektive Ausnutzung der Hardware-Ressourcen -Minimierung der Switchingaktivitäten Verwendung generischer Konzepte ( HW/SW-Exploration) Bedarf an geeigneter Compilerinfrastruktur neuen Optimierungstechniken phasengekoppelter Codegenerator ( letzter Workshop) Schleifen-Optimierungen ( heute) Compiler: Anforderungsanalyse

5 5 Compilierungsablauf C-SrcAsm Lance2 Frontend IR to GeLIR to Asm IR Standard- Optimierungen prozessorunabhängigprozessorabhängig GeLIR to Sim Sim GeLIR Codegenerierung Adresscode-Generierung Schleifen-Optimierungen - Vektorisierung - HW-Schleifen (ZOL) Energie- Daten GeLIR (Generic Low-Level Intermediate Representation) Darstellung prozessorspezifischer Informationen Austauschformat zwischen Optimierungsphasen Darstellung alternativer Maschinenprogramme

6 6 Vektorisierung: Beispiel (1) for(i = 0; i < 64; i++) { x = A[i]; x = x + 2; B[i] = x; } C-Code i = 0; // {SIMD_LDI, LDI} LOOP: t1 = A[i];// {SIMD_Load} t2 = t1;// {SIMD_DT, DT} x = t2 + 2;// {SIMD_Add, Add} B[i] = x;// {SIMD_Store} i = i + 1;// {SIMD_Add, Add} t3 = i < 64;// {Compare} if(t3) goto LOOP;// {JNE} GeLIR vor Vektorisierung Frontend Generierung von 3-Adresscode und Zerlegung von Schleifen Einfügen potentieller Datentransfers Erzeugung alternativer Maschinenprogramme

7 7 Vektorisierung: Beispiel (2) i = 0; // {SIMD_LDI, LDI} LOOP: t1 = A[i];// {SIMD_Load} t2 = t1;// {SIMD_DT, DT} x = t2 + 2;// {SIMD_Add, Add} B[i] = x;// {SIMD_Store} i = i + 1;// {SIMD_Add, Add} t3 = i < 64;// {Compare} if(t3) goto LOOP;// {JNE} GeLIR-Code vor Vektorisierung i = 0; // {LDI} LOOP: t1 = A[i];// {SIMD_Load} t2 = t1;// {SIMD_DT} x = t2 + 2;// {SIMD_Add} B[i] = x;// {SIMD_Store} i = i + 16;// {Add} t3 = i < 64;// {Compare} if(t3) goto LOOP;// {JNE} GeLIR nach Vektorisierung Reduzierung der Anzahl Schleifendurchläufe von 64 auf 4 Vermeidung des Overheads zur Gruppenhandhabung im SISD-Modus

8 8 HW-Schleifen: Beispiel GeLIR-Code nach Vektorisierung i = 0; // {LDI} LOOP: t1 = A[i];// {SIMD_Load} t2 = t1;// {SIMD_DT} x = t2 + 2;// {SIMD_Add} B[i] = x;// {SIMD_Store} i = i + 16;// {Add} t3 = i < 64;// {Compare} if(t3) goto LOOP;// {JNE} i = 0;// {LDI} zloop(4); LOOP: t1 = A[i];// {SIMD_Load} t2 = t1;// {SIMD_DT} x = t2 + 2;// {SIMD_Add} B[i] = x;// {SIMD_Store} i = i + 16;// {Add} zgoto LOOP; GeLIR mit HW-Schleifen HW-Loop Testen der Abbruchbedingung erfolgt durch Hardware gute Ergänzung zur Vektorisierung

9 9 Experimentelle Ergebnisse (1) rel. #Speicherzugriffe in % 95%96%46%-13%10%

10 10 Experimentelle Ergebnisse (2) rel. Zyklenzahl in % 95%96%51%11%30%

11 11 Experimentelle Ergebnisse (3) rel. Energieverbrauch in % 94% 49%8%17%

12 12 Experimentelle Ergebnisse (4) rel. Energieverbrauch in % 24% 17%19%

13 13 Projektziel: Energiereduzierung prozessorbasierter DSP-Systeme durch simultane HW- und SW-Entwicklung Zusammenfassung irreguläre Architekturen erfordern neue Compilertechniken Integration von Energiekostenmodell in Compiler und Simulator phasengekoppelter energiebewusster Codegenerator ( letzter WS) Ausblick: Verbesserung der Vektorisierung HW/SW-Exploration in Kooperation mit TU Dresden Heute: Schleifen-Optimierungen: Vektorisierung und HW-Schleifen aufwändige Analysen erforderlich Prozentuale Verbesserungen im Durchschnitt: Vektor: Speicherzugriffe: 47%, Zyklenzahl: 57%, Energie: 52% HW-Schleifen: Energie: 21% Integration der Optimierungen in allgemeine Compiler-Umgebung Einsatz der Techniken für andere Architekturen möglich


Herunterladen ppt "1 Energiebewusste Compilierung für digitale Signalprozessoren Markus Lorenz Peter Marwedel Universität Dortmund Lehrstuhl Informatik XII Projekt Prozessorarchitekturen."

Ähnliche Präsentationen


Google-Anzeigen