07.11.2013 Aufrufe

Entwurf eines FPGA-Cores zur ... - real-time

Entwurf eines FPGA-Cores zur ... - real-time

Entwurf eines FPGA-Cores zur ... - real-time

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Entwurf</strong> <strong>eines</strong> <strong>FPGA</strong>-<strong>Cores</strong> <strong>zur</strong><br />

Simulationsbeschleunigung zeitkontinuierlicher<br />

Modelle im HiL Kontext<br />

Till Fischer 03.11.2011<br />

FZI Forschungszentrum Informatik<br />

Embedded Systems & Sensors Engineering (ESS)<br />

Diplomarbeit FZI / KIT (ehem. Universität Karlsruhe), Februar 2011


Überblick<br />

• Motivation<br />

• Lösungsansatz<br />

• Architektur<br />

• Ergebnisse<br />

• Ausblick<br />

03.11.2011 © FZI Forschungszentrum Informatik 2


Motivation<br />

• Hardware-in-the-Loop (HiL) Test<br />

• Umgebungssimulation für Steuergeräte z.B. im Automobilbereich<br />

HiL Simulator<br />

Umgebungsmodell<br />

Unit Under Test:<br />

µController,<br />

eingebettetes System<br />

Signalmessung<br />

und -bereitstellung<br />

©BMW<br />

Echtzeitrechner<br />

©Atmel<br />

©MBtech<br />

03.11.2011<br />

© FZI Forschungszentrum Informatik 3


Motivation<br />

• Beschreibung der Umgebung mittels Differentialgleichungen<br />

• Sehr kurze Zykluszeit: bis in den Bereich von µs (!)<br />

• Problem wenn DGL nicht im Voraus lösbar<br />

‣ neue Lösung in jedem Iterationsschritt erforderlich<br />

‣ Echtzeitanforderung<br />

• Verwendung numerischer Verfahren<br />

• Explizite und implizite Verfahren<br />

• Implizite Verfahren: erhöhte numerische Stabilität<br />

• Lösung von Gleichungssystem in jedem Iterationsschritt<br />

03.11.2011<br />

© FZI Forschungszentrum Informatik 4


LESCore: IP-Core für <strong>FPGA</strong>s<br />

• LESCore: Linear Equation Solver Core<br />

• IP-Core <strong>zur</strong> Lösung linearer Gleichungssysteme in Hardware<br />

A, b LESCore x<br />

03.11.2011<br />

© FZI Forschungszentrum Informatik 5


Lösungsansatz<br />

Direkte Verfahren<br />

Gauß-Algorithmus<br />

LR-Zerlegung<br />

QR-Zerlegung<br />

Cholesky-Verfahren<br />

Umformung Koeffizientenmatrix A in Rechtsdreiecksmatrix<br />

Lösen durch „Rückwärtseinsetzen“<br />

Abwandlung des Gauß-Algorithmus: Zerlegung von A in zwei<br />

Matrizen L und R mit A=L∙R<br />

Wiederverwendbarkeit der Zerlegung<br />

Weniger anfällig für Rundungsfehler, doppelte Laufzeit<br />

Nur für symmetrische, positiv definite Matrizen<br />

Iterative Verfahren<br />

z.B. Krylow-Unterraum Verfahren<br />

Effizient für sehr große Systeme<br />

Konvergenzverhalten abhängig von Initiallösung<br />

Mehr Kontrollfluss als direkte Verfahren<br />

21.11.2011 © FZI Forschungszentrum Informatik 6


Lösungsansatz<br />

Direkte Verfahren<br />

Gauß-Algorithmus<br />

LR-Zerlegung<br />

QR-Zerlegung<br />

Cholesky-Verfahren<br />

Umformung Koeffizientenmatrix A in Rechtsdreiecksmatrix<br />

Lösen durch „Rückwärtseinsetzen“<br />

Abwandlung des Gauß-Algorithmus: Zerlegung von A in zwei<br />

Matrizen L und R mit A=L∙R<br />

Wiederverwendbarkeit der Zerlegung<br />

Weniger anfällig für Rundungsfehler, doppelte Laufzeit<br />

Nur für symmetrische, positiv definite Matrizen<br />

Iterative Verfahren<br />

z.B. Krylow-Unterraum Verfahren<br />

Effizient für sehr große Systeme<br />

Konvergenzverhalten abhängig von Initiallösung<br />

Mehr Kontrollfluss als direkte Verfahren<br />

21.11.2011 © FZI Forschungszentrum Informatik 7


Lösungsansatz<br />

Paralleler Zugriff<br />

a 11 a 12 ... a 1n b 1<br />

r 11 r 12 ... r 1n b 1<br />

a 21 a 22 … a 2n b 2<br />

<br />

0 r 22 … r 2n b 2<br />

...<br />

...<br />

...<br />

...<br />

...<br />

...<br />

...<br />

a n1 a n2 … a nn b n<br />

0 … 0 r nn b n<br />

• Erzeugung von „Nullen“ unterhalb der<br />

Hauptdiagonalen durch<br />

Linearkombination von Zeilen<br />

• Pivotierung/Zeilenvertauschung:<br />

Vermeidung von Rundungsfehlern<br />

‣ Suche nach Maximum innerhalb einer<br />

