Multi-Core Architectures and Programming. Bilateral Grid Filter

Größe: px
Ab Seite anzeigen:

Download "Multi-Core Architectures and Programming. Bilateral Grid Filter"

Transkript

1 Multi-Core Architectures and Programming Bilateral Grid Filter - Parallelisierung mit CUDA - C. Kugler und E. Sert

2 Inhalt Motivation Bilateral Filter (Exkurs) Bilateral Grid Filter Portierung auf Grafikkarte Verwendete Datenstrukturen Aufteilung der Threads Probleme Ergebnisse Fehlerabschätzung Zeitmessung Quellen 2

3 Motivation

4 Motivation Aufgenommene Bilder enthalten mehr oder weniger stark ausgeprägte Störungen/ Rauschen Möchte Bildqualität verbessern Rauschen entfernen und Kanten erhalten Echtzeit Anwendung (Medizin) Schnelligkeit 4

5 Bilateral Filter (Exkurs)

6 Bilateral Filter (Exkurs) Nonlinear Gaussian filter Gewichtung anisotrop Filter der Signale glättet und starke Kanten erhält Neben Nachbarschaft wird die Intensitätsdifferenz betrachtet Unterschied in Intensität Räumliche Entfernung s: Fenstergröße r: Gewichtung Intensitätsdifferenz Normalisierung [1] Seite 2 Bildquelle [4] 6

7 Bilateral Grid Filter (BGF)

8 Bilateral Grid Filter (3) Algorithmus in drei Schritten: 1) Aufbau des 3D-Gitters durch Down-Sampling der Daten 2) Glättung mit dreidimensionalem Kernel 3) Up-Sampling durch Interpolation und Dehomogenisierung Schnelligkeit durch Berechnung auf vermindertem Datensatz Interpolation führt zu gewissem Genauigkeitsverlust 8

