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

Ähnliche Dokumente
Grafikkarten-Architektur

CUDA. Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Jürgen Pröll 1

Praxiseinheit: Realisierung einer hardwarebeschleunigten Disparitätenberechnung zur automatischen Auswertung von Stereobildern

OpenCL. OpenCL. Boris Totev, Cornelius Knap

RST-Labor WS06/07 GPGPU. General Purpose Computation On Graphics Processing Units. (Grafikkarten-Programmierung) Von: Marc Blunck

General Purpose Computation on GPUs

2 Rechnerarchitekturen

Datenflussrechnen mit FPGAs für die biomedizinische Bildverarbeitung

technische universität dortmund Lehrstuhl für Hochfrequenztechnik Übertragungssysteme

K&R Monza Office, Internet und Multimedia-PC!

COOL HASHING MIT FPGAS. Robert Bachran

HW/SW Codesign 5 - Performance

Multicore Herausforderungen an das Software-Engineering. Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück

Programmierbeispiele und Implementierung. Name: Michel Steuwer

Multiprozessor System on Chip

Extrablatt IT. MADE IN GERMANY.

Gliederung. Was ist CUDA? CPU GPU/GPGPU CUDA Anwendungsbereiche Wirtschaftlichkeit Beispielvideo

Compute Unified Device Architecture CUDA

Inhalt. Prozessoren. Curriculum Manfred Wilfling. 28. November HTBLA Kaindorf. M. Wilfling (HTBLA Kaindorf) CPUs 28. November / 9

GPGPU-Architekturen CUDA Programmiermodell Beispielprogramm. Einführung CUDA. Ralf Seidler. Friedrich-Alexander-Universität Erlangen-Nürnberg

Hochleistungsberechnungen für Industrie und Weltraum

Untersuchung und Vorstellung moderner Grafikchiparchitekturen

One of the few resources increasing faster than the speed of computer hardware is the amount of data to be processed. Bin Hu

neue Horizonte eröffnen.

Breaking a Cryptosystem using Power Analysis

Die Vision Landschaft und was sie mit Moore s Gesetz zu tun hat

Multicore-Architekturen

World of Warcraft. Mindestvoraussetzungen

Prodatic Angebote 2014

EyeCheck Smart Cameras

Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn

Programmierbare Logik CPLDs. Studienprojekt B Tammo van Lessen

5. Clusteranalyse. Lernziele: Grundlegende Algorithmen der Clusteranalyse kennen, ihre Eigenschaften

5. Clusteranalyse Vorbemerkungen. 5. Clusteranalyse. Grundlegende Algorithmen der Clusteranalyse kennen, ihre Eigenschaften

Ein Unternehmen der Firmengruppe:

Öffnungszeiten: Mo. - Fr.: Uhr Sa.: Uhr. Wochen Angebote. 520MB/s read 300MB/s write 45,- Software Windows7 Dell Lizenz

Entwurf eines FPGA-Cores zur Simulationsbeschleunigung zeitkontinuierlicher Modelle im HiL Kontext

Die gezeigten Abbildungen dienen als Symbolfotos. Irrtümer, Druckfehler und Preisänderungen vorbehalten.

Computer-Architektur Ein Überblick

Vergleich von Forward und Deferred Rendering

Optimierung eines neuen Logarithmic-Search-Verfahrens zum Image Mosaicing unter Einsatz des CUDA-Frameworks

ESPRIT-Installationsanleitung Version 2013

GPGPU mit NVIDIA CUDA

Milliarden in Sekunden: Demo zu PureData for Analytics. Marc Bastien Senior Technical Professional Big Data, IBM

MULTICORE- UND GPGPU- ARCHITEKTUREN

Siemons EDV-Service GbR. Heike Siemon

Untersuchung der Berechnung der 3D-Punktkorrelation auf hochparallelen Plattformen

Rechnerorganisation und Rechnerentwurf

Anwendungsgebiete unterschiedlicher FPGA-basierter. Marco Kirschke INF-M2 Anwendung 2 Sommersemester Mai 2010

