GPGPU-Architekturen CUDA CUDA Beispiel OpenCL OpenCL Beispiel. CUDA & OpenCL. Ralf Seidler. Friedrich-Alexander-Universität Erlangen-Nürnberg
|
|
- Johann Adler
- vor 7 Jahren
- Abrufe
Transkript
1 CUDA und OpenCL Friedrich-Alexander-Universität Erlangen-Nürnberg 24. April 2012
2 Outline 1 GPGPU-Architekturen 2 CUDA 3 CUDA Beispiel 4 OpenCL 5 OpenCL Beispiel
3 Outlook 1 GPGPU-Architekturen 2 CUDA 3 CUDA Beispiel 4 OpenCL 5 OpenCL Beispiel
4 Eine kurze Geschichte der Grafikkarten Ursprünglich: Video Card steuert Monitor an Mitte 80er: Grafikkarten mit 2D-Beschleunigung angelehnt an Arcade- und Home-Computer Frühe 90er: erste 3D-Beschleunigung: Matrox Mystique, 3dfx Voodoo Rastern von Polygonen Textur Polygon Abbildung
5 Eine kurze Geschichte der Grafikkarten Direct3D 10 Pipeline
6 Eine kurze Geschichte der Grafikkarten 2000er: Zunächst nur Fixed-Function-Pipeline Shader-Programme bieten mehr Flexibilität Shader-Programme ursprünglich nur einfache Listen 2002: ATI Radeon 9700 kann Loops in Shadern ausführen Heute: Shader turing-vollständig Hersteller: Intel, ATI und NVIDIA Massenmarkt niedrige Preise
7 GPGPUs GPGPU = General Purpose Graphics Processing Unit Grafikkarten zunehmend flexibler programmierbar Stetig wachsende Leistung Geeignet für Streamprozessing: Geringes Verhältnis IO-zu-Rechenlast Datenparallelität (SIMD-Verarbeitung) Single precision wichtiger als double precision
8 Aufbau GPGPU Bus- Interface (z.b. PCIe) GPGPU Multi-Prozessor Shader Shader... Lokaler Speicher Globaler Speicher Multi-Prozessor...
9 Eigenschaften von GPGPUs Viele einfache Cores, genannt Skalarprozessoren (SP) Keine Sprungvorhersage etc. Gruppiert in Multi-Prozessoren (Vektorprozessoren) Probleme bei nicht einheitlichen Sprüngen Viele Register Großer, langsamer, globaler Speicher (Latenz: Taktzyklen) Kleine, schnelle on-chip Shared-Memory-Blöcke
10 GPGPU: GeForce G80 / Geforce GT200
11 GPGPU: Geforce GF 100
12 GPGPU: AMD Cayman
13 Programmierung Sehr viele, kurzlebige Threads Threads in Blöcken gruppiert Blöcke auf Multi-Prozessoren verteilt Standards: CUDA (NVIDIA, Marktführer) OpenCL (offener Standard, entsprechend zu OpenGL) FireStream (AMD) DirectCompute (Microsoft)
14 GPU Systeme am Lehrstuhl faui36i und faui36j mit je 2 Intel Xeon 2.66 GHz 24 GB DDR3-Ram faui36i - Fermi-System: 3 Nvidia Tesla C2050 (448 Cores (13 x 32 Cores)) 3 GB GDDR5 (144 GB/s) 1.03 TFlops SP, 515 GFlops DP 1 Nvidia Geforce GTX 480 (480 Cores (14 x 32 Cores)) 1.5 GB GDDR5 (177.4 GB/s) 1.34 TFlops SP, 100 GFlops DP faui36j: 1 AMD Radeon HD 6970 (1536 Cores (24 x 16 Cores (4 Fach VLIW))) 2 GB GDDR5 (174 GB/s) 2.73 TFlops SP, 676 GFlops DP 1 Nvidia Tesla C1060 (240 Cores (30 x 8 Cores)) 4 GB GDDR3 (102 GB/s) 1.05 TFlops SP, 74 GFlops DP
15 Outlook 1 GPGPU-Architekturen 2 CUDA 3 CUDA Beispiel 4 OpenCL 5 OpenCL Beispiel
16 CUDA Einstieg I Programmierung in C einzelne Funktionen laufen auf GPU in sog. Kernels (Function-Offloading) Compiler nvcc separiert Code, baut auf gcc auf Programm wird in Host-Code (Standard C) und Device-Code (CUDA) unterteilt Unterscheidung der Funktionen durch Qulifier host als CPU Funktionen (nicht notwendig) device GPGPU Funktionen (wichtig) global Einsprungpunkte in CUDA Code
17 CUDA Einstieg - Speicherverwaltung Speicher wird ebenfalls durch Qualifier beschrieben normaler Speicher im System-RAM device in globalem Speicher auf der GPU shared im Shared-Memory auf den Multiprozessoren CUDA-API für Speicheroperationen Allokation/Deallokation von globalem Speicher (cudamalloc()) Transfer System-RAM GPU-RAM (cudamemcpy()) In Kernels Transfer globaler Speicher Shared-Memory Zusätzliche spezielle Speicherbereiche Konstanten (gecached) Texturen (gecached, mehrdimensionale Adressierung, Filterung)
18 NVCC in Detail Die wichtigsten Schalter Alle nicht-cuda Schalter werden an gcc/g++ weitergegeben (z.b. -g) -G - Erstellt Debugging Informationen für den cuda-gdb -ptxas-options=-v - Generiert Kernelinformationen (Anzahl der Register pro Thread, Shared-Memory, Local Memory,...) -arch=sm_xx - Stellt die Zielarchitektur ein (xx {10,11,12,13,20})
19 Outlook 1 GPGPU-Architekturen 2 CUDA 3 CUDA Beispiel 4 OpenCL 5 OpenCL Beispiel
20 Matrixmultiplikation - Kernel # define DIM 1024 / / Size of Ma tr ix global void matmul ( f l o a t a, f l o a t b, f l o a t c ) { i n t 2 coord ; coord. x = blockdim. x b l o c k I d x. x+ threadidx. x ; coord. y = blockdim. y b l o c k I d x. y+ threadidx. y ; f l o a t sum =0; for ( i n t z =0; z<dim ; z ++) { sum +=a [ coord. y DIM+z ] b [ z DIM+coord. x ] ; } c [ coord. y DIM+coord. x ]=sum ; }
21 Matrixmultiplikation - Main i n t main ( ) { dim3 blockdim ( 1 6, 1 6, 1 ) ; dim3 griddim ( DIM / blockdim. x, DIM / blockdim. y, 1 ) ; f l o a t a [ DIM DIM ], b [ DIM DIM ], res [ DIM DIM ] ; f i l l ( a, b ) ; f l o a t deva, devb, devres ; i n t bytesize = DIM DIM sizeof ( f l o a t ) ; cudamalloc ( ( void )&deva, bytesize ) ; cudamalloc ( ( void )&devb, bytesize ) ; cudamalloc ( ( void )&devres, bytesize ) ; cudamemcpy ( deva, a, bytesize, cudamemcpyhosttodevice ) ; cudamemcpy ( devb, b, bytesize, cudamemcpyhosttodevice ) ; matmul<<<griddim, blockdim >>>(deva, devb, devres ) ; cudadevicesynchronize ( ) ; cudamemcpy ( res, devres, bytesize, cudamemcpydevicetohost ) ; cleanup ( ) ; return 0; }
22 Outlook 1 GPGPU-Architekturen 2 CUDA 3 CUDA Beispiel 4 OpenCL 5 OpenCL Beispiel
23 Kurzer Überblick Was ist OpenCL Offener Standard zur Programmierung paralleler Architekturen Jede Architekture die Treiber zur Verfügung stellt wird unterstützt Populäre: AMD: Radeon HD 4000 und später, x86 Architekturen ab Phenom II Nvidia: Alle GPUs, die auch CUDA unterstützen Intel: Alle neueren Intel CPUs, ab Ivy-Bridge auch die GPUs Intel und AMD CPUs werden von AMD und Intel Treibern unterstützt, meist Intel deutlich schneller
24 Plattform-Modell
25 Plattform-Modell(II) Host führt das OpenCL-Programm aus verwaltet die Compute Devices Compute Device Genutzte Rechenresource Bsp: Grafikkarte, Prozessor, Cell-Blade Compute Unit zusammenschluss einzelner Processing Elemente Bsp: Rechenkern, Rechnwerk CUDA: Streaming Multiprozessor Processing Element Eigentliches Rechenelement CUDA: Skalar Prozessor
26 Ausführungsmodell Indexraum (NDRange) 1-, 2- oder 3-dimensional Globale ID eines Work-Items Bei CUDA keine direkte Entsprechung: lässt sich über Block-ID und Thread-ID berechnen
27 Ausführungsmodell Work-Item entspricht Kernelinstanz CUDA: Thread Work-Group Zusammenfassung von Work-Items gemeinsamer Speicher CUDA: Thread-Block
28 Speichermodell Global Memory Der Arbeitsspeicher des Compute Device Constant Memory Teil des Global Memory konstant während Programmausführung
29 Speichermodell(II) Data Cache optionale Daten-Cache für Zugriffe auf den globalen/konstanten Speicher erst mit neuem Shader-Model 2.0 bei NVidia
30 Speichermodell(III) Local Memory lokaler Speicher einer Workgroup CUDA: Shared Memory Private Memory privater Speicherbereich eines Work-Items CUDA: Register oder in CUDA Local Memory
31 Speichermodell(IV) Zugriffsrechte
32 Outlook 1 GPGPU-Architekturen 2 CUDA 3 CUDA Beispiel 4 OpenCL 5 OpenCL Beispiel
33 OpenCL: Matrixmultiplikation - Kernel # define DIM 1024 / / Size of Ma tr ix kernel void matmul ( global f l o a t a, global f l o a t b, global f l o a t c ) { i n t coordx = g e t _ g l o b a l _ i d ( 0 ) ; i n t coordy = g e t _ g l o b a l _ i d ( 1 ) ; f l o a t sum =0; for ( i n t z =0; z<dim ; z ++) { sum +=a [ coordy DIM+z ] b [ z DIM+coordx ] ; } c [ coordy DIM+coordx ] =sum ; }
34 OpenCL: Matrixmultiplikation - Main i n t main ( ) {... clgetplatformid (& p l a t f o r m ) ; clgetdeviceids ( platform, CL_DEVICE_TYPE_GPU,1,& device, NULL ) ; c t x =clcreatecontext (0,1,& device, NULL, NULL, NULL ) ; queue=clcreatecommandqueue ( ctx, device, 0, NULL ) ; prog=clcreateprogramwithsource ( ctx, 1, f i l e ( " k e r n e l. c l " ), length, NULL ) ; clbuildprogram (... ) ; k e r n e l = clcreatekernel ( prog, " matmul ",NULL ) ; cl_mem a_dev= c l C r e a t e B u f f e r ( ctx,cl_mem_read_write, size, NULL, NULL ) ;.... clenqueuewritebuffer ( queue, a_dev,cl_true, 0, size, a_host, 0,NULL, NULL ) ; clsetkernelarg ( kernel, 0, sizeof ( cl_mem),& a_dev ) ;... clenqueuendrangkernel ( queue, kernel, 2,NULL,& global_ws,& local_ws, 0,NUL clenqueuebarrier ( queue ) ; read_back ( ) ; output ( ) ; clreleasekernel (.. ) ; return 0; }
35 OpenCL: C++ Bindings OpenCL-Handhabung mit C umständlich Deshalb einfache C++-Wrapper zur Kapselung Unter der Haube passiert nichts anderes Dafür deutlich entspannter zu programmieren C- und C++-Doku unter:
36 OpenCL: Beispiel mit OpenCL-C++ Bindings i n t main ( ) {... vector < c l : : Platform > p l a t f o r m ; vector < c l : : Device > device ; c l : : Platform : : get ( p l a t f o r m ) ; p [ 0 ]. getdevices (CL_DEVICE_TYPE_GPU, device ) ; c l : : Context c t x = c l : : Context ( device ) ; c l : : CommandQueue queue = c l : : CommandQueue( ctx, device [ 0 ] ) ; c l : : Sources src = getsources ( " kernel. c l " ) ; c l : : Program prog = c l : : Program ( ctx, src ) ; prog. b u i l d ( device ) ; c l : : Kernel k e r n e l = c l : : Kernel ( prog, " matmul " ) ; c l : : NDRange g l o b a l = c l : : NDRange( DIM, DIM ) ; c l : : KernlFunctor matmul = c l : : KernelFunctor ( kernel, queue ) ; c l : : B u f f e r a_dev = c l : : B u f f e r ( ctx,cl_mem_read_only ) ; queue. enqueuecopybuffer ( a, a_dev, 0, 0, bytesize ) ;... matmul ( a_dev, b_dev, c_dev ) ; queue. enqueuebarrier ( ) ; queue. enqueuecopybuffer ( c_dev, c, 0, 0, bytesize ) ;... }
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
MehrGPGPU-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
MehrEinfü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
MehrEine kurze Geschichte der Grafikkarten
3.1 Einführung Eine kurze Geschichte der Grafikkarten ursprünglich: Graphics Card steuert Monitor an Mitte 80er: Grafikkarten mit 2D-Beschleunigung angelehnt an Arcade- und Home-Computer frühe 90er: erste
MehrCUDA. 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
MehrMasterpraktikum 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
MehrCompute 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:
MehrMasterpraktikum 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)
MehrPraxiseinheit: 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.
MehrGrafikkarten-Architektur
> Grafikkarten-Architektur Parallele Strukturen in der GPU Name: Sebastian Albers E-Mail: s.albers@wwu.de 2 > Inhalt > CPU und GPU im Vergleich > Rendering-Pipeline > Shader > GPGPU > Nvidia Tesla-Architektur
MehrOpenCL. 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
MehrProseminar. GPU-Computing Cuda vs. OpenCL. SS 2013 Alexander Stepanov
Proseminar GPU-Computing Cuda vs. OpenCL SS 2013 Alexander Stepanov Inhaltsverzeichnis 1. Einführung: Warum GPU Computing? CPU vs. GPU GPU Architektur 2. CUDA Architektur Beispiel Matrix Multiplikation
MehrGrundlagen 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
MehrGPGPU WITH OPENCL. Praktikum Parallele Rechnerarchitekturen, 2015w Franz Richter-Gottfried
GPGPU WITH OPENCL Praktikum Parallele Rechnerarchitekturen, 2015w Franz Richter-Gottfried INFRASTRUCTURE Enqueue interactive job srun --gres --pty bash Graphics cards available for tesla_k20,
MehrViele Rechenaufgaben können auf verschiedene CPUs und/oder Maschinen aufgeteilt und verteilt werden, um die Leistung zu steigern
3.2 Heterogene Multi-Core-Architekturen: Cell BE Viele Rechenaufgaben können auf verschiedene CPUs und/oder Maschinen aufgeteilt und verteilt werden, um die Leistung zu steigern Herkömmliche CPUs und Techniken
MehrSoftware 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
MehrGPGPU-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
MehrCUDA. 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:
MehrPhysikalische Berechnungen mit General Purpose Graphics Processing Units (GPGPUs)
Fakultätsname XYZ Fachrichtung XYZ Institutsname XYZ, Professur XYZ Physikalische Berechnungen mit General Purpose Graphics Processing Units (GPGPUs) im Rahmen des Proseminars Technische Informatik Juni
MehrGeneral 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
MehrProgrammierbeispiele 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
MehrGPGPU-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
MehrOpenCL. 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
MehrRheinisch-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
MehrRST-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
MehrGPGPU-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
MehrParallele 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
MehrMESIF- (links) vs. MESI-Protokoll (rechts)
2.3 Beispiele für Multikern-Architekturen 2.3.1 Intel-Nehalem-Architektur MESIF- (links) vs. MESI-Protokoll (rechts) Annahme: Prozessor links unten und rechts oben haben Kopie MESIF : Nur Prozessor, dessen
MehrSeminar Multicore-Programmierung
Multicore- und GPGPU-Architekturen Fakultät für Informatik und Mathematik Universität Passau 04. November 2010 APUs / 1 / 39 Inhaltsverzeichnis I APUs / APUs / 2 / 39 Inhaltsverzeichnis II APUs / 3 / 39
MehrMulticore-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
MehrSoftware 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
MehrYilmaz, 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
MehrFerienakademie Erik Muttersbach
Ferienakademie 2009 - Erik Muttersbach 1. Einführung 2. Kernels, Threads, Blocks 3. CUDA Execution Model 4. Software Stack 5. Die CUDA Runtime API 6. Speichertypen/ Zugriff 7. Profiling und Optimierung
MehrProgrammierung 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
MehrUntersuchung der OpenCL-Programmierplattform zur Nutzung für rechenintensive Algorithmen
Hochschule für Technik, Wirtschaft und Kultur Leipzig Fakultät für Informatik, Mathematik und Naturwissenschaften Masterprojekt Untersuchung der OpenCL-Programmierplattform zur Nutzung für rechenintensive
MehrOpenCL. Seminar Programmiersprachen im Multicore-Zeitalter Universität Siegen Tim Wiersdörfer tim.wiersdoerfer@student.uni-siegen.
OpenCL Seminar Programmiersprachen im Multicore-Zeitalter Universität Siegen Tim Wiersdörfer tim.wiersdoerfer@student.uni-siegen.de Abstract: In diesem Dokument wird ein grundlegender Einblick in das relativ
MehrParallel Computing in der industriellen Bildverarbeitung
SOLUTIONS FOR MACHINE VISION Parallel Computing in der industriellen Bildverarbeitung Dipl.-Inform. Alexander Piaseczki Research and Development Sirius Advanced Cybernetics GmbH Tools & Solutions für die
MehrOpenCL 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
MehrParallele 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
MehrGliederung. 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
MehrGPGPU 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
MehrOpenCL. Multi-Core Architectures and Programming (Seminar) Apelt, Nicolas / Zöllner, Christian
OpenCL Multi-Core Architectures and Programming (Seminar) Apelt, Nicolas / Zöllner, Christian Hardware-Software-Co-Design Universität Erlangen-Nürnberg Apelt, Nicolas / Zöllner, Christian 1 Was ist OpenCL?
MehrParallele Algorithmen mit OpenCL. Universität Osnabrück, Henning Wenke,
Parallele Algorithmen mit OpenCL Universität Osnabrück, Henning Wenke, 2013-04-17 Kapitel I OpenCL Einführung Allgemeines Open Compute Language: API für einheitliche parallele Programmierung heterogener
MehrWorld of Warcraft. Mindestvoraussetzungen
World of Warcraft Betriebssystem Windows XP / Windows Vista / Windows 7 Windows 7 / Windows 8 64-bit mit Windows 8 mit aktuellstem Servicepack aktuellstem Servicepack Prozessor Intel Core 2 Duo E6600 oder
MehrGPU-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
MehrGPGPUs am Jülich Supercomputing Centre
GPGPUs am Jülich Supercomputing Centre 20. April 2012 Jochen Kreutz Jülich Supercomputing Centre (JSC) Teil des Forschungszentrums Jülich und des Institute for Advanced Simulation (IAS) betreibt Supercomputer
MehrOPENCL. 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
Mehr1 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 roman@glebov.de Abstract Diese Arbeit
MehrComputergrafik Universität Osnabrück, Henning Wenke,
Computergrafik Universität Osnabrück, Henning Wenke, 2012-06-25 Kapitel XV: Parallele Algorithmen mit OpenCL 15.1 Parallele Programmierung Quellen: V.a. Wikipedia. Leistungsdaten unter Vorbehalt. Bitte
MehrMotivation (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
MehrPrinzipieller Aufbau der Architektur eines Multikern- Prozessors. Programmierung Standard-Mulitkern-Prozessoren mit OpenMP
3.1 Einführung Multi-Core-Architekturen Motivation Multikern-Prozessoren Prinzipieller Aufbau der Architektur eines Multikern- Prozessors Programmierung Standard-Mulitkern-Prozessoren mit OpenMP Programmierung
MehrGPU-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..................
MehrGPU Architektur CUDA - OpenCL
GPU Architektur und Programmiermöglichkeiten für GPGPU-Anwendungen kernel void matsq( global const float *mat, global float *out ) { int dim = get_global_size(0); //Matrix dimension int i = get_global_id(0);
MehrAnsätze 4. GPU. Echtzeit- Raytracing. Polygon- Rendering. Computerspiele Sommer (c) 2013, Peter Sturm, Universität Trier 1
4. GPU Ansätze Echtzeit- Raytracing Modell und Materialeigenschaften auf Raytracer Kontinuierliche Darstellung Polygon- Rendering CPU wählt darzustellende Polygone aus Render Pipeline (c) 2013, Peter Sturm,
MehrCuda 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
MehrSeminararbeit GPU Architektur und Programmiermöglichkeiten für GPGPU-Anwendungen
Seminararbeit GPU Architektur und Programmiermöglichkeiten für GPGPU-Anwendungen Marius Gräfe University of Kaiserslautern, Embedded Systems Group m graefe10@cs.uni-kl.de 25. Oktober 2012 Alone we can
MehrArchitektur und Programmierung von Grafik- und Koprozessoren
Architektur und Programmierung von Grafik- und Koprozessoren General Purpose Programmierung auf Grafikprozessoren Stefan Zellmann Lehrstuhl für Informatik, Universität zu Köln SS2018 Host Interface Ausführungszeit
MehrAutomatische OpenCL-Code-Analyse zur Bestimmung von Speicherzugriffsmustern
Automatische OpenCL-Code-Analyse zur Bestimmung von Speicherzugriffsmustern Bachelorarbeit Moritz Lüdecke 8. Juli 2014 INSTITUT FÜR TECHNISCHE INFORMATIK - LEHRSTUHL FÜR RECHNERARCHITEKTUR UND PARALLELVERARBEITUNG
MehrFPGA Beschleuniger. Your Name. Armin Jeyrani Mamegani Your Organization (Line #2)
FPGA Beschleuniger 15.12.2008 Armin Jeyrani Mamegani Your Name HAW Hamburg Your Title Department Your Organization Informatik (Line #1) Your Organization (Line #2) Einleitung Wiederholung aus AW1: Handy
MehrAutomatisches 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
MehrCompute 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
MehrParallele Algorithmen mit OpenCL. Universität Osnabrück, Henning Wenke,
Parallele Algorithmen mit OpenCL Universität Osnabrück, Henning Wenke, 203-04-24 Was bisher geschah Host Device Platform Führt aus Führt aus Device Context Applikation Java, C++, Kernel (OpenCL C) Memory
MehrMULTICORE- 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
MehrGPGPU 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
MehrIntels Tick-Tock-Prinzip
2.3 Beispiele für Multikern-Architekturen 2.3.1 Von Intel-Nehalem- bis Haswell-Architektur Intels Tick-Tock-Prinzip Gleiche Mikroarchitektur und Prozess-Technologiesprung (Tick) Neue Mikroarchitektur (Tock)
MehrGPUs. Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg
GPUs Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg Vorgelegt von: Johannes Coym E-Mail-Adresse: 4coym@informatik.uni-hamburg.de
MehrHardware-unabhängige Beschleunigung von Medizinischer Bildverarbeitung mit OpenCL
Hardware-unabhängige Beschleunigung von Medizinischer Bildverarbeitung mit OpenCL Christian Siegl 1, Hannes G. Hofmann 1, Benjamin Keck 1, Marcus Prümmer 1, Joachim Hornegger 1,2 1 Lehrstuhl für Mustererkennung,
MehrInteraktive 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Ü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
MehrGPGPU 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
MehrHardware-unabhängige Beschleunigung von Medizinischer Bildverarbeitung mit OpenCL
Hardware-unabhängige Beschleunigung von Medizinischer Bildverarbeitung mit OpenCL Christian Siegl 1, Hannes G. Hofmann 1, Benjamin Keck 1, Marcus Prümmer 1, Joachim Hornegger 1,2 1 Lehrstuhl für Mustererkennung,
MehrLEISTUNGSVERGLEICH 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
MehrGerät Preis* CPU, VGA, HD, RAM Ausstattung
1 PC Ultra 559.- CPU: Intel Core Duo ab 3,0 GHz RAM: 8 GB HD: 128 GB SSD + 1 TB HDD VGA: GeForce GTX 750 2GB GDDR5 robuster Verarbeitung. Neben starken verfügt der PC Ultra über eine hochwertige Grafikkarte
MehrGrundlagen der Spieleprogrammierung
Grundlagen der Spieleprogrammierung Teil I: 3D-Graphik Kapitel 8: Hardware Peter Sturm Universität Trier Outline 1. Übersicht und Motivation 2. Mathematische Grundlagen 3. Das Ideal: Photorealistisch (Raytracing,
MehrStream Processing und High- Level GPGPU Sprachen
Stream Processing und High- Level GPGPU Sprachen Seminar Programmierung von Grafikkarten Jens Breitbart Problem 5000% 4000% 3000% 2000% Rechenleistung: +71% pro Jahr Bandbreite: +25% pro Jahr Zugriffszeit:
MehrComputer in Meiderich Computer in Meiderich. Einstecken und fertig! Windows bereits installiert. Monitor, Tastatur und Mouse einstecken und loslegen!
Computer in Meiderich Computer in Meiderich Bald ist es wieder so weit! terra 2250W Öffnungszeiten : Montag - Freitag : Samstag: Samstag nur Verkauf, kein Service! Einstecken und fertig! Windows bereits
MehrNeue Dual-CPU Server mit Intel Xeon Scalable Performance (Codename Purley/Skylake-SP)
Neue Dual-CPU Server mit Intel Xeon Scalable Performance (Codename Purley/Skylake-SP) @wefinet Werner Fischer, Thomas-Krenn.AG Webinar, 17. Oktober 2017 Intel Xeon Scalable Performance _ Das ist NEU: Neue
MehrUntersuchung 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
Mehr2. Architektur von Hochleistungsprozessoren 2.1 Einführung Multi-Core-Architekturen. Motivation Multikern-Prozessoren
2.1 Einführung Multi-Core-Architekturen Motivation Multikern-Prozessoren Prinzipieller Aufbau der Architektur eines Multikern- Prozessors Programmierung Standard-Mulitkern-Prozessoren mit OpenMP 1 2.1
MehrElektrohandel. Dirk ter Meer. Gutes muss nicht Teuer sein!!
Kingston HyperX 4GB 1600MHZ DDR3 O-ECC Kingston 4GB 1600MHz DDR3 Kit, HyperX. Memory: DDR3, 240-pin DIMM, PC/server, 1 x 4096, DIMM Hersteller : Kingston HyperX Herstellerartikelnr. : KHX1600C9D3/4G EA
MehrApple imac 5,1-20 Zoll (Late 2006)
Apple imac 5,1-20 Zoll (Late 2006) - Prozessor: Core 2 Duo 2x2166 MHz - Arbeitsspeicher : 2048 MB - Festplatte : 250 GB - Laufwerk: DVDRW - Grafik onboard: ATI Radeon Xpress 1600 128 MB - Grafik Zusatz:
MehrMulticore 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
Mehr298,- DDR3. Intel EGA-PCI0001. Office: Gaming: Multimedia: Gesamt: Upgrade Möglichkeiten. I. Die Rechner werden nur auf Abholung Vorort verkauft.
Intel EGA-PCI0001» Intel Pentium G860 2,8GHz (boxed) TDP: 65W L3-Cache: 3MB shared» Mainboard matx (Sockel: 1155) ASRock H61M-S» Festplatte 500 GByte, 7200rpm» 2 GB DDR3 Speicher, 1333MHz» VGA & Sound
MehrProdukte und Preise TERRA PC
Gehäuse - Formfaktor Micro-Format Micro-Format Micro-Format Midi Tower Midi Tower Midi Tower Art# 1009446 1009466 1009468 1009415 1009471 1009424 Bezeichnung TERRA PC-MICRO 3000 SILENT GREENLINE MUI TERRA
MehrProdukte und Preise TERRA PC
Serie Business Business Business Business Business Business Business Business Gehäuse - Formfaktor Micro-Format Micro-Format Micro-Format Micro-Format Micro-Format Midi Tower Midi Tower Midi Tower Art#
MehrPredator G3. Premium Design. Advanced Technology. Immersive entertainment
- 1 - Desktop PCs Predator G3 Der neue Acer Predator G3 - Designed für Gaming und HD- Entertainment. Angetrieben von der neuesten CPU-Generation und von High-End Grafikkarten lässt er keine Wünsche offen
MehrEine 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
MehrGPGPU 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
MehrCUDA. 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
MehrParallelisierung der Matrixmultiplikation
Ein Beispiel für parallele Algorithmen Ivo Hedtke hedtke@math.uni-jena.de www.minet.uni-jena.de/~hedtke/ ehem. Hiwi am Lehrstuhl für Wissenschaftliches Rechnen (Prof. Dr. Zumbusch) Institut für Angewandte
MehrSeminar: 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
Mehr2.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.
MehrCUDA by Example. Paralleles Rechnen auf der Grafikkarte. Leipzig, Paul Jähne SethosII
CUDA by Example Paralleles Rechnen auf der Grafikkarte Leipzig, 31.03.2017 Paul Jähne SethosII 1 Warum? 2 Aufbau CPU geringe Latenz große Zwischenspeicher besser für serielle Ausführung GPU hohe Rechenleistung
MehrIntels Tick-Tock-Prinzip
2.3 Beispiele für Multikern-Architekturen 2.3.1 Intel-Nehalem-Architektur Intels Tick-Tock-Prinzip Gleiche Mikroarchitektur Prozess-Technologiesprung Neue Mikroarchitektur mit gleicher Prozess-Technologie
MehrProzessor- und Rechnerarchitekturen (Master)
Prozessor- und Rechnerarchitekturen (Master) Themen am 28.06.17: Semesterrückblick, Terminplanung Ihrer Vorträge ProRecArc17_V10 Ulrich Schaarschmidt HS Düsseldorf, SS 2017 V1 (5.4.): Termine + mögliche
Mehr