GPGPU mit NVIDIA CUDA



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

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 7: Prozesse und Möglichkeiten

Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn

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

Compute Unified Device Architecture CUDA

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

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

Programmierbeispiele und Implementierung. Name: Michel Steuwer

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

Inhalt. Fragestellungen. ...we make the invisible visible... Analysen und deren Anwendung Erfahrungen

Intel Cluster Studio. Michael Burger FG Scientific Computing TU Darmstadt

Bündelkarteien bis zur 111mit Selbstkontrolle

Walkabout: Location Based Services mit Android und dem Google Phone

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Software Systems Engineering

Aufgabenstellung Praktikum Mikrorechentechnik Sommersemester 2014

OpenCL. OpenCL. Boris Totev, Cornelius Knap

Internet Explorer Version 6

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

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

Informatik Java-Programmierkurs im Rahmen der Berufs- u. Studienorientierung für Schüler. Joliot-Curie-Gymnasium GR 2010 Nico Steinbach

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Verteilte Paarprogrammierung mit Eclipse

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

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

Parallele Programmierung mit OpenMP

Moderne parallele Rechnerarchitekturen

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

Dokumentation QuickHMI Runtime Manager

Praktikum Grundlagen der Programmierung. Diverse Grundlagen. Dr. Karsten Tolle

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

Algorithmen und Programmieren II Einführung in Python

EFI LECTOR. Systemanforderungen Einzelplatz. Einzelplatz: Betriebssysteme: Datenbanksystem:

Excel beschleunigen mit dem mit Windows HPC Server 2008 R2

Lehrstuhl Informatik VI Grundzüge der Informatik * WS 2008/2009 Prof. Dr. Joachim Biskup

General Purpose Computation on GPUs

Senioren helfen Junioren

Praktikum Grundlagen der Programmierung. Dokumentation. Dr. Karsten Tolle

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

ROFIN App Benutzerhandbuch. Version 1.0

Übung: Verwendung von Java-Threads

Kundenbefragung als Vehikel zur Optimierung des Customer Service Feedback des Kunden nutzen zur Verbesserung der eigenen Prozesse

Kontrollstrukturen - Universität Köln

Filemaker Module. Einführung in die Vorteile modularer Filemaker Programmierung. Karsten Risseeuw, Kursiv Software

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Mikrocontroller Grundlagen. Markus Koch April 2011

BraLUG-Cluster Idee, Konzept und Umsetzung. Uwe Berger; 2005

Projektmanagement. Vorlesung von Thomas Patzelt 9. Vorlesung

Thema: Hardware-Shader

Hochschule Bremen. Rechnerstrukturen Labor WS 04/05 I7I. Thema: Grafikkarten. Laborbericht. Datum

Einführung in Javadoc

Wir gehen aus von euklidischen Anschauungsraum bzw. von der euklidischen Zeichenebene. Parallele Geraden schneiden einander nicht.

Mobile Payment Einführung Definition Szenarien Technologien Fazit

Installations Guide für YAJSW und DTLDAP

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

Einführung in die Informatik

GPGPU-Programmierung

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

Whitebox-Tests: Allgemeines

I.1 Die Parrot Assemblersprache

Algorithmen mit Python

Game Engine Architecture and Development. Platform Unabhängiger Code Multi Threading in Game Engines Profiling

Implementierung eines M2M Back-end Servers

Seminar GPU-Programmierung/Parallelverarbeitung

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Staff. Tim Conrad. Zeitplan. Blockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester Tim Conrad

BIF/SWE - Übungsbeispiel

Java Entwicklung für Embedded Devices Best & Worst Practices!

OpenCL Implementierung von OpenCV Funktionen

Tag der Umweltmeteorologie Michael Kunz

GPGPU-Programmierung

Dokumentation für das Spiel Pong

Nicht ohne mein Handy! Mobil?

PROBLEME BEIM INSTALLIEREN REALTEK HD AUDIO TREIBER

Dokumentation zum Genehmigungsverfahren im Programm CIPDialog

Verarbeitung und Darstellung digitaler Modelle der Terrakotta-Armee des Kaisers Qin Shi Huang

Alte Software auf neuer Hardware, Neue Software auf alter Hardware

Masterpraktikum Scientific Computing

Überblick Produkte. ORACLE AS 10g R3 JAVA Programming. (5 Tage)

MULTI-TIER RECHENZENTRUM - EIN DESIGN DER ZUKUNFT? Patrick Pulvermüller

Lasersteuerung. Themengruppen FTDI - Interface ILDA Format Ausgabensteuerung Figurenerstellung Lasershowerstellung Lasershowarten Software / Community

SOLISYON GMBH CHRISTIAN WOLF, BENJAMIN WEISSMAN. Optimierung von Abfragen in MS SQL Server DWH-Umgebungen

Ein Ausflug zu ACCESS

Installation der SAS Foundation Software auf Windows

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt

Professionelle Seminare im Bereich MS-Office

GPU-Computing. Michael Vetter

Paper- Prototyping. Workshop. Eine Usability-Methode. Ellen Reitmayr, Antenne Springborn

TREND SEARCH VISUALISIERUNG. von Ricardo Gantschew btk Berlin Dozent / Till Nagel