Thema: Hardware-Shader

Convey, Hybrid-Core Computing

Teil VIII Von Neumann Rechner 1

Übersicht aktueller heterogener FPGA-SOCs

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P

Gerät Preis* CPU, VGA, HD, RAM Ausstattung

Protokoll zur Lehrveranstaltung Rechnerorganisation I. Gruppe Compute PC with GTX 260/280 :

Standardsoftware für die Industrielle Bildverarbeitung

SPARC LDom Performance optimieren

GPGPU-Architekturen CUDA Programmiermodell Beispielprogramm Organiosatorisches. Tutorial CUDA. Ralf Seidler

Aquado 1599,00 ANGEBOT / DATENBLATT. Notebook. Travel & work economy! Aquado Notebooks arbeiten zuverlässig und stromsparend in jeder Situation.

Mesh-Visualisierung. Von Matthias Kostka. Visualisierung großer Datensätze

Ersa IRSoft/ImageDoc/HRSoft Software

Client: min. Intel Pentium IV oder höher bzw. vergleichbares Produkt

Games with Cellular Automata auf Parallelen Rechnerarchitekturen

Impulse C. Seminar Ausgewählte Themen in Hardwareentwurf und Optik. Steffen Liebscher, HWS 2009/2010. Steffen Liebscher

Öffnungszeiten: Sa.: Uhr. Wochen Angebote 6GB. 259,solange vorrat reicht! 3000GB 90,- 2000GB 79,- 1000GB 56,- 2.5" SATA /USB Gehäuse 8,90

Ausarbeitung Seminarvortrag High-Performance-Computing WS 2011/2012

Abschlussklausur Informatik, SS 2012

Christina Nell. 3D-Computergrafik

Mein persönliches HD-Studio

Berechnung von Formfaktoren

November Desktop Line Up Seite 1/5

Predator G3. Premium Design. Advanced Technology. Immersive entertainment

Mikrocontroller Grundlagen. Markus Koch April 2011

Aktuelle Trends und Herausforderungen in der Finite-Elemente-Simulation

Eine Einführung in die Architektur moderner Graphikprozessoren

Aktion solange Vorrat!

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme

Angebot. Tel.: Fax: Website: Shop:

Lenovo ThinkPad Edge E530 NZQCGMZ

Paralleles Rechnen. (Architektur verteilter Systeme) von Thomas Offermann Philipp Tommek Dominik Pich

Hardware Programmierbare Logik

1 Einleitung. 2 Parallelisierbarkeit von. Architektur

Gliederung Seite 1. Gliederung

August Workstation Line Up Seite 1/5

Grundlagen der Rechnerarchitektur

FPGA-Based Architecture for Pattern Recognition

PRODUKTE UND PREISE TERRA MOBILE.

Bei unserem letzten Ausflug in die Welt der Highend Mainboards konnten wir bereits feststellen das Intel seine Hausaufgaben gemacht hat.

Die "Highspeed (High End) Acceleration" Lösung. High-End-Acceleration Platforms. eine Lösung für viele Aufgaben

Architektur paralleler Plattformen

SS08, LS12, Friedrich-Alexander-Universität Erlangen Florian Hänel, Frederic Pollmann HS Multicore Architectures and Programming GPU EVOLUTION

OpenCL Implementierung von OpenCV Funktionen

Erfolg mit Embedded Vision Systemen. Dipl.-Ing. Carsten Strampe Embedded Vision Systeme 1

Yilmaz, Tolga MatNr: Mesaud, Elias MatNr:

Entwicklung von Partitionierungsstrategien im Entwurf dynamisch rekonfigurierbarer Systeme

Implementierung und Evaluierung von Video Feature Tracking auf moderner Grafik Hardware

Entwicklung von Ausleseelektronik für das Flüssig-Argon-Kalorimeter des ATLAS- Detektors am Super-LHC

ASIC-SYNTHESE DER SHAP-MIKROARCHITEKTUR