9 3D-Gitter Erinnerung: s = Fenstergröße und r = Gewichtung Intensitätsdifferenz Anhand gegebener Werten für s und r werden die Gitterkoordinaten (xg, yg, zg) folgendermaßen aufgestellt: x + 0.5) s y = floor ( + 0.5) s I ( x, y) I min = floor ( + 0.5) r xg = floor ( yg zg Räumliche Dimension (x,y) wird s s große Zellen eingeteilt 9

10 Aufbau 3D-Gitter 3D Gitter (s = 2) 14 x 10 Pixel Sonderfall Rand Größe einer Zelle ½ * s 10

11 Aufbau 3D-Gitter 3D Gitter (s = 2) 14 x 10 Pixel Für jede Zelle wird Histogramm aus Intensitäten dieser erstellt werden entlang z-achse ausgelegt (3. Dimension) 11

12 Blur Entfernt Rauschen im Bild Gauss'scher Filter mit Kernel K der Größe 3x3x3 auf (x,y,z)- Dimensionen mit 2 Iterationen w=1 [ ] K= w=1 w=1 y z w=2 x w=1 w=1 w=1 (in 2D) (in 3D) Ergebnis entsteht durch iterative Ausführung des Filters Buffer muss nach jeder Iteration neu befüllt werden Bei der Parallelisierung ergibt sich dadurch eine Racing Condition 12

13 Interpolation und Dehomogenisierung Rekonstruktion von höher dimensionalen Daten (Ausgangsgröße des Bildes) trilineare Interpolation der Daten aus dem Gitter auf Basis der ursprünglichen Intensitäten Q = (1 Δz ) (Δ y (Δx P001 + (1 Δ x ) P101 ) + (1 Δy ) (Δx P (1 Δx ) P 111 )) + Δz (Δy (Δx P (1 Δx ) P 100 ) + (1 Δy ) (Δx P010 + (1 Δ x ) P110 )) mit Δx = x x0 y y 0 z z 0, Δy=, Δz=, P i ℕ3, Q ℕ2,. =Farbwert x1 x 0 y 1 y 0 z 1 z 0 Abschließende Normalisierung der Daten mit den Gewichten (z-komponente) aus dem vorherigen Schritt 13

14 Unterschied BGF und Gauss Gauss'scher Filter Filtergröße: 16x16 BGF s = 16 und r =

15 Portierung auf die Grafikkarte

16 Allgemeines (1) Verwendete Technologie: CUDA 5.0 / Nvidia Tesla C2050 Verwendete Datenstrukturen: CUDA Arrays und 3D-Texturen / -Surfaces (Surfaces ermöglichen Schreibzugriff auf Texturspeicher) Texturen / Surfaces müssen an Cuda Arrays gebunden werden 16

17 Allgemeines (2) Generelle Optimierungsstrategien: Minimierung von IO-Operationen (Bottleneck) Daten werden einmal hochgeladen und bleiben dort für den gesamten Berechnungszeitraum (Surface Textur) Vielfaches der Warp-Size als Blockgröße bei Kernel- Ausführung hier: keine Verbesserung der Performance Minimierung von arithmetischen Operationen und Fallunterscheidungen im Kernel 17

18 Datenstrukturen Reihenfolge Daten beachten 3. Dimension wird nur an dieser Stelle definiert Breite in Byte angeben (pitch) 18

19 Datenstrukturen Erstellte globale Surface-Referenz kann aus Kernel verwendet werden y Wert der float2 Variable wird sonst als int interpretiert Index x muss in Byte angegeben werden 19

20 Datenstrukturen Textur speichert Samples (nehmen keinen Raum ein im Gegensatz zu Pixeln) müssen Sample in Mitte abgreifen um exakten Pixel Wert zu erhalten 20

21 Verteilung der Threads Die Anzahl der gestarteten Threads wird auf die Dimension des Ausgabe-Bildes /-Gitters angepasst Gitter Aufbau (Down-Sampling): Thread pro Zelle im 2D-Raster des Gitters (pro Thread s s Pixel im Original Bild) Daten werden in einem 3D-Surface gespeichert Alternative: Thread pro Pixel und Atomics zur Synchronisation Unvorteilhaft, da hohe Konkurrenz zwischen Threads 21

22 Verteilung der Threads Glättung: Ein Thread pro Zelle im 3D Gitter Jede Dimension wird nacheinander 2 mal aufgerufen (wegen 2-facher Iteration) Vermeidung von Racing Condition Interpolation und Dehomogenisierung: Ein Thread pro Pixel Automatische Trilineare Interpolation wird durch Texturspeicher gewährleistet Wichtige Optimierung für die Performance Randbetrachtung fällt weg, da durch Texturkonfiguration festgelegt 22

23 Blockzuteilung im Kernel Down-Sampling (Glättung analog mit zusätzlicher Dimension) Aufteilung: ( width height) Blocks. x = T (width height ) Blocks. y = T (width+ Blocks. x 1) Blocks. x, T = max. Anzahl (height + Blocks. y 1) Threads pro Block Threads. y = Blocks. y Threads. x = Zugriff (Bestimmung von Array-Indices im Kernel): x T = (blockidx. x blockdim. x) + threadidx.x y T = (blockidx. y blockdim. y) + threadidx.y Ermöglicht einfache Berechnung der (x,y)-indices Achtung: Es werden fast immer zu viele Threads gestartet Grenzen prüfen 23

24 Probleme

25 Problem (1): Falscher Surface-Zugriff Gelesene und geschriebene Werte werden auf Int's gecastet erzeugt Artefakte Lösung: surf3dwrite<type> 25

26 Problem (2): Reihenfolge im 3D-Array Vertauschen der x- und z-dimension 26

27 Ergebnisse

28 Output im Vergleich Input 1600 x 1200 Pixel s=4 r = 0.1 s=8 r = 0.1 s = 16 r = 0.1 CPU GPU 28

29 Output im Vergleich s = 4 und r = 0.1 auf CPU s = 4 und r = 0.1 auf GPU Vergleichsbild mit ImageMagick (Fehler in Rot ) Differenzbild mit Gimp 29

30 Output im Vergleich s = 8 und r = 0.1 auf CPU s = 8 und r = 0.1 auf GPU Vergleichsbild mit ImageMagick (Fehler in Rot ) Differenzbild mit Gimp 30

31 Output im Vergleich s = 16 und r = 0.1 auf CPU s = 16 und r = 0.1 auf GPU Vergleichsbild mit ImageMagick (Fehler in Rot ) Differenzbild mit Gimp 31

32 Fehlervergleich Absolute Anzahl der Fehler und Mittlerer quadratischer Fehler (MSE) m 1 n 1 MSE= 1 2 [I i, j K i, j ] mn i=0 j=0 #Pixel MSE s= s= s = [5] 32

33 Mögliche Gründe für die Fehler Float Instruktionsreihenfolge (GPU vs. CPU) Eventuelle Probleme bei kommutativen Operationen Float Instruktionsart ( Fused Multiply-Add ) Erlaubt Berechnung der Art (X*Y + Z) ohne Rundung nach der Multiplikation höhere Genauigkeit des Ergebnisses Texturfilterungskoeffizienten interne Interpolations-Koeffizienten werden nur in einem 9-Bit Festkomma- Format verwaltet 33

34 Laufzeiten im Vergleich Verwendete Hardware: Tesla C2050 / Intel Xeon E5640 4x2,67 Ghz Tesla C2050: ~ 2,6 GB globalen Hauptspeicher, 448 Cuda Kerne Bildgröße beläuft sich auf: 1600 x 1200 Pixel (~ 2 MP) BGF CPU BGF GPU BGF CPU BGF GPU BGF CPU BGF GPU (s = 4, r = 0.1) (s = 4, r = 0.1) (s = 8, r = 0.1) (s = 8, r = 0.1) (s = 16, r = 0.1) (s = 16, r = 0.1) - ~ 60 ms - ~ 60 ms - ~ 60 ms Downsampling ~ 106 ms ~ 6.8 ms ~ 93 ms ~ 3.6 ms ~ 89 ms ~ 5.4 ms Glättung ~1105 ms ~ 7.1 ms ~ 280 ms ~ 2.1 ms ~ 72 ms ~ 0.7 ms Slicing ~ 850 ms ~ 4.2 ms ~ 862 ms ~ 4.2 ms ~ 862 ms ~ 4.2 ms Ʃ ~ 2063 ms ~ 18.5 ms ~ 1235 ms ~ 10.0 ms ~ 1023 ms ~ 10.5 ms Datenupload Speed-Up ~26x ~18x ~15x 34

35 Quellen

36 Quellen (1) Paris, Sylvain, and Frédo Durand. "A fast approximation of the bilateral filter using a signal processing approach." Computer Vision ECCV Springer Berlin Heidelberg, (2) (3) (4) (5) 36

37 Anhang

38 Blockzuteilung im Kernel Interpolation und Dehomogenisierung (linear) Aufteilung: Threads. x = T, Blocks. x = ceil (width height / T ) T = k WARP_SIZE, k ℕ Zugriff: idx = (blockidx. x blockdim. x + threadidx. x) x = floor (idx / height ) y = idx x height 38

CUDA. Moritz Wild, Jan-Hugo Lupp. Seminar Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg

CUDA. Moritz Wild, Jan-Hugo Lupp. Seminar Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg CUDA Seminar Multi-Core Architectures and Programming 1 Übersicht Einleitung Architektur Programmierung 2 Einleitung Computations on GPU 2003 Probleme Hohe Kenntnisse der Grafikprogrammierung nötig Unterschiedliche

Mehr

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

LEISTUNGSVERGLEICH VON FPGA, GPU UND CPU FÜR ALGORITHMEN ZUR BILDBEARBEITUNG PROSEMINAR INF-B-610 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

Mehr

Enblend - Portierung auf die GPU

Enblend - Portierung auf die GPU Multi-Core Architectures and Programming Enblend - Portierung auf die GPU Hardware/Software Co-Design September 25, 2009 1 Inhalt 1 Motivation 2 Enblend-Algorithmus 3 Beschleunigung mittels Cuda 4 Benchmark

Mehr

Paralleler Cuckoo-Filter. Seminar: Implementierungstechniken für Hauptspeicherdatenbanksysteme Jeremias Neth München, 21.

Paralleler Cuckoo-Filter. Seminar: Implementierungstechniken für Hauptspeicherdatenbanksysteme Jeremias Neth München, 21. Paralleler Cuckoo-Filter Seminar: Implementierungstechniken für Hauptspeicherdatenbanksysteme Jeremias Neth München, 21. November 2017 1 Paralleler Cuckoo-Filter Cuckoo-Hashtabelle Serieller Cuckoo-Filter

Mehr

Volumenrendering mit CUDA

Volumenrendering mit CUDA Volumenrendering mit CUDA Arbeitsgruppe Visualisierung und Computergrafik http://viscg.uni-muenster.de Überblick Volumenrendering allgemein Raycasting-Algorithmus Volumen-Raycasting mit CUDA Optimierung

Mehr

Masterpraktikum Scientific Computing

Masterpraktikum Scientific Computing Masterpraktikum Scientific Computing High-Performance Computing Thomas Auckenthaler Wolfgang Eckhardt Prof. Dr. Michael Bader Technische Universität München, Germany Outline Organisatorisches Entwicklung

Mehr

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

Praxiseinheit: Realisierung einer hardwarebeschleunigten Disparitätenberechnung zur automatischen Auswertung von Stereobildern Praxiseinheit: Realisierung einer hardwarebeschleunigten Disparitätenberechnung zur automatischen Auswertung von Stereobildern Institut für Betriebssysteme und Rechnerverbund TU Braunschweig 25.10., 26.10.

Mehr

General Purpose Computation on GPUs

General Purpose Computation on GPUs General Purpose Computation on GPUs Matthias Schneider, Robert Grimm Universität Erlangen-Nürnberg {matthias.schneider, robert.grimm}@informatik.stud.uni-erlangen.de M. Schneider, R. Grimm 1 Übersicht

Mehr

Programmierbeispiele und Implementierung. Name: Michel Steuwer E-Mail: michel.steuwer@wwu.de

Programmierbeispiele und Implementierung. Name: Michel Steuwer E-Mail: michel.steuwer@wwu.de > Programmierbeispiele und Implementierung Name: Michel Steuwer E-Mail: michel.steuwer@wwu.de 2 > Übersicht > Matrix Vektor Multiplikation > Mandelbrotmenge / Apfelmännchen berechnen > Kantendetektion

Mehr

Parallelisierung auf CUDA

Parallelisierung auf CUDA Parallelisierung auf CUDA Seminar Multi-Core Architectures and Programming 1 Übersicht RSA-Faktorisierung Image Flooding 2 RSA-Faktorisierung Erster Ansatz Implementierung des Pollard-Rho Algorithmus (sequentiell)

Mehr

Objekterkennung mit künstlichen neuronalen Netzen

Objekterkennung mit künstlichen neuronalen Netzen Objekterkennung mit künstlichen neuronalen Netzen Frank Hallas und Alexander Butiu Universität Erlangen Nürnberg, Lehrstuhl für Hardware/Software CoDesign Multicorearchitectures and Programming Seminar,

Mehr

CUDA. Philip Höhlein, Nils Werner Supervision: R. Membarth, P. Kutzer, F. Hannig. Hardware-Software-Co-Design Universität Erlangen-Nürnberg

CUDA. Philip Höhlein, Nils Werner Supervision: R. Membarth, P. Kutzer, F. Hannig. Hardware-Software-Co-Design Universität Erlangen-Nürnberg CUDA Philip Höhlein, Nils Werner Supervision: R. Membarth, P. Kutzer, F. Hannig Hardware-Software-Co-Design Universität Erlangen-Nürnberg Philip Höhlein, Nils Werner 1 Übersicht Entwicklungsumgebung RSA-Faktorisierer

Mehr

Masterpraktikum Scientific Computing

Masterpraktikum Scientific Computing Masterpraktikum Scientific Computing High-Performance Computing Thomas Auckenthaler Wolfgang Eckhardt Technische Universität München, Germany Outline Entwicklung General Purpose GPU Programming (GPGPU)

Mehr

Digital Image Interpolation with CUDA

Digital Image Interpolation with CUDA Digital Image Interpolation with CUDA Matthias Schwarz & Martin Rustler Hardware-Software-Co-Design Universität Erlangen-Nürnberg matthias.schwarz@e-technik.stud.uni-erlangen.de martin.rustler@e-technik.stud.uni-erlangen.de

Mehr

ÜBUNGS-BLOCK 7 LÖSUNGEN

ÜBUNGS-BLOCK 7 LÖSUNGEN ÜBUNGS-BLOCK 7 LÖSUNGEN Aufgabe 1: Gegeben ist folgender Code: Auto[] array = new Auto[3]; // Alle Autos im Array tunen: for (int i = 1; i

Mehr

OpenCL (Cell B. E., PS3) Multicore Architectures and Programming

OpenCL (Cell B. E., PS3) Multicore Architectures and Programming OpenCL (Cell B. E., PS3) Multicore Architectures and Programming Apelt, Nicolas Zoellner, Christian Hardware-Software-Co-Design Universität Erlangen-Nürnberg Apelt, Nicolas Zoellner, Christian 1 Übersicht

Mehr

Implementierung zweier Algorithmen mittels OpenCL auf Grafikkarten

Implementierung zweier Algorithmen mittels OpenCL auf Grafikkarten Implementierung zweier Algorithmen mittels OpenCL auf Grafikkarten Tobias Schwarzer, Michael Theil Hardware-Software-Co-Design Universität Erlangen-Nürnberg Tobias.Schwarzer@e-technik.uni-erlangen.de,

Mehr

Compute Unified Device Architecture CUDA

Compute Unified Device Architecture CUDA Compute Unified Device Architecture 06. Februar 2012 1 / 13 Gliederung 2 / 13 : Compute Unified Device Architecture entwickelt von Nvidia Corporation spezifiziert Software- und Hardwareeigenschaften Ziel:

Mehr

PRIP-Preis. Effizientes Object Tracking durch Programmierung von Mehrkernprozessoren und Grafikkarten

PRIP-Preis. Effizientes Object Tracking durch Programmierung von Mehrkernprozessoren und Grafikkarten Masterarbeit @ PRIP-Preis Effizientes Object Tracking durch Programmierung von Mehrkernprozessoren und Grafikkarten Michael Rauter Pattern Recognition and Image Processing Group Institute of Computer Aided

Mehr

Parallelisierung von Modellprädiktiver Regelung auf CUDA-Hardware

Parallelisierung von Modellprädiktiver Regelung auf CUDA-Hardware Parallelisierung von Modellprädiktiver Regelung auf CUDA-Hardware Thomas Jahn Universität Bayreuth 6 Februar 20 Zeitdiskretes Modell Modellfunktion Diskrete Dynamik eines Kontrollsystems ist durch Φ :

Mehr

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

CUDA. Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Jürgen Pröll 1 CUDA Jürgen Pröll Multi-Core Architectures and Programming Jürgen Pröll 1 Image-Resize: sequentiell resize() mit bilinearer Interpolation leicht zu parallelisieren, da einzelne Punkte voneinander unabhängig

Mehr

Grundlagen von CUDA, Sprachtypische Elemente

Grundlagen von CUDA, Sprachtypische Elemente Grundlagen von CUDA, Sprachtypische Elemente Stefan Maskanitz 03.07.2009 CUDA Grundlagen 1 Übersicht 1. Einleitung 2. Spracheigenschaften a. s, Blocks und Grids b. Speicherorganistion c. Fehlerbehandlung

Mehr

Seminar: Multi-Core Architectures and Programming

Seminar: Multi-Core Architectures and Programming Seminar: Multi-Core Architectures and Programming Parallelisierung des Viola-Jones Algorithmus auf Tilera Hardware-Software-Co-Design Universität Erlangen-Nürnberg 1 Übersicht Einleitung Erste Versuche

Mehr

GPGPU Basiskonzepte. von Marc Kirchhoff GPGPU Basiskonzepte 1

GPGPU Basiskonzepte. von Marc Kirchhoff GPGPU Basiskonzepte 1 GPGPU Basiskonzepte von Marc Kirchhoff 29.05.2006 GPGPU Basiskonzepte 1 Inhalt Warum GPGPU Streams, Kernels und Prozessoren Datenstrukturen Algorithmen 29.05.2006 GPGPU Basiskonzepte 2 Warum GPGPU? Performance

Mehr

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

GPGPU-Architekturen CUDA Programmiermodell Beispielprogramm. Einführung CUDA. Ralf Seidler. Friedrich-Alexander-Universität Erlangen-Nürnberg Einführung CUDA Friedrich-Alexander-Universität Erlangen-Nürnberg PrakParRA, 18.11.2010 Outline 1 GPGPU-Architekturen 2 CUDA Programmiermodell 3 Beispielprogramm Outlook 1 GPGPU-Architekturen 2 CUDA Programmiermodell

Mehr

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

Gliederung. Was ist CUDA? CPU GPU/GPGPU CUDA Anwendungsbereiche Wirtschaftlichkeit Beispielvideo Gliederung Was ist CUDA? CPU GPU/GPGPU CUDA Anwendungsbereiche Wirtschaftlichkeit Beispielvideo Was ist CUDA? Nvidia CUDA ist eine von NvidiaGPGPU-Technologie, die es Programmierern erlaubt, Programmteile

Mehr

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer OpenCL Programmiersprachen im Multicore-Zeitalter Tim Wiersdörfer Inhaltsverzeichnis 1. Was ist OpenCL 2. Entwicklung von OpenCL 3. OpenCL Modelle 1. Plattform-Modell 2. Ausführungs-Modell 3. Speicher-Modell

Mehr

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

CUDA. Axel Jena, Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Axel Jena, Jürgen Pröll 1 CUDA Axel Jena, Jürgen Pröll Multi-Core Architectures and Programming Axel Jena, Jürgen Pröll 1 Warum Tesla? Traditionelle Graphikkarten Getrennte Prozessoren für Vertex- / Pixelberechnungen - Nachteil:

Mehr

Rheinisch-Westfälische Technische Hochschule Aachen. Seminararbeit

Rheinisch-Westfälische Technische Hochschule Aachen. Seminararbeit Rheinisch-Westfälische Technische Hochschule Aachen Seminararbeit Analyse von General Purpose Computation on Graphics Processing Units Bibliotheken in Bezug auf GPU-Hersteller. Gregori Kerber Matrikelnummer

Mehr

Motivation (GP)GPU CUDA Zusammenfassung. CUDA und Python. Christian Wilms. Integriertes Seminar Projekt Bildverarbeitung

Motivation (GP)GPU CUDA Zusammenfassung. CUDA und Python. Christian Wilms. Integriertes Seminar Projekt Bildverarbeitung CUDA und Python Christian Wilms Integriertes Seminar Projekt Bildverarbeitung Universität Hamburg WiSe 2013/14 12. Dezember 2013 Christian CUDA und Python 1 Gliederung 1 Motivation 2 (GP)GPU 3 CUDA 4 Zusammenfassung

Mehr

GPU-Programmierung: OpenCL

GPU-Programmierung: OpenCL Seminar: Multicore Programmierung Sommerstemester 2009 04.06.2009 Inhaltsverzeichnis 1 GPU-Programmierung von Grafikkarten von GPU-Computing 2 Architektur Spracheigenschaften Vergleich mit CUDA Beispiel

Mehr

Einführung in die medizinische Bildverarbeitung WS 12/13

Einführung in die medizinische Bildverarbeitung WS 12/13 Einführung in die medizinische Bildverarbeitung WS 12/13 Stephan Gimbel Kurze Wiederholung Pipeline Pipelinestufen können sich unterscheiden, beinhalten aber i.d.r. eine Stufe zur Bildvorverarbeitung zur

Mehr

Yilmaz, Tolga MatNr: Mesaud, Elias MatNr:

Yilmaz, Tolga MatNr: Mesaud, Elias MatNr: Yilmaz, Tolga MatNr: 157317 Mesaud, Elias MatNr: 151386 1. Aufbau und Funktionsweise einer Grafikkarte 2. CPU vs. GPU 3. Software 4. Beispielprogramme Kompilierung und Vorführung 5. Wo wird Cuda heutzutage

Mehr

Volumenakquise. Vortrag von Benjamin Gayer

Volumenakquise. Vortrag von Benjamin Gayer 10.11.11 1 Volumenakquise Vortrag von Benjamin Gayer Einführung Bildquelle: http://www.medical.siemens.com/siemens/de_de/rg_marcom_fbas/files/patienteninformationen/ct_geschichte_technologie. pdf 10.11.11

Mehr

INTELLIGENTE DATENANALYSE IN MATLAB

INTELLIGENTE DATENANALYSE IN MATLAB INTELLIGENTE DATENANALYSE IN MATLAB Bildanalyse Literatur David A. Forsyth: Computer Vision i A Modern Approach. Mark S. Nixon und Alberto S. Aguado: Feature Extraction and Image Processing. Ulrich Schwanecke:

Mehr

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

RST-Labor WS06/07 GPGPU. General Purpose Computation On Graphics Processing Units. (Grafikkarten-Programmierung) Von: Marc Blunck RST-Labor WS06/07 GPGPU General Purpose Computation On Graphics Processing Units (Grafikkarten-Programmierung) Von: Marc Blunck Ablauf Einführung GPGPU Die GPU GPU Architektur Die Programmierung Programme

Mehr

Software Engineering für moderne parallele Plattformen 9. GPGPUs: Grafikkarten als Parallelrechner

Software Engineering für moderne parallele Plattformen 9. GPGPUs: Grafikkarten als Parallelrechner Software Engineering für moderne parallele Plattformen 9. GPGPUs: Grafikkarten als Parallelrechner Dipl.-Inform. Korbinian Molitorisz M. Sc. Luis Manuel Carril Rodriguez KIT Universität des Landes Baden-Württemberg

Mehr

OpenCL Implementierung von OpenCV Funktionen

OpenCL Implementierung von OpenCV Funktionen Multi-Core Architectures and Programming OpenCL Implementierung von OpenCV Funktionen julian.mueller@e-technik.stud.uni-erlangen.de Hardware/Software Co-Design August 18, 2011 1 Table of content 1 OpenCL

Mehr

Bildverarbeitung Herbstsemester

Bildverarbeitung Herbstsemester Bildverarbeitung Herbstsemester Herbstsemester 2009 2012 Filter Filter 1 Inhalt Lineare und nichtlineare Filter Glättungsfilter (z.b. Gauss-Filter) Differenzfilter (z.b. Laplace-Filter) Lineare Faltung

Mehr

TensorFlow Open-Source Bibliothek für maschinelles Lernen. Matthias Täschner Seminar Deep Learning WS1718 Abteilung Datenbanken Universität Leipzig

TensorFlow Open-Source Bibliothek für maschinelles Lernen. Matthias Täschner Seminar Deep Learning WS1718 Abteilung Datenbanken Universität Leipzig TensorFlow Open-Source Bibliothek für maschinelles Lernen Seminar Deep Learning WS1718 Abteilung Datenbanken Universität Leipzig Motivation Renaissance bei ML und KNN Forschung bei DNN fortgeschrittene

Mehr

Beispielvortrag: HPCG auf Intel Haswell-EP

Beispielvortrag: HPCG auf Intel Haswell-EP Beispielvortrag: HPCG auf Intel Haswell-EP Johannes Hofmann 1 Seminarvortrag Architekturen von Multi- und Vielkern-Prozessoren Erlangen, 19.4.2016 1 Computer Architecture, University Erlangen-Nuremberg

Mehr

Einführung. GPU-Versuch. Andreas Schäfer Friedrich-Alexander-Universität Erlangen-Nürnberg

Einführung. GPU-Versuch. Andreas Schäfer Friedrich-Alexander-Universität Erlangen-Nürnberg GPU-Versuch andreas.schaefer@cs.fau.de Friedrich-Alexander-Universität Erlangen-Nürnberg Praktikum Parallele Rechnerarchitekturen SS2014 Outline 1 Einführung 2 Outlook 1 Einführung 2 Eine kurze Geschichte

Mehr

Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen

Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen Rekonstruktion kontinuierlicher Daten Interpolation multivariater Daten Ulrich Rüde Lehrstuhl für Systemsimulation Sommersemester

Mehr

Optimierungen der Lattice Boltzmann Methode auf x86-64 basierten Architekturen

Optimierungen der Lattice Boltzmann Methode auf x86-64 basierten Architekturen Optimierungen der Lattice Boltzmann Methode auf x86-64 basierten Architekturen J. Treibig, S. Hausmann, U. Ruede 15.09.05 / ASIM 2005 - Erlangen Gliederung 1 Einleitung Motivation Grundlagen 2 Optimierungen

Mehr

Parallele Algorithmen in der Bildverarbeitung

Parallele Algorithmen in der Bildverarbeitung Seminar über Algorithmen - SoSe 2009 Parallele Algorithmen in der Bildverarbeitung von Christopher Keiner 1 Allgemeines 1.1 Einleitung Parallele Algorithmen gewinnen immer stärker an Bedeutung. Es existieren

Mehr

Interaktive Globale Beleuchtung nach dem Antiradiance-Verfahren mittels der Open Computing Language (OpenCL)

Interaktive Globale Beleuchtung nach dem Antiradiance-Verfahren mittels der Open Computing Language (OpenCL) Interaktive Globale Beleuchtung nach dem Antiradiance-Verfahren mittels der Open Computing Language (OpenCL) Verteidigung der Belegarbeit Andreas Stahl Zielstellung Globales Beleuchtungsverfahren für die

Mehr

Christina Nell. 3D-Computergrafik

Christina Nell. 3D-Computergrafik Christina Nell 3D-Computergrafik Was ist 3D-Computergrafik? 3D graphics is the art of cheating without getting caught. (unbekannte Quelle) Folie 2/52 Inhalt Beleuchtung Shading Texturierung Texturfilterung

Mehr

GPGPU-Programmierung

GPGPU-Programmierung 12 GPGPU-Programmierung 2013/04/25 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken ist im Allgemeinen nicht erlaubt. Motivation (1) General Purpose Computing on

Mehr

Programmierung von Graphikkarten

Programmierung von Graphikkarten Programmierung von Graphikkarten Stefan Lang Interdisziplinäres Zentrum für Wissenschaftliches Rechnen Universität Heidelberg INF 368, Raum 532 D-69120 Heidelberg phone: 06221/54-8264 email: Stefan.Lang@iwr.uni-heidelberg.de

Mehr

GPU Beschleunigung für die Lösung des inversen Problems bei der Kleinwinkelstreuung. Hermann Hartmann Institut für Molekulare Biophysik

GPU Beschleunigung für die Lösung des inversen Problems bei der Kleinwinkelstreuung. Hermann Hartmann Institut für Molekulare Biophysik GPU Beschleunigung für die Lösung des inversen Problems bei der Kleinwinkelstreuung Hermann Hartmann Institut für Molekulare Biophysik Messmethode SAXS: Small-Angle X-Ray Scattering (Röntgenstrahlung)

Mehr

3D-Punktkorrelation auf Basis von 2D-Bildern auf einer FPGA-Plattform

3D-Punktkorrelation auf Basis von 2D-Bildern auf einer FPGA-Plattform Fakultät Informatik, Institut für Technische Informatik, Professur für VLSI Entwurfssysteme, Diagnostik und Architektur 3D-Punktkorrelation auf Basis von 2D-Bildern auf einer FPGA-Plattform Verteidigung

Mehr

Grundlagen der Rechnerarchitektur. Speicher

Grundlagen der Rechnerarchitektur. Speicher Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie

Mehr

LR Zerlegung. Michael Sagraloff

LR Zerlegung. Michael Sagraloff LR Zerlegung Michael Sagraloff Beispiel eines linearen Gleichungssystems in der Ökonomie (Input-Output Analyse Wir nehmen an, dass es 3 Güter G, G, und G 3 gibt Dann entspricht der Eintrag a i,j der sogenannten

Mehr

EVC Repetitorium Blender

EVC Repetitorium Blender EVC Repetitorium Blender Michael Hecher Felix Kreuzer Institute of Computer Graphics and Algorithms Vienna University of Technology INSTITUTE OF COMPUTER GRAPHICS AND ALGORITHMS Filter Transformationen

Mehr

PGI Accelerator Model

PGI Accelerator Model PGI Accelerator Model Philip Höhlein, Nils Werner Supervision: R. Membarth, P. Kutzer, F. Hannig Hardware-Software-Co-Design Universität Erlangen-Nürnberg Philip Höhlein, Nils Werner 1 Übersicht Motivation

Mehr

3D-Oberflächen-Rekonstruktion und plastisches Rendern aus Bilderserien

3D-Oberflächen-Rekonstruktion und plastisches Rendern aus Bilderserien plastisches Rendern aus Bilderserien Sebastian Schäfer Carsten Heep Detlef Krömker Unterstüzung: Thomas Lehmann Krister Smith Naturmuseum Senckenberg Übersicht Motivation & Problemstellung Verfahren Anforderungen

Mehr

Efficient Matrix Inversion in CUDA

Efficient Matrix Inversion in CUDA Seminar Multicore Architectures and Programming 08 am Lehrstuhl Informatik 12, Hardware-Software-Co-Design Efficient Matrix Inversion in CUDA Robert Grimm, Matthias Schneider Friedrich-Alexander Universität

Mehr

Hochleistungsrechnen auf dem PC

Hochleistungsrechnen auf dem PC Hochleistungsrechnen auf dem PC Steffen Börm Christian-Albrechts-Universität zu Kiel Ringvorlesung Informatik, 26. Juni 2014 S. Börm (CAU Kiel) Hochleistungsrechnen auf dem PC 26. Juni 2014 1 / 33 Übersicht

Mehr

Volumenverarbeitung und Optimierung II

Volumenverarbeitung und Optimierung II Volumenverarbeitung und Optimierung II Praktikum Medizinische GPU Verfahren Susanne Fischer sanne@uni-koblenz.de Institut für Computervisualistik Universität Koblenz-Landau 9. Dezember 2006 Susanne Fischer

Mehr

GPGPU-Programmierung

GPGPU-Programmierung 12 GPGPU-Programmierung 2014/04/29 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken ist im Allgemeinen nicht erlaubt. Motivation (1) General Purpose Computing on

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie

Mehr

OpenCL. OpenCL. Boris Totev, Cornelius Knap

OpenCL. OpenCL. Boris Totev, Cornelius Knap OpenCL OpenCL 1 OpenCL Gliederung Entstehungsgeschichte von OpenCL Was, warum und überhaupt wieso OpenCL CUDA, OpenGL und OpenCL GPUs OpenCL Objekte Work-Units OpenCL Adressbereiche OpenCL API Codebeispiel

Mehr

Tag der Umweltmeteorologie 12.05.2015. Michael Kunz

Tag der Umweltmeteorologie 12.05.2015. Michael Kunz Tag der Umweltmeteorologie 12.05.2015 Michael Kunz Beschleunigung von Ausbreitungsmodellen durch Portierung auf Grafikkarten Einleitung Das GRAL/GRAMM-System Cuda-GRAL Ergebnisse Vergleich der Modellergebnisse

Mehr

1 Grundlagen der Numerik

1 Grundlagen der Numerik 1 Grundlagen der Numerik 1.1 Gleitpunkt-Arithmetik Es gibt nur endlich viele Zahlen auf dem Computer. Gleitpunktzahl: x = σmb E σ: Vorzeichen B: Basis (feste Zahl >1); M: Mantisse E: Exponent B = 2 : Dualzahl

Mehr

Optical Flow im Browser - beschleunigt mit WebGL

Optical Flow im Browser - beschleunigt mit WebGL Optical Flow im Browser - beschleunigt mit WebGL Michael Moese und Marvin Kampf Seminar: Multi-Core Architectures and Programming, SS13 Inhalt 1. Optischer Fluss mit der Census-Transformation 2. Parallele

Mehr

2.6 Graphikprozessoren

2.6 Graphikprozessoren 12 2.6 Graphikprozessoren Peter Marwedel Informatik 12 TU Dortmund 2012/04/16 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken ist im Allgemeinen nicht erlaubt.

Mehr

Struktur des menschlichen Auges. Bildgebende Verfahren in der Medizin und medizinische Bildverarbeitung Bildverbesserung 2 / 99

Struktur des menschlichen Auges. Bildgebende Verfahren in der Medizin und medizinische Bildverarbeitung Bildverbesserung 2 / 99 Struktur des menschlichen Auges 2 / 99 Detektoren im Auge Ca. 100 150 Mio. Stäbchen Ca. 1 Mio. Zäpfchen 3 / 99 Zapfen Entlang der Sehachse, im Fokus Tagessehen (Photopisches Sehen) Scharfsehen Farbsehen

Mehr

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

technische universität dortmund Lehrstuhl für Hochfrequenztechnik Übertragungssysteme Lehrstuhl für Hochfrequenztechnik GPU-beschleunigte numerische Simulation faseroptischer Übertragungssysteme, Marius Helf, Peter Krummrich Übersicht Motivation Split-Step p Fourier Methode Ansätze für

Mehr

Bildverbesserung (Image Enhancement)

Bildverbesserung (Image Enhancement) Prof. Dr. Wolfgang Konen, Thomas Zielke Bildverbesserung (Image Enhancement) WS07 7.1 Konen, Zielke Der Prozess der Bildverbesserung (1) Bildverbesserung wird häufig dafür eingesetzt, die für einen menschlichen

Mehr

Vortrag 20: Kurze Vektoren in Gittern

Vortrag 20: Kurze Vektoren in Gittern Seminar: Wie genau ist ungefähr Vortrag 20: Kurze Vektoren in Gittern Kerstin Bauer Sommerakademie Görlitz, 2007 Definition und Problembeschreibung Definition: Gitter Seien b 1,,b k Q n. Dann heißt die

Mehr

Projekt Lesebrille : Mobiles Vorlesegerät für Blinde

Projekt Lesebrille : Mobiles Vorlesegerät für Blinde Projekt Lesebrille : Mobiles Vorlesegerät für Blinde Texterkennung Vorverarbeitung Rauschen Kontrasterhöhung, Schärfung Binarizierung Layouterkennung Dokumentgrenzen Textblöcke, Textspalten Ausrichtung

Mehr

N Bit Binärzahlen. Stelle: Binär-Digit:

N Bit Binärzahlen. Stelle: Binär-Digit: N Bit Binärzahlen N Bit Binärzahlen, Beispiel 16 Bit: Stelle: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Binär-Digit: 0 0 1 0 1 0 0 1 1 1 0 0 1 0 0 0 Least Significant Bit (LSB) und Most Significant Bit (MSB)

Mehr

Debayeringverfahren. 19. Mai Thomas Noack, Nikolai Kosjar. SE Computational Photography - Debayeringverfahren

Debayeringverfahren. 19. Mai Thomas Noack, Nikolai Kosjar. SE Computational Photography - Debayeringverfahren Debayeringverfahren Thomas Noack, Nikolai Kosjar 19. Mai 2010 Was bisher geschah... Reduktion der Herstellungskosten durch Einsatz von nur noch einem CCD-Sensor mit Bayer-Filter Problem: Bayer Image Full

Mehr

Hauptklausur zur Vorlesung Bildverarbeitung WS 2002/2003

Hauptklausur zur Vorlesung Bildverarbeitung WS 2002/2003 Name:........................................ Vorname:..................................... Matrikelnummer:.............................. Bitte Studiengang ankreuzen: Computervisualistik Informatik Hauptklausur

Mehr

4. Segmentierung von Objekten Video - Inhaltsanalyse

4. Segmentierung von Objekten Video - Inhaltsanalyse 4. Segmentierung von Objekten Video - Inhaltsanalyse Stephan Kopf Inhalt Vorgehensweise Berechnung der Kamerabewegungen zwischen beliebigen Bildern Transformation eines Bildes Hintergrundbilder / Panoramabilder

Mehr

Einführung in die medizinische Bildverarbeitung SS 2013

Einführung in die medizinische Bildverarbeitung SS 2013 Einführung in die medizinische Bildverarbeitung SS 2013 Stephan Gimbel 1 Kurze Wiederholung Gradienten 1. und 2. Ableitung grad( f ( x, y) ) = f ( x, y) = f ( x, y) x f ( x, y) y 2 f ( x, y) = 2 f ( x,

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 7 Fortgeschrittene Datenstrukturen 8 Such-Algorithmen

Mehr

Multicore-Architekturen

Multicore-Architekturen Universität Erlangen- Nürnberg Technische Universität München Universität Stuttgart Multicore-Architekturen Vortrag im Rahmen der Ferienakademie 2009 Kurs 1: Programmierkonzepte für Multi-Core Rechner

Mehr

Bildbearbeitung und Texturierung

Bildbearbeitung und Texturierung Ulf Döring, Markus Färber 07.03.2011 1. Anti-Aliasing (a) Wodurch entsteht der Aliasing-Effekt bei der Rasterisierung einer Linie? (b) Wie kann der Aliasing-Effekt durch Supersampling mit nachträglichem

Mehr

CUDA Optimierung von nicht-linearer oberflächen- und intensitätsbasierter Registrierung

CUDA Optimierung von nicht-linearer oberflächen- und intensitätsbasierter Registrierung CUDA Optimierung von nicht-linearer oberflächen- und intensitätsbasierter Registrierung Stefan Köhnen, Jan Ehrhardt, Alexander Schmidt-Richberg, Heinz Handels Institut für Medizinische Informatik, Universität

Mehr

Rauschunterdrückung in der Theorie & Praxis

Rauschunterdrückung in der Theorie & Praxis Rauschunterdrückung in der Theorie & Praxis Florian Kramer Urs Pricking Seminar Simulation und Bildanalyse in Java Universität Ulm, Abteilungen SAI & Stochastik 4 Übersicht Motivation Arten von Rauschen

Mehr

Dynamische Programmierung

Dynamische Programmierung Dynamische Programmierung Claudia Gerhold 9.5.6 Claudia Gerhold Dynamische Programmierung 9.5.6 / 4 Agenda Einführung Dynamische Programmierung Top-Down Ansatz mit Memoization Bottom-Up Ansatz 3 Anwendungsbeispiele

Mehr

Suche nach korrespondierenden Pixeln

Suche nach korrespondierenden Pixeln Suche nach korrespondierenden Pixeln Seminar Algorithmen zur Erzeugung von Panoramabildern Philip Mildner, Gliederung 1. Motivation 2. Anforderungen 3. Moravec Detektor 4. Harris Detektor 5. Scale Invariant

Mehr

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches

Mehr

Algorithmen für Sensornetze

Algorithmen für Sensornetze Algorithmen für Sensornetze Markus Völker 02. Februar 2010 Lokalisierung in Gebäuden Lokalisierung Ausgangssituation? Lokalisierung Ziel! Lokalisierung Signalabfall in Gebäuden Signalabfall mit ca. 1/d

Mehr

Thema: Hardware-Shader

Thema: Hardware-Shader Seminar Grafikprogrammierung Thema: Hardware-Shader Christian Bauer 03.07.08 Überblick Entwicklung Die Shader im Detail Programmierung GPGPU Zusammenfassung & Ausblick 1/19 Entwicklung (1) Früher: Berechnung

Mehr

Prozedurale Texturen >>Was nicht passt wird passend gemacht...<<

Prozedurale Texturen >>Was nicht passt wird passend gemacht...<< Prozedurale Texturen >>Was nicht passt wird passend gemacht...

Mehr

Übung: Computergrafik 1

Übung: Computergrafik 1 Prof. Dr. Andreas Butz Prof. Dr. Ing. Axel Hoppe Dipl.-Medieninf. Dominikus Baur Dipl.-Medieninf. Sebastian Boring Übung: Computergrafik 1 Konvolutionen Morphologische Operationen Hough-Transformation

Mehr

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Organisatorisches Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Nächste Woche VO und UE am Dienstag, den 30.10.! UE im CR IL/IT Wissensüberprüfung am Zettel 25.10.2018 IT I - VO 3 1 Organisatorisches

Mehr

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

One of the few resources increasing faster than the speed of computer hardware is the amount of data to be processed. Bin Hu Bin Hu Algorithmen und Datenstrukturen 2 Arbeitsbereich fr Algorithmen und Datenstrukturen Institut fr Computergraphik und Algorithmen Technische Universität Wien One of the few resources increasing faster

Mehr

Computergrafik Universität Osnabrück, Henning Wenke,

Computergrafik Universität Osnabrück, Henning Wenke, Computergrafik Universität Osnabrück, Henning Wenke, 2012-05-14 Kapitel V: Modeling Transformation & Vertex Shader 5.1 Vertex Definitionen: Vertex Vertex Computergrafik Mathematischer Punkt auf einer Oberfläche

Mehr

Refactoring the UrQMD Model for Many- Core Architectures

Refactoring the UrQMD Model for Many- Core Architectures Refactoring the UrQMD Model for Many- Core Architectures Mathias Radtke Semiar: Softwaretechnologie (WS 2013/2014 Goethe-Universität Frankfurt Agenda: 1. UrQMD 2. CPU Vs. GPU 3. Von FORTRAN zu C++/OpenCL

Mehr