Spalte<br />

‣ Breite Speicherschnittstelle für parallelen<br />

Zugriff<br />

‣ Replizierte Recheneinheiten (SIMD)<br />

‣ Cache für Koeffizienten einer Spalte<br />

‣ Pivotierung löst außerdem Problem<br />

„Division durch Null“<br />

21.11.2011 © FZI Forschungszentrum Informatik 8


Lösungsansatz<br />

• Ausreizen der möglichen Parallelität<br />

• Suche nach Maximum (Pivotierung)<br />

• „Einsetzen“ <strong>zur</strong> Bestimmung des Lösungsvektors<br />

a 11 a 21 a 31 a 41 a 51 a 61<br />

b 1 r 11 r 12 r 13 r 14<br />

+ +<br />

≥<br />

≥<br />

≥<br />

≥<br />

+<br />

≥<br />

-<br />

21.11.2011 © FZI Forschungszentrum Informatik 9


LESCore Architektur<br />

Designparameter:<br />

• Floating-Point Format<br />

• Parallelität N<br />

• Speichergröße<br />

21.11.2011 © FZI Forschungszentrum Informatik 10


Test<br />

• Simulation mit ModelSim<br />

• Prototyp auf Xilinx® Virtex 6 <strong>FPGA</strong><br />

• Zusätzliche Module für<br />

Kommunikation zwischen<br />

Host-PC <strong>FPGA</strong><br />

• ChipScope Pro<br />

• Integrated Controller (ICON)<br />

• Virtual I/O (VIO)<br />

21.11.2011 © FZI Forschungszentrum Informatik 11


Auswertung<br />

• <strong>FPGA</strong> Ressourcen (Virtex 6 VLX240T-1)<br />

45%<br />

25%<br />

14549<br />

40% bram_depth=128<br />

35%<br />

20%<br />

30%<br />

25%<br />

Slices<br />

15%<br />

7688<br />

20%<br />

BRAMs<br />

10%<br />

15%<br />

99 DSPs<br />

3926<br />

10% 2547<br />

51<br />

33<br />

5%<br />

17<br />

5% 5 15 9<br />

27<br />

0%<br />

0%<br />

4 8 16 32<br />

N<br />

N=16<br />

7688 7493<br />

7640<br />

6658<br />

17 17 17 17<br />

7738<br />

6923<br />

68<br />

Slices<br />

34<br />

BRAMs<br />

128 256 512 1024 2048 4096<br />

bram_depth<br />

14%<br />

12%<br />

10%<br />

N=4<br />

bram_depth=128<br />

4659<br />

8%<br />

6%<br />

4%<br />

2%<br />

2547<br />

5<br />

15<br />

10<br />

55<br />

Slices<br />

BRAMs<br />

DSPs<br />

0%<br />

single<br />

double<br />

21.11.2011 © FZI Forschungszentrum Informatik 12


Auswertung<br />

• Erreichbare Taktrate:<br />

• Virtex 6 VLX240T-1<br />

• Inklusive Host-PC Interface (ChipScope Pro ICON + VIO)<br />

Design XST (Post Synthese) PAR (Post Place & Route)<br />

N=4, bram_depth=128,<br />

IEEE-754 single<br />

N=32, bram_depth=2048,<br />

IEEE-754 single<br />

164 MHz 187 MHz<br />

156 MHz 82 MHz<br />

21.11.2011 © FZI Forschungszentrum Informatik 13


Execution Time @ 100Mhz (ms)<br />

Auswertung<br />

• Schlechtester Fall:<br />

• Immer Zeilenvertauschung<br />

• Alle Koeffizienten ≠ 0<br />

10<br />

9<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

N = 4<br />

N = 8<br />

N = 16<br />

N = 32<br />

2<br />

1<br />

0<br />

4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64<br />

Dimension<br />

21.11.2011 © FZI Forschungszentrum Informatik 14


Execution Time @ 100Mhz (ms)<br />

Auswertung<br />

• Schlechtester Fall:<br />

• Immer Zeilenvertauschung<br />

• Alle Koeffizienten ≠ 0<br />

Vergleich mit Intel Core2Duo (1 Kern):<br />

Matlab<br />

OpenCV (SSE)<br />

10<br />

9<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

N = 4<br />

N = 8<br />

N = 16<br />

N = 32<br />

Matlab<br />

OpenCV<br />

1<br />

0<br />

4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64<br />

Dimension<br />

21.11.2011 © FZI Forschungszentrum Informatik 15


Zusammenfassung + Ausblick<br />

• Flexibel, einfache Anpassung durch Parameter<br />

• Einfache Schnittstelle (identisch mit BRAM Speicher)<br />

• Speed-Up gegenüber Lösung mittels embedded Software bei Auslastung<br />

von nur 20% der <strong>FPGA</strong>-Ressourcen<br />

• Fixed-Point Arithmetik<br />

• Deutliche Ressourceneinsparung<br />

• Steigerung der Performanz<br />

• Großes Optimierungspotential in Zustandsautomaten (Handshakes)<br />

• Ausnutzung der Pipeline in Floating-Point IP-<strong>Cores</strong><br />

21.11.2011 © FZI Forschungszentrum Informatik 16

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!