HW/SW Codesign 5 - Performance



Ähnliche Dokumente
Einführung in die Systemprogrammierung

Algorithmen zur Integer-Multiplikation

Entwicklung von Partitionierungsstrategien im Entwurf dynamisch rekonfigurierbarer Systeme

Die Mikroprogrammebene eines Rechners

Mikrocontroller Grundlagen. Markus Koch April 2011

Einführung in die Welt der Microcontroller

Jürg Gutknecht, SI und ETH Zürich, April 2015

Das Prinzip an einem alltäglichen Beispiel

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember Bitte immer eine Reihe freilassen

WIE ERHÖHT MAN DIE EFFIZIENZ DES BESTEHENDEN RECHENZENTRUMS UM 75% AK Data Center - eco e.v. 1. Dezember 2009

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Softwarelösungen: Versuch 4

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Partitionierung von rechenintensiven Aufgaben zwischen FPGA und CPUs

ESPRIT-Installationsanleitung Version 2013

Excel beschleunigen mit dem mit Windows HPC Server 2008 R2

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de)

Raytracing auf Desktop PCs Optimizing Cache Usage (Intel Corp.)

Grundlagen der Rechnerarchitektur. Einführung

Einführung in die technische Informatik

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Super rechnen ohne Superrechner Oder: Was hat das Grid mit Monte Carlo zu tun?

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Grundlagen der Rechnerarchitektur

Hardware/Software-Codesign

Rechner Architektur. Martin Gülck

High Performance Datenerfassung Tests am Beispiel WEGA

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden.

4D Server v12 64-bit Version BETA VERSION

Computerarithmetik ( )

Codesigned Virtual Machines

Proseminar Technische Informatik A survey of virtualization technologies

Installationsanleitung

Tickt ihr Board noch richtig? Frequenzmessung durch ChipVORX als Ergänzung zum Boundary Scan Test. Dipl.-Ing. (FH) Martin Borowski

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Virtuelle Maschinen. von Markus Köbele

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme

BERNINA ArtLink 6 Installationsanleitung der Sticksoftware

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Persona-SVS e-sync GUI/Client Installation

Lösungsvorschlag zur 4. Übung

Prof. Dr. Norbert Pohlmann, Institut für Internet Sicherheit - if(is), Fachhochschule Gelsenkirchen. Lage der IT-Sicherheit im Mittelstand

GPGPU mit NVIDIA CUDA

Computer-Architektur Ein Überblick

Hyper-V Grundlagen der Virtualisierung

Protokollbeschreibung Modbus TCP für EMU TCP/IP Modul

Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn

Teil VIII Von Neumann Rechner 1

Installationsanleitung für Update SC-Line

J.6 Programmierung eingebetteter Systeme

STRG + A = STRG + C = STRG + X = STRG + V = STRG + Alt + Entf = STRG + S =

LEISTUNGSVERGLEICH VON FPGA, GPU UND CPU FÜR ALGORITHMEN ZUR BILDBEARBEITUNG PROSEMINAR INF-B-610

Einführung in Peer-To-Peer (P2P) Datenstreaming mit NI FlexRIO

VarioTAP Einführung Hosea L. Busse

Praktikum Digitaltechnik

Installation OMNIKEY 3121 USB

Technische Informatik - Eine Einführung

Embedded OS-9 auf RISC-Prozessoren von Motorola

DST EINFÜHRUNG IN MRT (V2)

Johann Wolfgang Goethe-Universität

Mikroprozessor als universeller digitaler Baustein

Einführung in die C++ Programmierung für Ingenieure

OSEK-OS. Oliver Botschkowski. PG AutoLab Seminarwochenende Oktober AutoLab

Installation LehrerConsole (für Version 6.2)

Windows Server 2008 (R2): Anwendungsplattform

Beispiele von Branch Delay Slot Schedules

Virtuelle Maschinen Konzept von VMWare

DVB-S Empfangsgerät, Videorecorder und Fernseher (Fernseher mit zwei Scart- (oder HDMI-)Eingängen)

1 Aufgaben zu Wie funktioniert ein Computer?

Emulation und Rapid Prototyping. Hw-Sw-Co-Design

Emulation und Rapid Prototyping

Woraus besteht ein Bild? (c) Winfried Heinkele

Kap 4. 4 Die Mikroprogrammebene eines Rechners

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Entwurf eines Generators zur Erzeugung von Hard- und Software-Beschreibungen für Bildverarbeitungspipelines

MATCHING VON PRODUKTDATEN IN DER CLOUD

Windows 8.1. Grundkurs kompakt. Markus Krimm, Peter Wies 1. Ausgabe, Januar inkl. zusätzlichem Übungsanhang K-W81-G-UA

Tag der Umweltmeteorologie Michael Kunz

Bitte unbedingt lesen! Update-Dokumentation

Lehrer: Einschreibemethoden

Zählen von Objekten einer bestimmten Klasse

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

miditech 4merge 4-fach MIDI Merger mit :

Computergruppe Heimerdingen Basiskurs. Karlheinz Wanja & Richard Zeitler

A1 Desktop Security Installationshilfe. Symantec Endpoint Protection 12.1 für Windows/Mac

Leichtathletik Datenverarbeitung Handbuch

in vielen technischen und wissenschaftlichen Anwendungen erforderlich: hohe Präzision große Dynamik möglich durch Verwendung von Gleitkommazahlen

INDEX. Netzwerk Überblick. Benötigte Komponenten für: Windows Server Windows Server 2008 R2. Windows Server 2012

Prozessor HC680 fiktiv

Alle Informationen zu Windows Server 2003 Übersicht der Produkte

INSTALLATION STHENO/PRO V1.2. Installation

CPU, GPU und FPGA. CPU, GPU und FPGA Maximilian Bandle, Bianca Forkel 21. November 2017

Transkript:

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