Citrix XenDesktopHDX 3D Pro

Google Analytics einrichten

Highspeedaufnahmen mit dem Arduino Uno Board

App Entwicklung mit Hilfe von Phonegap. Web Advanced II - SS 2012 Jennifer Beckmann

Ressourceneinsatzplanung in der Fertigung

Transkript:

01.07.12 GPGPU mit NVIDIA CUDA General-Purpose on Formatvorlagecomputing des Graphics Processing durch Units Untertitelmasters mit KlickenCompute bearbeiten NVIDIA Unified Device Architecture

Gliederung 01.07.12 Warum GPU? Architektur Programmieraufwand 1 (einfach) 2 (komplex) Alternativen MPI zu CUDA Funktionalität? 2/19

Warum GPU? 01.07.12 Quelle: NVIDIA CUDA C Programming Guide Aber: SIMD! 3/19

Architektur 01.07.12 (1) Architektur eines Kepler-GK110 Chips Quelle: NVIDIA Kepler GK110 Architecture Whitepaper 4/19

Architektur 01.07.12 (2) Quelle: NVIDIA Kepler GK110 Architecture Whitepaper, NVIDIA Fermi GF110 Architecture Whitepaper 5/19

Code 01.07.12 e Wie viel muss man wissen um sein Code auf der GPU laufen zu lassen? Grafik Programmierung wie OpenGL oder DirectX Nein Low Level Programmierung wie Assembler oder PTX Nein C/C++ Ja If you know C then you know CUDA After a short introduction Ansonsten gibt es auch Third Party Wrapper für Python, Perl, Fortran, Java, Ruby, Lua, Haskell, MATLAB, IDL, Mathematica Und sogar Webbasiert mit NCLab 6/19

01.07.121 Opening/Closing auf GPU: Implementierung von Erosion und Dilatation als Lösung für Parallel & Distributed Computing Praktikum (R. Moore) 7/19

01.07.121 Serieller CPU Code für die Erosion: 8/19

01.07.121 Paralleler GPU Code für die Erosion: 9/19

01.07.121 Aufruf des GPU Kernels: 10/19

01.07.121 Messwerte: CPU: Intel Xeon E5504 (8 Kerne irrelevant, nur einer wird benutzt) GPU: NVIDIA GeForce GTX 480 (480 Kerne) 500x667 + 16-faches Closing 333 500 Threads 1680x1050px + 64-faches Closing 1 764 000 Threads 10000x10000px + 256-faches Closing 100 000 000 Threads CPU GPU Gewinn 547 ms 2,8 ms x 190 12,1 sek 48,4 ms x 251 97 min 9,5 sek x 612 Maximale Anzahl der Threads für ein Kernel: (2³²-1) x (65536) x (65536) x (1024) = 18889465931478580854784 (Laut Dokumentation, ich habe es nicht ausprobiert) 11/19

01.07.122 Tracks Suche für den PANDA Detektor mit Hilfe von Hough-Transformation 12/19

01.07.122 Quelle: http://www.gsi.de/uploads/pics/fair-topologie.jpg 13/19

01.07.122 PANDA antiproton ANnihilation at DArmstadt Quelle: http://www-panda.gsi.de/framework/detector.php 14/19

01.07.122 Optimierungen: Speicheroptimierung Shared, Constant, Texture und deren Speicherzugriffe. Konfigurationsoptimierung Verteilung der Arbeit auf die einzelne SMs. Optimierung des Codes Loop unrolling, Reduktion des Registerverbrauchs. Reduktion der Verzweigungen Verzweigungen reduzieren die Parallelität! 15/19

01.07.122 Messwerte Hardware: - Intel Xeon - Nvidia GeForce GTX 480 ( 480 Kerne ) CPU GPU Improvement Occupancy time in ms time in ms x % 117138 489 240 startup() 0,25 0,011 23 2% N setorigin() clear Hough and Peaks c onforma landhough() findp e a k s InHoughS pa c e () 0,25 3 73 51 0,011 0,0393 0,7156 0,2332 23 76 102 219 25% 100% 25% 1 00% N N N N Cuda memset S ha re d, c ons ta nt S ha re d finddoublepointpeaksinhoughspace() collectpeaks() sortpeaks() 4 4 0,25 0,0643 0,0654 0,0549 62 61 5 100% 100% 2% N N N constant TODO? resetorigin() 0,25 0,011 23 25% N 22444 0,8863 25323 33% 1 N =Numbe r of points T ota l runtime for N = 335 (w ithout Z Ana lys is ) Oleksiy Rybalchenko c ountp oints C los e2012 T ot ra c k AndT ra c k Pa ra ms () Sommersemester 16/19 Runs Notes S ha re d, c ons ta nt

Alternativen 01.07.12 Portabilität Dokumentation Leistung Funktionalität Tools, Libraries???? DirectCompute CUDA Community Showcase 17/19

MPI 01.07.12 Kann CUDA MPI-ähnliche Funktionalität bieten? Ja: GPUDirect Quelle: http://developer.download.nvidia.com/assets/cuda/images/toolsscreenshots/rdma.png 18/19

Danke 01.07.12 Fragen? 19/19