13
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

Energiebewusste Compilierung für digitale Signalprozessoren

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

Page 1: Energiebewusste Compilierung für digitale Signalprozessoren

1

Energiebewusste Compilierung fürdigitale Signalprozessoren

Markus Lorenz

Peter MarwedelUniversität Dortmund

Lehrstuhl Informatik XII

ProjektProzessorarchitekturen und Compilertechnikenzur verlustarmen digitalen Signalverarbeitung

Page 2: Energiebewusste Compilierung für digitale Signalprozessoren

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

Page 3: Energiebewusste Compilierung für digitale Signalprozessoren

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

Page 4: Energiebewusste Compilierung für digitale Signalprozessoren

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

Page 5: Energiebewusste Compilierung für digitale Signalprozessoren

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

Page 6: Energiebewusste Compilierung für digitale Signalprozessoren

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

Page 7: Energiebewusste Compilierung für digitale Signalprozessoren

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

Page 8: Energiebewusste Compilierung für digitale Signalprozessoren

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

Page 9: Energiebewusste Compilierung für digitale Signalprozessoren

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%

Page 10: Energiebewusste Compilierung für digitale Signalprozessoren

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%

Page 11: Energiebewusste Compilierung für digitale Signalprozessoren

11

020406080

100120140160180

unoptimiert

ZOL

vector

vector+ZOL

vector+ZOL+GCG

Experimentelle Ergebnisse (3)

rel. Energieverbrauch in %

94%94% 49% 8% 17%

Page 12: Energiebewusste Compilierung für digitale Signalprozessoren

12

020406080

100120

unoptimiert

ZOL

ZOL+GCG

Experimentelle Ergebnisse (4)

rel. Energieverbrauch in %

24% 24% 17% 19%

Page 13: Energiebewusste Compilierung für digitale Signalprozessoren

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