HW/SW Codesign 5 - Performance Martin Lechner e1026059 Computer Technology /29
Inhalt Was bedeutet Performance? Methoden zur Steigerung der Performance Einfluss der Kommunikation Hardware vs. Software Vergleich FPGA / ASIC Beispiel: GPU Computer Technology 23.11.2015 HW/SW Codesign 5. Performance, Martin Lechner 2/29
Was ist Performance? geringe Latenz Latenz Ausführungszeit des Algorithmus genauer: Zeit vom Anlegen von Inputs bis zur Erzeugung von Outputs in Taktzyklen oder Sekunden hoher Durchsatz Zeit, bis der Algorithmus einen neuen Input akzeptiert bei SW: Durchsatz Latenz geringe Größe SW: Speicherbedarf HW: Chipfläche Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 3/29
Was ist Performance? Framerate: bei bildverarbeitenden Algorithmen Übertragungsrate: bei Kommunikationssystemen FLOPS: bei Prozessoren FLOPS Floating point operations per second Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 4/29
Was ist Performance? Beispiel: Algorithmen zur Bildverarbeitung Algorithmus A Algorithmus B Latenz 3s 10s Durchsatz neuer Input alle 3s neuer Input alle 0,5s 1 Bild 3s 10s 3 Bilder 9s 11s 10 Bilder 30s 14,5s 1800 Bilder 90min ca. 15min Bildbearbeitung (zb. Photoshop): Algorithmus A Videobearbeitung: Algorithmus B Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 5/29
Methoden zur Steigerung der Performance Erhöhung der Taktrate mehr Parallelität Pipelining größere, schnellere Speicher (Cache, RAM) effizientere Operationen durch dezidierte Hardware Codeoptimierungen durch Compiler Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 6/29
Erhöhung der Taktrate Höhere Taktrate führt prinzipiell zur schnelleren Abarbeitung der Befehle (SW) und einer besseren Performance (HW) Einschränkungen bei HW (FPGA) maximaler Takt durch längsten kombinatorischen Pfad bestimmt für höheren Takt eventuell Redesign nötig Grenzen Verlustleistung (=Erwärmung) durch häufigere Schaltvorgänge der Transistoren Clock Skew: Taktflanken nicht überall gleichzeitig Extremfall: Mehrere Taktflanken gleichzeitig am Chip Vor allem im FPGA ein Problem Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 7/29
Erhöhung der Taktrate Bis 2006: Performancesteigerung von Prozessoren über höheren Takt Aussage von Intel Takt -20% Leistungsaufnahme -50% Performance -13% Dual Core 73% bessere Performance bei gleicher Leistung Herb Sutter, The Free Lunch Is Over [Sut09] Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 8/29
Mehr Parallelität Parallelität ist der wichtigste Performance Trend der letzten Jahre Auslöser Erreichen einer physikalischen Grenze bei der Taktrate Steigende Anzahl an verfügbaren Transistoren (Moore s Law, Design- Productivity-Gap) Voraussetzung für Performancegewinn ist die Parallelisierbarkeit des Algorithmus unabhängige Teilprozesse geringe Abhängigkeiten (data dependencies) typisches Beispiel: Bildverarbeitung (siehe GPU) Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 9/29
Speedup www.ict.tuwien.ac.at Mehr Parallelität Amdahl s Law S 1 1 P + P N 25 23 21 19 17 15 S (P = 1) S (P=0,9) S (P=0,75) S (P=0,5) S Speedup P parallelisierbarer Anteil N Anzahl Prozessoren 13 11 9 7 5 3 1 0 50 100 150 200 250 300 350 400 450 500 Anzahl Prozessoren Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 10/29
Pipelining Ziel: Bessere Ausnutzung des Taktes Befehle werden in mehrere Subbefehle aufgespaltet und quasiparallel abgearbeitet Durchsatz steigt bei gleichem Takt Beispiel: Prozessor IF Instuction Fetch ID Decode EXE Execute MEM Memory Operations WB Write Back Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 11/29
Pipelining Beispiel: FPGA Annahme: 2ns Ausführungszeit / Block ohne Pipelining Laufzeit zwischen zwei Registern: 10ns maximaler Takt: 100MHz Latenz: 1 Taktzyklus (10ns) Durchsatz: neuer Input nach 1 Taktzyklus (10ns) A E: Blöcke aus kombinatorischer Logik Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 12/29
Pipelining mit Pipelining Laufzeit zwischen zwei Registern: 2ns maximaler Takt: 500MHz Latenz: 5 Taktzyklen (10ns) Durchsatz: neuer Input nach 1 Taktzyklus (2ns) A E: Blöcke aus kombinatorischer Logik Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 13/29
Größere, schnellere Speicher (Cache) Ziel: Performancegewinn durch seltenere Zugriffe auf den RAM größerer Cache (und dadurch geringere Cache Miss Rate ) größere Anzahl interner Register Design-Productivity-Gap auch hier zum Teil Auslöser Speicherblöcke müssen nicht entwickelt werden Platzieren von zusätzlichen Blöcken kein großer Aufwand Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 14/29
Effizientere Operationen durch dezidierte Hardware Dezidierte Hardware ermöglicht kombinierte und effizientere Operationen Beispiel: MAC Einheit (Multiply-Accumulate) ermöglicht eine Multiplikation mit anschließender Addition in einem Taktzyklus ursprünglich in DSPs genutzt, heute auch in Intel CPUs verbreitet Beispiel: AGU (Address-Generation-Unit) Einheit zur parallelen Adressberechnung beinhaltet Counter, Schieberegister, Anwendung z.b. bei der FFT zur Bitreverse Adressierung Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 15/29
Codeoptimierungen durch Compiler Compiler erstellen nach zum Teil vom Benutzer vorgegebenen Zielen einen optimierten Assembler Code Beispiele für Optimierungen Dead Code Elimination (Entfernen von ungenützten Codezeilen) Einsparung von Maschinenbefehlen Inline Ersetzung (Integrieren eines Unterprogramms in den aufrufenden Programmteil) Optimierung von Schleifen (zusammenfassen, ausrollen, ) Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 16/29
Kommunikation Interprozesskommunikation (IPC): SW SW Pipes (Datenstrom zw. Prozessen mit FIFO Charakteristik gemeinsamer Speicherbereich Interrupts bzw. Interruptserviceroutinen (ISR): HW SW Bussysteme: HW HW (SW HW) I²C, SPI, AXI-Bus zwischen FPGA und Prozessor in Xilinx SoC Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 17/29
Kommunikation - Communication bottleneck Bottleneck durch schlechte Aufteilung P1 200 ops 850 Byte 6 kb 120 Byte P3 (4000 ops) 15 MB P4 (52000 ops) P2 (800 ops) 15kB P1 P4: HW oder SW Prozesse Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 18/29
Speedup www.ict.tuwien.ac.at Kommunikation - Communication bottleneck Bottleneck durch zu feine Aufteilung S 1 1 P + P +k N N N 25 23 21 19 17 15 13 S (P = 1) S (P=0,9) S (P=0,75) S (P=0,5) S Speedup P parallelisierbarer Anteil N Anzahl Prozessoren k(n) Overhead durch Kommunikation 11 9 7 5 3 1 0 50 100 150 200 250 300 350 400 450 500 Anzahl Prozessoren Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 19/29
Software versus FPGA Software fixe Architektur Algorithmus muss mit vorhandenen Ressourcen auskommen FPGA Architektur wird durch den Algorithmus bestimmt optimale Ressourcen (zb. Organisation und Größe des Speichers) Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 20/29
Vergleich FPGA / ASIC ASIC bietet durch mehr Freiheiten größeres Optimierungspotential höhere Performance möglich Vergleichswerte [Kou07] Chipfläche: A FPGA A ASIC = 17 35 critical path delay: t FPGA t ASIC = 3 3,5 / 4 4,8 [1] Leistungsverbrauch: P FPGA P ASIC = 7,1 14 [1] abhängig vom Speedgrade des FPGA Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 21/29
GPU Computing rechenintensive Algorithmen / Abschnitte werden auf Grafikkarten ausgelagert durch massive Parallelität wird ein großer Performancegewinn erzielt [1] Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 22/29
Beispiel: Nvidia Keppler GK110 Architektur massive Parallelität: 15 Multiprozessoren mit je 192 CUDA Kernen (single precision) mit vollwertiger 32 Bit ALU 64 CUDA Kernen (double precision) mit vollwertiger 64 Bit ALU effiziente Operationen 32 SFUs / Multiprozessor zur Näherung transzendenter Funktionen atomare Schreib- und Lesebefehle Speicher 12 GB GDDR5 2 2 16 (=131.072) 32-Bit Register / Multiprozessor SFU Special function unit Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 23/29
Beispiel: Nvidia Keppler GK110 Architektur Dynamic Parallelism zusätzliche parallele Prozesse können auf der GPU unabhängig von der CPU erstellt werden Performancegewinn durch reduzierten Kommunikations-Overhead [1] Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 24/29
Kepler GK110 block diagram SMX Architecture [NVI14] Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 25/29
Zusammenfassung Performance ist abstrakt mess- bzw. vergleichbare Größen nötig Latenz, Durchsatz, Methoden zur Steigerung der Performance Communication Bottleneck Limitierung der Performancesteigerung bei Parallelität Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 26/29
Thank you for your attention! Computer Technology 23.11.2015 HW/SW Codesign 5. Performance, Martin Lechner 27/29
Quellenverzeichnis [Kuo07] [NVI14] [Sut09] Ian Kuon, Jonathan Rose, Measuring the Gap Between FPGAs and ASICs in IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. 26, NO. 2, Februar 2007 Whitepaper NVIDIA s Next Generation CUDA Compute Architecture: Kepler TM GK110/210, V 1.1, 2014 Herb Sutter, The Free Lunch Is Over - A Fundamental Turn Toward Concurrency in Software (http://www.gotw.ca/publications/concurrency-ddj.htm), 2009 [XIL13] Xilinx, Introduction to FPGA Design with Vivado High-Level Synthesis UG998, V 1.0, Juli 2013 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0165b/i1028296.html [1] http://www.nvidia.de/object/gpu-computing-de.html Computer Technology HW/SW Codesign 5. Performance, Martin Lechner 28/29