GPGPU-Programmierung
|
|
|
- Jan Schäfer
- vor 8 Jahren
- Abrufe
Transkript
1 12 GPGPU-Programmierung 2013/04/25 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken ist im Allgemeinen nicht erlaubt.
2 Motivation (1) General Purpose Computing on Graphics Processing Units (GPGPU) Wurde eingeführt um (bei Spielen) die CPU zu entlasten Physikalische Berechnungen Künstliche Intelligenz Medizinische Bildverarbeitung 12, & fr.wikipedia - 2 -
3 Motivation (2) GPUs haben eine große Anzahl von parallelen Rechenkernen Gut für datenparallele Programme (30 in total ) (240 in total) Die GeForce GTX Titan hat z.b Prozessoren Wie können diese effizient programmiert werden? 12, 2013 Nvidia Best Practice Guide - 3 -
4 Motivation (3) Was sollte bzgl. GPGPU-Applikationen beachtet werden? Threads sollten möglichst unabhängig voneinander sein Zusätzlicher Kopier-Overhead für Daten GPU GPU CPU CPU 12,
5 Geschichte der GPGPU-Programmierung (1) Bis zirka Shader-Sprachen wurden zur Programmierung benutzt Vertex- und Fragment-Shader-Programme void main(void) { gl_fragcolor = vec4 (0.0, 1.0, 0.0, 1.0); } 12, 2013 David Kirk/NVIDIA and Wen-mei W. Hwu, , University of Illinois - 5 -
6 Geschichte der GPGPU-Programmierung (2) Ab 2004 Einführung von Sprachen zum Streamprocessing Z.B. BrookGPU von der Stanford University Nutzung von GPUs als Coprocessor / Beschleuniger Versteckt Komplexität kernel void add_vector(float in1<>, float in2<>, out float out<>) { out = in1 + in2; } float in1<100> = {1.0f, 2.0f,...}; float in2<100> = {2.0f, 3.0f,...}; float out<100>; add_vector(in1,in2,out); Vektoraddition in BrookGPU Code 12,
7 Geschichte der GPGPU-Programmierung (4) Ab 2007 Einführung von CUDA Compute Unified Device Architecture Framework für Streamprocessing auf Nvidia Grafikkarten Ursprünglich nur für Datenparallelität konzipiert Ab 2008 Einführung von OpenCL Allgemeines Framework für Streamprocessing auf Multi- und Manycore- Architekturen Für Daten- und Taskparallelität konzipiert Spezifikation durch die Khronos Group: AMD, Apple, ARM, Creative, Google, Intel, Texas Instruments, Samsung, Nvidia 12,
8 CUDA Adaptiert das Streamprocessing-Konzept Elementare Programmierkomponente => Kernel Keine Rekursion Parameteranzahl ist nicht variabel Unterscheidung von Host- und GPU-Code void add_vector (int* in1, int* in2, int* out) { for ( int id = 0; id < N; id++ ) { out[id] = in1[id] + in2[id] ; } } Vektoraddition in C global void add_vector(int* in1, int* in2, int* out) { int id = (blockidx.x*blockdim.x)+threadidx.x; out[id] = in1[id] + in2[id]; } add_vector<<<n,1>>>( in1, in2, out ); Vektoraddition in Cuda 12,
9 CUDA Entwicklungsprozess Mehrstufig und kompliziert Programmierung von Code für einen Thread Spezifikation der Parallelität per Hand Einige statisch vorgegebene Größen müssen beachtet werden 12,
10 CUDA Kompilierung Mehrstufigen Verfahren für die Kompilierung von CUDA-Programmen GPU- und Host-Code werden getrennt kompiliert GPU-Binaries werden in Host- Code eingebettet Neuster Compiler von Nvidia basiert auf der LLVM Compiler Infrastruktur 12,
11 CUDA Elemente des Frameworks Thread Instanz eines Kernels Block Gruppe von Threads Grid Gesamtheit aller Blocks Host Kernel 1 Device Grid 1 Block (0, 0) Block (0, 1) Block (1, 0) Block (1, 1) Grid 2 Für Thread (2,1) in Block (1,1): threadidx.x: 2 threadidx.y: 1 blockidx.x: 1 blockidx.y: 1 blockdim.x: 4 blockdim.y: 2 griddim.x: 2 griddim.x: 2 Kernel 2 Block (1, 1) Thread (0,0) Thread (0,1) Thread (1,0) Thread (1,1) Thread (2,0) Thread (2,1) Thread (3,0) Thread (3,1) 12, 2013 Nvidia
12 CUDA Abbildungsbeispiel Ein Kernel benötigt z.b. folgende Ressourcen 5 Register pro Thread 1052 Bytes Shared Memory per Block Grid size: 64 Blocks Block size: 256 Threads Beispiel Grafikkarte Max Register Max Bytes Scratchpad-Speicher Max. 768 Threads, 8 Blocks, 24 Warps (Warpgröße 32) Auslastung der Grafikkarte 768 Threads, 3 Blocks, 24 Warps 3156 Bytes Shared Mem., 3840 Register (3*256) (768/32) (3*1052) (3*256*5) 12,
13 CUDA - Speicherallokation cudamalloc() Allokiert globalen Speicher auf der Grafikkarte cudafree() Gibt allokierten Speicher auf der Grafikkarte frei Grid Block (0, 0) Shared Memory Block (1, 0) Shared Memory cudamemcpy() Kopiert in/aus/im globalen Speicher auf der Grafikkarte Registers Thread (0, 0) Registers Thread (1, 0) Registers Thread (0, 0) Registers Thread (1, 0) Host Global Memory 12, 2013 Nvidia
14 CUDA - Speichertransfers Kopieren in/aus/im globalen Speicher Vom Host zur Grafikkarte int *devmemx; cudamalloc((void**) &devmemx, sizeof(int)); // One integer in size int x=0; cudamemcpy(devmemx, &x, sizeof(int), cudamemcpyhosttodevice); Von der Grafikkarte zum Host cudamemcpy(&x, devmemx, sizeof(int), cudamemcpydevicetohost); Auf der Grafikkarte... cudamemcpy(devmemx, devmemy, sizeof(int), cudamemcpydevicetodevice); 12,
15 CUDA Speicherzugriff Globaler/Shared Memory-Speicherzugriff Zugriff auf globalen/shared Speicher ist nicht synchronisiert! Ergebnis von Schreib-/Leseoperationen auf gemeinsamen Speicher? Lösung: Atomare Operationen Vorsicht: Die Ausführungsreihenfolge ist immer noch undefiniert! global void add_up_vector (int* out) { *out+=5; } add_vector_gpu<<<1,5>>>(out); Ergebnis? => out = {5,10,15,20,25}? global void add_up_vector (int* out) { atomicadd(out,5); } add_vector_gpu<<<1,5>>>(out); Ergebnis? => out = 25 12,
16 CUDA Thread Divergenz (1) Ablauf der Threads Vorhersage der tatsächlichen Reihenfolge ist nicht möglich! Programmierer kann aber Synchronisationspunkte setzen global void update(int* x, int* y) { int id = threadidx.x + blockdim.x * blockidx.x; if (id == 60){ sharedx = *x; sharedx = 1; } syncthreads(); if (id == 100) *y = sharedx; } update <<<2,512>>>(in,out); Ergebnis? => *out =? 1; 12,
17 CUDA Thread Divergenz (2) Synchronisation über Blockgrenzen Keine globale Synchronisation innerhalb eines Kernels! Lösung: Kernel aufsplitten und nacheinander ausführen global void update(int* update_1(int* x, int* x, int* y) { y) { int id = threadidx.x + blockdim.x * blockidx.x; if (id == 600) *x = 1; } *x = 1; global syncthreads(); void update_2(int* x, int* y) { if int (id == = threadidx.x 0) + blockdim.x * blockidx.x; if (id == *y 0) = *x; *y = *x; } update_1 <<<2,512>>>(in,out); update_2 <<<2,512>>>(in,out); Ergebnis? => *out =?; 1; 12,
18 CUDA Inline Assembly PTX-Code kann direkt im Kernel benutzt werden Code meist effizienter PTX-Instruktionen keine Hardwarebefehle global void kern(int* x, int* y) { int id = threadidx.x + ; if (id == 0) *x += 1; syncthreads(); if (id == 1) *y = *x; } global void kern(int* x, int* y) { int id = threadidx.x + blockdim.x * blockidx.x; if (id == 0) asm("ld.global.s32 %r9, [%0+0];" "add.s32 %r9, %r9, 1;" "st.global.s32 [%0+0], %r9;" : :"r"(x)); syncthreads(); if (id == 1) *y = *x; } 12,
19 Open Compute Language - OpenCL 12,
20 OpenCL für heterogene Systeme OpenCL ist auf verschiedensten Plattformen zu finden ZiiLabs Tablets Samsung SnuCore 12, 2013 ZiiLabs & Samsung
21 CUDA vs. OpenCL Unterschied zum CUDA-Ansatz Taskparallelität kann modelliert werden OpenCL-Programme werden online kompiliert Unterstützung von heterogenen Systemen (GPUs, CPUs, Cell,...) Ausführung auf Nvidia-GPU Nur anderes Frontend + API Leider schlechterer Compiler OpenCL kann nicht alle CUDA Spezialbefehle nutzen 12, 2013 Nvidia
22 CUDA vs. OpenCL: Speicher Model CUDA Global memory Constant memory Shared memory Local memory OpenCL Global memory Constant memory Local memory Private memory 12, 2013 Nvidia & Patrick Cozzi, GPU Programming and Architecture, University of Pennsylvania
23 CUDA vs. OpenCL : Ausführungs/Progr. Model CUDA Kernel Host program Thread Block Grid global void add_vector ( int* in1, int* in2, int* out) { int id = (blockidx.x*blockdim.x)+threadidx.x; out[id] = in1[id] + in2[id]; } Vektoraddition in Cuda OpenCL Kernel Host program Work item Work group NDRange (index space) kernel void add_vector ( global int in1, global int in2, global int out) { int id = get_global_id(0); out[id] = in1[id] + in2[id]; } Vektoraddition in OpenCL 12, 2013 Nvidia & Patrick Cozzi, GPU Programming and Architecture, University of Pennsylvania
24 OpenCL vs. CUDA: Task-Parallelität Einsortierung von OpenCL-Kernel in Command Queue Synchrone Ausführung Asynchrone Ausführung Kernel A Kernel B Kernel C Kernel D 12,
25 Lokalen Speicher effizient füllen (1) 64 work items in einer work group 8x8 Threads laden einen 10x10 großen lokalen Speicher 12,
26 Lokalen Speicher effizient füllen (2) Thread id 14 (x=6, y=1) 8x8 Threads laden einen 10x10 großen lokalen Speicher 12,
27 Lokalen Speicher effizient füllen (3) x8 Threads laden einen 10x10 großen lokalen Speicher 12,
28 Lokalen Speicher effizient füllen (4) x8 Threads laden einen 10x10 großen lokalen Speicher 12,
29 Lokalen Speicher effizient füllen (5) x8 Threads laden einen 10x10 großen lokalen Speicher 12,
30 Lokalen Speicher effizient füllen (6) x8 Threads laden einen 10x10 großen lokalen Speicher 12,
31 Lokalen Speicher effizient füllen (7) x8 Threads laden einen 10x10 großen lokalen Speicher 12,
32 Lokalen Speicher effizient füllen (8) Natürlichstes Zugriffsmuster , 2013 Zugriffsmuster mit den wenigsten Branches Effizientestes Zugriffsmuster (bei Nvidia GPU)
33 Zusammenfassung Grafikkarten können effizient zur Beschleunigung von parallelen Programmen eingesetzt werden Nvidia setzt auf CUDA (und OpenCL) GPGPU Programmierung ist zeitaufwendig OpenCL bietet Task- und Datenparallelität Eine offene Alternative zu CUDA Einen portablen Code für eine Vielzahl von Geräten 12,
GPGPU-Programming. Constantin Timm Informatik 12 TU Dortmund 2012/04/09. technische universität dortmund. fakultät für informatik informatik 12
12 GPGPU-Programming Constantin Timm Informatik 12 TU Dortmund 2012/04/09 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken ist im Allgemeinen nicht erlaubt. Motivation
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.
Parallele Programmierung mit GPUs
Parallele Programmierung mit GPUs Jutta Fitzek Vortrag im Rahmen des Moduls Parallele Programmierung, WS12/13, h_da Agenda GPUs: Historie GPU Programmierung Konzepte Codebeispiel Generelle Tipps & Tricks
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
Programmierbeispiele und Implementierung. Name: Michel Steuwer E-Mail: [email protected]
> Programmierbeispiele und Implementierung Name: Michel Steuwer E-Mail: [email protected] 2 > Übersicht > Matrix Vektor Multiplikation > Mandelbrotmenge / Apfelmännchen berechnen > Kantendetektion
OpenCL. Seminar Programmiersprachen im Multicore-Zeitalter Universität Siegen Tim Wiersdörfer [email protected].
OpenCL Seminar Programmiersprachen im Multicore-Zeitalter Universität Siegen Tim Wiersdörfer [email protected] Abstract: In diesem Dokument wird ein grundlegender Einblick in das relativ
Grafikkarten-Architektur
> Grafikkarten-Architektur Parallele Strukturen in der GPU Name: Sebastian Albers E-Mail: [email protected] 2 > Inhalt > CPU und GPU im Vergleich > Rendering-Pipeline > Shader > GPGPU > Nvidia Tesla-Architektur
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: [email protected]
Software Engineering für moderne, parallele Plattformen. 9. GPGPUs: Grafikkarten als Parallelrechner. Dr. Victor Pankratius
Software Engineering für moderne, parallele Plattformen 9. GPGPUs: Grafikkarten als Parallelrechner Dr. Victor Pankratius Dr. Victor Pankratius, Dipl.Inform. Frank Otto IPD Tichy Lehrstuhl für Programmiersysteme
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
GPGPU mit NVIDIA CUDA
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
GPGPU-Architekturen CUDA Programmiermodell Beispielprogramm Organiosatorisches. Tutorial CUDA. Ralf Seidler
Friedrich-Alexander-Universität Erlangen-Nürnberg 05.10.2010 Outline 1 GPGPU-Architekturen 2 CUDA Programmiermodell 3 Beispielprogramm 4 Organiosatorisches Outlook 1 GPGPU-Architekturen 2 CUDA Programmiermodell
OpenCL Implementierung von OpenCV Funktionen
Multi-Core Architectures and Programming OpenCL Implementierung von OpenCV Funktionen [email protected] Hardware/Software Co-Design August 18, 2011 1 Table of content 1 OpenCL
CUDA. 7. Vorlesung GPU Programmierung. Danke an Hendrik Lensch
CUDA 7. Vorlesung Thorsten Grosch Danke an Hendrik Lensch Parallele l Programmierung mit der GPU Bisher: GPU = OpenGL Pipeline mit Shadern Alles orientiert sich am Rendering Programme für Eckpunkte und
Cuda Speicherhierarchie
Cuda Speicherhierarchie Threads eines Blocks können über Shared Memory kommunizieren Der Shared Memory ist klein aber sehr schnell Alle Threads können nur über Global Memory kommunizieren Der Global Memory
GPGPU Programming nvidia CUDA vs. AMD/ATI Stream Computing. Seminar HWS 08/09 by Erich Marth
Computing 1 Inhalt Einführung nvidia CUDA AMD Stream Computing CUDA vs. Stream Computing - Warum, Vorteile, Motivation - Überblick, API - Details, Beispiele - Überblick, API - Details, Beispiele - wesentliche
Compute Unified Device Architecture (CUDA)
Compute Unified Device Architecture (CUDA) Thomas Koller 12. Februar 2012 Zusammenfassung Diese Ausarbeitung beschäftigt sich mit der Programmierung von Grafikkarten mittels CUDA. Bei bestimmten Berechnungen
Übersicht 1. Anzeigegeräte 2. Framebuffer 3. Grundlagen 3D Computergrafik 4. Polygongrafik, Z-Buffer 5. Texture-Mapping/Shading 6. GPU 7. Programmierbare Shader 1 LCD/TFT Technik Rotation der Licht-Polarisationsebene
GPU-Computing im Rahmen der Vorlesung Hochleistungsrechnen
GPU-Computing im Rahmen der Vorlesung Hochleistungsrechnen Universität Hamburg Scientific Visualization and Parallel Processing Übersicht Hintergrund und Entwicklung von GPGPU Programmierumgebungen & Werkzeuge
GPU-Computing. Michael Vetter
GPU-Computing Universität Hamburg Scientific Visualization and Parallel Processing @ Informatik Climate Visualization Laboratory @ Clisap/CEN Übersicht Hintergrund und Entwicklung von GPGPU Programmierumgebungen
Grundlagen der Parallelisierung
Grundlagen der Parallelisierung Philipp Kegel, Sergei Gorlatch AG Parallele und Verteilte Systeme Institut für Informatik Westfälische Wilhelms-Universität Münster 3. Juli 2009 Inhaltsverzeichnis 1 Einführung
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
Games with Cellular Automata auf Parallelen Rechnerarchitekturen
Bachelor Games with Cellular Automata auf Parallelen en ( ) Dipl.-Inf. Marc Reichenbach Prof. Dietmar Fey Ziel des s Paralleles Rechnen Keine akademische Nische mehr Vielmehr Allgemeingut für den Beruf
OpenMP. Viktor Styrbul
OpenMP Viktor Styrbul Inhaltsverzeichnis Was ist OpenMP Warum Parallelisierung Geschichte Merkmale von OpenMP OpenMP-fähige Compiler OpenMP Ausführungsmodell Kernelemente von OpenMP Zusammenfassung Was
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
Optimierung eines neuen Logarithmic-Search-Verfahrens zum Image Mosaicing unter Einsatz des CUDA-Frameworks
Fachhochschule Köln, Campus Gummersbach Optimierung eines neuen Logarithmic-Search-Verfahrens zum Image Mosaicing unter Einsatz des CUDA-Frameworks 03.06.2009 Eugen Sewergin, B. Sc. Erstprüfer: Prof. Dr.
Untersuchungen zur Abstraktion der GPU-Programmierung in Java am Beispiel Fluid-Simulation
Masterarbeit Fakultät Informatik Untersuchungen zur Abstraktion der GPU-Programmierung in Java am Beispiel Fluid-Simulation Matthias Klaÿ Kleiberweg 4 86199 Augsburg Tel: 0821 431552 E-Mail: matthias.klass
Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP
Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Dipl. Inf. Thorsten Blaß Programming Systems Group Martensstraße 3 91058 Erlangen Ausblick Motivation Einführung Java/OpenMP (JaMP) JaMP Sprache
Untersuchung und Vorstellung moderner Grafikchiparchitekturen
Fakultät Informatik, Institut für Technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Untersuchung und Vorstellung moderner Grafikchiparchitekturen Hauptseminar Technische
GPGPU Architectures - Compiler Techniques and Applications SS 2012
Seminar on GPGPU Architectures - Compiler Techniques and Applications SS 2012 Embedded Systems Group Department of Computer Science University of Kaiserslautern Preface The widespread use of so-called
1 Einleitung. 2 Parallelisierbarkeit von. Architektur
Beschleunigung von Aufgaben der parallelen Bildverarbeitung durch Benutzung von NVIDIA-Grafikkarten mit der Compute Unified Device Architecture (CUDA) Roman Glebov [email protected] Abstract Diese Arbeit
Parallele Algorithmen mit OpenCL. Universität Osnabrück, Henning Wenke, 2013-05-08
Parallele Algorithmen mit OpenCL Universität Osnabrück, Henning Wenke, 2013-05-08 Aufräumen Ressourcen in umgekehrter Abhängigkeitsreihenfolge freigeben Objekte haben Reference-Count (RC), initial 1 clrelease
Multicore Herausforderungen an das Software-Engineering. Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010
Multicore Herausforderungen an das Software-Engineering Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010 Inhalt _ Motivation _ Herausforderung 1: Hardware _ Herausforderung 2: Software-Partitionierung
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
Moderne parallele Rechnerarchitekturen
Seminar im WS0708 Moderne parallele Rechnerarchitekturen Prof. Sergei Gorlatch Dipl.-Inf. Maraike Schellmann [email protected] Einsteinstr. 62, Raum 710, Tel. 83-32744 Dipl.-Inf. Philipp Kegel
Automatisches Multi-GPU Scheduling in OpenCL
Automatisches Multi-GPU Scheduling in OpenCL vorgelegt von Dipl.-Math. Wolfgang Welz Diplomarbeit am Fachgebiet Kommunikations- und Betriebssysteme Prof. Dr. Hans-Ulrich Heiß Institut für Telekommunikationssysteme
Die Sandy-Bridge Architektur
Fakultät Informatik - Institut für Technische Informatik - Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Die Sandy-Bridge Architektur René Arnold Dresden, 12. Juli 2011 0. Gliederung 1.
GPGPU-Architekturen CUDA CUDA Beispiel OpenCL OpenCL Beispiel. CUDA & OpenCL. Ralf Seidler. Friedrich-Alexander-Universität Erlangen-Nürnberg
CUDA und OpenCL Friedrich-Alexander-Universität Erlangen-Nürnberg 24. April 2012 Outline 1 GPGPU-Architekturen 2 CUDA 3 CUDA Beispiel 4 OpenCL 5 OpenCL Beispiel Outlook 1 GPGPU-Architekturen 2 CUDA 3 CUDA
Algorithmen für moderne Rechnerarchitekturen
Jörn Fischer [email protected] Willkommen zur Vorlesung Algorithmen für moderne Rechnerarchitekturen Vorstellung Zu meiner Person... 2 ALR - Jörn Fischer - [email protected] Büro: A113a Überblick
Diplomarbeit Antrittsvortrag
Diplomarbeit Antrittsvortrag Christian Müller Run-time byte code compilation, interpretation and optimization for Alice Betreuer: Guido Tack Verantwortlicher Prof.: Gert Smolka Die nächsten 15 Minuten...
MITK-OpenCL: Eine Erweiterung für das Medical Imaging Interaction Toolkit
MITK-OpenCL: Eine Erweiterung für das Medical Imaging Interaction Toolkit Jan Hering 1,2, Ingmar Gergel 1, Susanne Krömker 2, Hans-Peter Meinzer 1, Ingmar Wegner 1 1 Abt. Medizinische und Biologische Informatik,
OpenGL. (Open Graphic Library)
OpenGL (Open Graphic Library) Agenda Was ist OpenGL eigentlich? Geschichte Vor- und Nachteile Arbeitsweise glscene OpenGL per Hand Debugging Trend Was ist OpenGL eigentlich? OpenGL ist eine Spezifikation
Projektseminar Parallele Programmierung
HTW Dresden WS 2014/2015 Organisatorisches Praktikum, 4 SWS Do. 15:00-18:20 Uhr, Z136c, 2 Doppelstunden o.g. Termin ist als Treffpunkt zu verstehen Labore Z 136c / Z 355 sind Montag und Donnerstag 15:00-18:20
I Grundlagen der parallelen Programmierung 1
vii I Grundlagen der parallelen Programmierung 1 1 Einführung...... 3 1.1 Paradigmenwechsel in der Softwareentwicklung..... 4 1.2 Anwendungsbereiche...... 5 1.3 Parallelität in der Hardware..... 5 1.3.1
GPU-Programmierung: OpenCL
GPU-Programmierung: OpenCL Markus Hauschild Seminar: Multicore Programmierung Sommerstemester 2009 04.06.2009 1 Inhaltsverzeichnis 1 GPU-Programmierung 3 1.1 Entwicklung von Grafikkarten..................
Linux-Cluster mit Raspberry Pi. Dr. René Richter Sächsische Studienakademie Dresden rene.richter@ba-dresden rene.richter@namespace-cpp.
Linux-Cluster mit Raspberry Pi Dr. René Richter Sächsische Studienakademie Dresden rene.richter@ba-dresden [email protected] Lange Nacht der Wissenschaften 2013 Moore s Law Moore s Law (1965)
Seminar GPU-Programmierung/Parallelverarbeitung
Seite iv Literaturverzeichnis 1) Bengel, G.; et al.: Masterkurs Parallele und Verteilte Systeme. Vieweg + Teubner, Wiesbaden, 2008. 2) Breshears, C.: The Art of Concurrency - A Thread Monkey's Guide to
Smartphone Entwicklung mit Android und Java
Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de [email protected] Was ist Android Offene Plattform für mobile Geräte Software Kompletter
Der Goopax Compiler GPU-Programmierung in C++ ZKI AK-Supercomputing, Münster, 27.03.2014, Ingo Josopait
Der Goopax Compiler GPU-Programmierung in C++ AMD R9 290X: 5.6 TFLOPS (SP MulAdd) Programmierung ~10000 Threads Entwicklungsumgebungen Entwicklungsumgebungen CUDA, OpenCL Compiler: kernel GPU Maschinencode
Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn 07.12.2010 1
Ein kleiner Einblick in die Welt der Supercomputer Christian Krohn 07.12.2010 1 Vorschub: FLOPS Entwicklung der Supercomputer Funktionsweisen von Supercomputern Zukunftsvisionen 2 Ein Top10 Supercomputer
(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert?
SoSe 2014 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 2 2014-04-28 bis 2014-05-02 Aufgabe 1: Unterbrechungen (a) Wie unterscheiden sich synchrone
Aktuelle Trends und Herausforderungen in der Finite-Elemente-Simulation
Aktuelle Trends und Herausforderungen in der Finite-Elemente-Simulation Kai Diethelm GNS Gesellschaft für numerische Simulation mbh Braunschweig engineering software development Folie 1 Überblick Vorstellung
App-Entwicklung für Android
App-Entwicklung für Android Einleitung - Systemarchitektur Hochschule Darmstadt WS15/16 1 Inhalt Historie Systemarchitektur Sandbox 2 Motivation Kontra Pro Limitierte Größe Begrenzte Ressourcen Kein Standardgerät
OPENCL. Praktikum Parallele Rechnerarchitekturen, 2015w Franz Richter-Gottfried
OPENCL Praktikum Parallele Rechnerarchitekturen, 2015w Franz Richter-Gottfried INFRASTRUCTURE Overview, Manuals https://faui36a.informatik.uni-erlangen.de/trac/puppet/wiki/systemlist https://faui36a.informatik.uni-erlangen.de/trac/puppet/wiki/slurmintroduction
Rechnernutzung in der Physik. Betriebssysteme
Rechnernutzung in der Physik Betriebssysteme 1 Betriebssysteme Anwendungsprogramme Betriebssystem Treiber BIOS Direkter Zugriff von Anwenderprogrammen auf Hardware nur in Ausnahmefällen sinnvoll / möglich:
Leistungs- und Geschwindigkeitssteigerung. Dipl.-Ing. Sebastian F. Kleinau Applikationsingenieur
Leistungs- und Geschwindigkeitssteigerung von LabVIEW-Projekten Dipl.-Ing. Sebastian F. Kleinau Applikationsingenieur Agenda 1. Einführung 2. Hilfreiche Werkzeuge zur Codeanalyse 3. Benchmarks für LabVIEW-VIs
Samsungs Exynos 5 Dual
Fakultät Informatik, Institut für Technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Samsungs Exynos 5 Dual Candy Lohse Dresden, 12.12.12 Gliederung 1. Motivation und
Blockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester 2015. Tim Conrad
Blockseminar: Verteiltes Rechnen und Parallelprogrammierung Sommer Semester 2015 Tim Conrad Staff Tim Conrad AG Medical Bioinformatics email: [email protected] Telefon: 838-51445 Büro: Raum 138,
Paralleles Rechnen. (Architektur verteilter Systeme) von Thomas Offermann Philipp Tommek Dominik Pich
Paralleles Rechnen (Architektur verteilter Systeme) von Thomas Offermann Philipp Tommek Dominik Pich Gliederung Motivation Anwendungsgebiete Warum paralleles Rechnen Flynn's Klassifikation Theorie: Parallel
Seminar - Paralleles Rechnen auf Grafikkarten
Seminar - Paralleles Rechnen auf Grafikkarten Seminarvortrag: Übersicht über die Programmierung von Grafikkarten Marcus Schaber 05.05.2009 Betreuer: J. Kunkel, O. Mordvinova 05.05.2009 Marcus Schaber 1/33
GPU-BESCHLEUNIGTE PACKUNGSOPTIMIERUNG. André Müller, Johannes J. Schneider, Elmar Schömer
GPU-BESCHLEUNIGTE PACKUNGSOPTIMIERUNG André Müller, Johannes J. Schneider, Elmar Schömer BETRACHTETES PACKPROBLEM gegeben N = 5, 6,,50 harte Kugeln in Dimension d mit ganzzahligen Radien r i = 1,2,,N gesucht
GPU Programmierung. Thorsten Grosch
Thorsten Grosch Willkommen zur ersten Vorlesung! g Heute Organisatorisches Vorstellung von Team und Vorlesung Historischer Rückblick zu GPUs 2 Das Team Vorlesung Jun.-Prof. Thorsten Grosch AG Computervisualistik
Mit Cloud Power werden Sie zum
Mit Cloud Power werden Sie zum Herzlich Willkommen! Christian Hassa Managing Partner TechTalk Software AG Agenda Mobile App Development mit Xamarin Pause Azure Mobile Services Q&A 9h00-10h30 10h30-10h50
MULTICORE- UND GPGPU- ARCHITEKTUREN
MULTICORE- UND GPGPU- ARCHITEKTUREN Korbinian Pauli - 17. November 2011 Seminar Multicore Programmierung, WS11, Universität Passau 2 Einleitung Klassisches Problem der Informatik: riesige Datenmenge! Volkszählung
Fachgebiet Programmiermethodik Prof. Dr. Claudia Leopold. Seminar Programmierung von Grafikkarten. GPGPU Basiskonzepte. von.
Fachgebiet Programmiermethodik Prof. Dr. Claudia Leopold Seminar Programmierung von Grafikkarten GPGPU Basiskonzepte von Marc Kirchhoff Inhaltsverzeichnis 1 Einleitung 2 2 Streams, Kernels und Prozessoren
Seminar: Grafikprogrammierung
Game Developer Converence 08 Seminar: Grafikprogrammierung Alexander Weggerle 17.04.08 Seite 2 Einführung Themenüberblick Organisatorisches Seminarablauf liches Seite 3 Einführung Seminar Motivation Vorbereitung
Eine Einführung Computergrafik SS14 Timo Bourdon
Eine Einführung Computergrafik SS14 Timo Bourdon Organisatorisches Übung am Freitag den 11. Juli entfällt! Zum OpenGL-Übungsblatt OpenGL 3.0 oder höher notwendig (Shading Language 1.50 oder höher) CIP
GPU-basierte Beschleunigung von MapReduce am Beispiel von OpenCL und Hadoop
am Beispiel von OpenCL und Masterseminar Hochschule für Technik, Wirtschaft und Kultur Leipzig Leipzig, 02.11.2011 Gliederung 1 Grundlagen 2 3 Gliederung 1 Grundlagen 2 3 Was ist? Clustersystem zur verteilten
VIRTUALISIERUNG IN MIKROKERN BASIERTEN SYSTEMEN
Fakultät Informatik Institut für Systemarchitektur, Professur Betriebssysteme VIRTUALISIERUNG IN MIKROKERN BASIERTEN SYSTEMEN Henning Schild Dresden, 5.2.2009 Definition Einführung von Abstraktionsschichten
Mobile Application Development
Mobile Application Development Android: Einführung Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Lernziele Der/die Kursbesucher/in kann
Bibliotheks-basierte Virtualisierung
Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2015/2016 V. Sieh Bibliotheks-basierte Virtualisierung (WS15/16)
Grafiktreiber im Linuxkernel - die Außenseiter -
Grafiktreiber im Linuxkernel - die Außenseiter - Creative Commons by-nc-nd Grundlagen Was ist eine Grafikkarte? Grundlagen Was ist eine Grafikkarte? Ausgabelogik Grundlagen Was ist eine Grafikkarte? Ausgabelogik
Linux wird echtzeitfähig: RT-Extension vs. PREEMPT_RT
Linux wird echtzeitfähig: RT-Extension vs. PREEMPT_RT Carsten Emde Open Source Automation Development Lab (OSADL) eg Zitat aus dem Jahre 2004, unbekannte Quelle It's impossible to turn a General Purpose
Eine Einführung in die Architektur moderner Graphikprozessoren
Eine Einführung in die Architektur moderner Graphikprozessoren Seminarvortrag von Sven Schenk WS 2005/2006 Universität Mannheim, Lehrstuhl für Rechnerarchitektur Inhalt Historische Eckpunkte Einführung
Introduction Workshop 11th 12th November 2013
Introduction Workshop 11th 12th November 2013 Lecture I: Hardware and Applications Dr. Andreas Wolf Gruppenleiter Hochleistungsrechnen Hochschulrechenzentrum Overview Current and next System Hardware Sections
Grid-Systeme. Betrachtung verschiedener Softwareplattformen zur Realisierung von Grids und Vorstellung des Globus Toolkit. 07.06.2002 Grid Systeme 1
Grid-Systeme Betrachtung verschiedener Softwareplattformen zur Realisierung von Grids und Vorstellung des Globus Toolkit 07.06.2002 Grid Systeme 1 Gliederung Vorstellung verschiedener Plattformen Globus
Wie groß ist die Page Table?
Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten
Die beste Infrastruktur ist nur so schnell, wie der Code der darauf läuft. Fallbeispiel Wettervorhersage
Die beste Infrastruktur ist nur so schnell, wie der Code der darauf läuft Fallbeispiel Wettervorhersage VPE Swiss Workshop, HSR 24. Januar 2013 David Müller, Tobias Gysi Vision trifft Realität. Supercomputing
Synthese Eingebetteter Systeme. 14 Abbildung von Anwendungen auf Multicore-Systeme
12 Synthese Eingebetteter Systeme Wintersemester 2012/13 14 Abbildung von Anwendungen auf Multicore-Systeme Michael Engel Informatik 12 TU Dortmund 2012/12/19 Abbildung von Anwendungen auf Multicores Multicore-Architekturen
Staff. Tim Conrad. Zeitplan. Blockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester 2013. Tim Conrad
Blockseminar: Verteiltes Rechnen und Parallelprogrammierung Sommer Semester 2013 Tim Conrad Staff Tim Conrad AG Computational Proteomics email: [email protected] Telefon: 838-51445 Büro: Raum 138,
Hardware Virtualisierungs Support für PikeOS
Virtualisierungs Support für PikeOS Design eines Virtual Machine Monitors auf Basis eines Mikrokernels Tobias Stumpf SYSGO AG, Am Pfaenstein 14, 55270 Klein-Winternheim HS Furtwangen, Fakultät Computer
Betriebssysteme Vorstellung
Am Anfang war die Betriebssysteme Vorstellung CPU Ringvorlesung SE/W WS 08/09 1 2 Monitor CPU Komponenten eines einfachen PCs Bus Holt Instruktion aus Speicher und führt ihn aus Befehlssatz Einfache Operationen
GPU Programmierung. Thorsten Grosch
Thorsten Grosch Willkommen zur ersten Vorlesung! g Heute Organisatorisches Vorstellung von Team und Vorlesung Historischer Rückblick zu GPUs 2 Das Team Vorlesung Jun.-Prof. Thorsten Grosch AG Computervisualistik
Lösung der zweidimensionalen Wirbeltransportgleichung auf NVIDIA Grafikkarten - Bachelorarbeit -
Lösung der zweidimensionalen Wirbeltransportgleichung auf NVIDIA Grafikkarten - Bachelorarbeit - Seminar des Fachgebiets Optimierung bei partiellen Differentialgleichungen 13. Januar 2011 Gliederung 1
SAP NetWeaver Gateway. Connectivity@SNAP 2013
SAP NetWeaver Gateway Connectivity@SNAP 2013 Neue Wege im Unternehmen Neue Geräte und Usererfahrungen Technische Innovationen in Unternehmen Wachsende Gemeinschaft an Entwicklern Ausdehnung der Geschäftsdaten
Programmierung von Smart Cards mit Hilfe von Java
Java Card 2.1.2 Programmierung von Smart Cards mit Hilfe von Java Übersicht 1. Einführung Smart Cards 2. Java Card Spezifikationen 3. Java Card Development Kit 4. Java Card in der Praxis und Fazit 1. Einführung
