Upload
brenna-hardin
View
26
Download
5
Embed Size (px)
DESCRIPTION
Energiebewusste Compilierung für digitale Signalprozessoren. Projekt Prozessorarchitekturen und Compilertechniken zur verlustarmen digitalen Signalverarbeitung. Markus Lorenz Peter Marwedel Universität Dortmund Lehrstuhl Informatik XII. Teilziel Entwicklung energiebewusster - PowerPoint PPT Presentation
Citation preview
1
Energiebewusste Compilierung fürdigitale Signalprozessoren
Markus Lorenz
Peter MarwedelUniversität Dortmund
Lehrstuhl Informatik XII
ProjektProzessorarchitekturen und Compilertechnikenzur verlustarmen digitalen Signalverarbeitung
2Projektübersicht
DORTMUND:Schwerpunkt
Compiler-techniken
DRESDEN:SchwerpunktProzessor-architektur
DSP-Compiler-Know-How
DSP-HW-Know-How
HW/SW-Exploration Energie-Kostenmodell
HW-AusnutzungVerbesserungsvorschläge
Modell der LeistungsaufnahmeRealisierbarkeit
TeilzielEntwicklung
energiebewussterCompilertechniken
TeilzielEntwicklung
energiebewussterProzessorarchitekturen
GesamtzielEnergiereduzierungprozessorbasierter
DSP-Systeme
3
Inte r C o m m unic a tio n Unit
Ac c u
Inte rm e d ia te Re g iste r M
A B C D
Ac c uAc c u Loc
al C
om
mun
ica
tion
...Lo
ca
l Co
mm
unic
atio
n
Loc
al C
om
mun
ica
tion
M ACALU
M ACALU
M ACALU
slic e0 151
A B C D
AG U Wid e Da ta M e m o ry (G ro up M e m o ry)(16 x 16) b it
• 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
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
5Compilierungsablauf
C-Src AsmLance2
FrontendIR to
GeLIRGeLIRto AsmIR
Standard-Optimierungen
prozessorunabhängig prozessorabhängig
GeLIRto 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
6Vektorisierung: 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 vorVektorisierung
Frontend
Generierung von 3-Adresscode und Zerlegung von Schleifen Einfügen potentieller Datentransfers Erzeugung alternativer Maschinenprogramme
7Vektorisierung: 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 vorVektorisierung
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 nachVektorisierungVektorisierung
Reduzierung der Anzahl Schleifendurchläufe von 64 auf 4 Vermeidung des Overheads zur Gruppenhandhabung im SISD-Modus
8HW-Schleifen: Beispiel
GeLIR-Code nachVektorisierung
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 mitHW-Schleifen
HW-Loop
Testen der Abbruchbedingung erfolgt durch Hardware gute Ergänzung zur Vektorisierung
9
0
20
40
60
80
100
120
140
unoptimiert
ZOL
vector
vector+ZOL
vector+ZOL+GCG
Experimentelle Ergebnisse (1)
rel. #Speicherzugriffe in %
95%96% 46% -13% 10%
10
0
20
40
60
80
100
120
140
160
unoptimiert
ZOL
vector
vector+ZOL
vector+ZOL+GCG
Experimentelle Ergebnisse (2)
rel. Zyklenzahl in %
95%96% 51% 11% 30%
11
020406080
100120140160180
unoptimiert
ZOL
vector
vector+ZOL
vector+ZOL+GCG
Experimentelle Ergebnisse (3)
rel. Energieverbrauch in %
94%94% 49% 8% 17%
12
020406080
100120
unoptimiert
ZOL
ZOL+GCG
Experimentelle Ergebnisse (4)
rel. Energieverbrauch in %
24% 24% 17% 19%
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