Transkript:

LEISTUNGSVERGLEICH VON FPGA, GPU UND CPU FÜR ALGORITHMEN ZUR BILDBEARBEITUNG PROSEMINAR INF-B-610 Dominik Weinrich dominik.weinrich@tu-dresden.de Dresden, 30.11.2017

Gliederung Motivation Aufbau und Hardware 2D Filter Stereo Vision k-means Diskussion der Ergebnisse

Motivation Hohe Parallelität bei Bildbearbeitungsalgorithmen CPU bietet SIMD Befehle Mehrere Operationen in einem Taktzyklus Sehr hohe Taktrate, aber limitiert durch Größe des Caches FPGA bietet auf Grund der Flexibilität eine hochgradig optimierbare Parallelisierbarkeit Für jede Anwendung kann der bestmögliche Schaltkreis realisiert werden Auf Grund niedriger Betriebsfrequenz muss Anzahl der Operationen minimal gehalten werden

Motivation Moderne GPU hat eine hohe Anzahl an Kernen Langsamere Taktrate als CPU, aber schneller als FPGA Höhere Parallelität als CPU Kerne sind gruppiert und Datenaustausch zwischen Gruppen ist sehr langsam und Speicher jedes Kerns begrenzt GPUs können nicht die selben Algorithmen wie FPGAs ausführen Um hohe Leistung der GPUs zu nutzen, müssen die Algorithmen so entwickelt werden, dass deren Limitierungen umgangen werden

Aufbau und Hardware Vergleich veröffentlicht auf internationaler Konferenz zu Field Programmable Logic and Gate Arrays (FPL) 2009 RAM: 4GB Zeiten um Bild aus RAM zu laden werden nicht berücksichtigt Ergebnis ist Mittel aus 1000 Läufen CPU: Intel Core 2 Extreme QX6850 (3GHz, 4 Kerne, 8MB L2 Cache, 8 Operationen auf 128 Bit Daten gleichzeitig) FPGA: Xilinx XC4VLX160 (auf 100MHz begrenzt) GPU: XFX GeForce GTX 280 1024MB DDR3

Hardware Nvidia GTX 280 Abb. 1: Übersicht über die Nvidia GTX 280 [1]

2D Filter Filter auf zweidimensionaler Datenmenge (z.b. Weichzeichner) Berechnung für 2D Filter: w S (x, y )= dx= w w dy= w I ( x+dx, y+dy ) G (dx,dy ) Komplexität für 2D Filter: O(w²)

2D Filter Abb. 2: Schaltkreis für einen 2D Filter [1]

2D Filter Parallelisierung durch gleichzeitige Berechnung von 2w+1 Multiplikationen auf FPGA 4 Pixeln mit 4 Kernen auf CPU 8 Multiplikationen pro Kern auf CPU mit SIMD-Operationen GPU kann für maximale Performance 960 S(x, y) parallel berechnen, da diese voneinander unabhängig sind

2D Filter Vergleich Abb. 3: Vergleich für 2D Filter bei einem 640x480 Pixel großen Graustufenbild [1]

Stereo Vision Vergleich von zwei Bildern aus verschiedenen Blickrichtungen Berechnen der Entfernungen über Verschiebung Vergleich über sum of absolute difference (SAD) Abb. 4: Stereovision [5]

Stereo Vision w SAD xy (x, y, d )= dx= w w dy= w I r ( x+dx, y+dy ) I l ( x+d +dx, y+dy ) Bildgröße: x y Verschiebung: d Größe des Fensters: (2w+1) (2w+1) Anzahl der zu Vergleichenden Fenster: D Komplexität des naiven Ansatzes: O(x y w² D)

Stereo Vision Abb. 5: Optimierung für SAD [1]

Stereo Vision Es werden D Buffer der Größe x benötigt Es werden D FIFOs der Größe 2w+1 benötigt Abb. 6: Berechnungsmethode für SAD [1]

Stereo Vision Komplexität nach Reduzierung: O(x (y+w) D) Parallelisierung durch gleichzeitige Berechnung von D SADs auf FPGA 8 SADs auf CPU mit SIMD-Operationen N Pixeln, bei Aufteilung d. Bildes in N Teilbilder auf FPGA 4 Teilbildern auf 4 Kernen auf CPU Nicht möglich für GPU, da lokaler Speicher zu klein und Zugriffszeiten auf globalen Speicher zu groß für Buffer und FIFOs

Stereo Vision Berechnung jeder SAD in eigenem Thread Threads laufen parallel und teilen sich Local Memory eines Streaming Multiprozessors Optimierung durch Zusammenlegen von Threads Für 512 < X < 1024 können zwei Threads zusammengelegt werden Min. 32 Threads pro Streaming Multiprozessor Abb. 7: Berechnungsmethode für GPU [1]

Stereo Vision Vergleich Abb. 8: Vergleich für Stereo Vision bei einem 640x480 Pixel großem Graustufenbild mit einer Fenstergröße von 7x7 [1]

k-means Ziel: Aufteilung der Datenpunkte in k Teilmengen Abb. 9: k-means auf Bild angewandt mit k=8 [6]

k-means K E= i=1 x Ci Die Punkte sollen in K Mengen C i mit i=1...k eingeteilt werden, sodass E minimal ist ( x center i ) 2 center i = x C i x/ C i 1. Jeder Punkt wird dem Cluster mit dem kleinsten Abstand zugeteilt 2. Die Zentren der Cluster werden neu berechnet 3. Die Operationen werden solange wiederholt bis es zu keiner Verbesserung für E kommt

k-means Abb. 10: Schaltkreis für k-means Algorithmus für 24 Bit RGB- Bilder [1]

k-means Parallelisierung durch gleichzeitige Berechnung von 96 Abständen (24 pro Pixel * 4 Pixel) auf FPGA 8 Abständen pro Kern auf CPU mit SIMD-Operationen 4 Pixeln auf 4 Kernen auf CPU N Threads für N Pixel in einer Zeile/Spalte berechnen sequentiell K Abstände auf GPU (960 Threads für maximale Performance) Summenbildung für E in globalen Speicher 32 Threads pro Streaming Multiprozessor müssen parallel auf lokalen Speicher schreiben Zugriffskonflikte

k-means - Vergleich Abb. 11: Vergleich für k-means bei einem 768x512 Pixel großem Farbbild [1]

Diskussion der Ergebnisse Verschiedene Algorithmen laufen unterschiedlich auf verschiedener Hardware Performance von GPU sehr gut, bei naiven Algorithmen, bei denen alle Berechnungen unabhängig voneinander sind CPU ist schneller bei Algorithmen mit voneinander abhängigen Berechnungen als GPU Performance von FPGA nur limitiert durch Größe und Speicheranbindung Nur drei Probleme betrachtet und Algorithmen für GPU und CPU wurden nicht vollständig optimiert Stromverbrauch und Kosten wurden im Vergleich nicht mit einbezogen

Quellen [1] S. Asano, T. Maruyama, Y. Yamaguchi: Performance Comparison of FPGA, GPU and CPU in Image Processing, FPL, 2009, S. 126-131 [2] T. Saegusa, T. Maruyama, Y. Yamaguchi: How fast is an FPGA in image processing?, FPL, 2008, S. 77-82 [3] T. S. Huang, Stability of two-dimensional recursive filters, IEEE Transactions on Audio and Electroacoustics, 1972, S. 158 163 [4] J. S. Lim, Two-Dimensional Signal and Image Processing, Prentice-Hall International, 1990 [5] Single-Camera Stereo Vision for Mobile Devices, http://mint.fh-hagenberg.at/?p=1149&doing_wp_cron=15081738 50.0824210643768310546875, 15.10.2017

Quellen [6] k-means Algorithmus, https://carlosvision.files.wordpress.com/2011/09/kmeans_eucl_rgb 1.jpg, 18.10.2017