GPU Architektur CUDA - OpenCL
|
|
- Krista Winkler
- vor 6 Jahren
- Abrufe
Transkript
1 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); //index 1 int k = get_global_id(1); //index 2 float val = 0; for( int l = 0; l < dim; l++ ) val += mat[dim*i+l] * mat[dim*l+k]; } out[dim*i+k] = val; GPU Architektur CUDA - OpenCL 1
2 Inhalt Motivation GPU Architektur CUDA und OpenCL Grundlegendes Prozessmodell Parallelisierung Speicherhierarchie (Inter-Thread) Synchronisation und Kommunikation Einschub: Inline PTX Assembler bei CUDA Vergleich zwischen CUDA und OpenCL (Codebeispiele) 3
3 Motivation CPU vs. GPU Anzahl Cores Core i7-3930k: 6 HD 7970: 2048 GTX 680: 1536 FLOPS (single-precision) Core i7-3930k: 307 GFLOPS HD 7970: 3789 GFLOPS GTX 680: 3090 GFLOPS Pentium 4 3,2 GHz: 6,4 GFLOPS Speicherbandbreite DDR3-2133: 17 GB/s HD 7970: 264 GB/s 4
4 Wenn GPUs so schnell sind Warum ersetzen wir nicht unsere CPU durch eine GPU? Fundamental andere Aufgabenfelder GPUs sind gut im Number Crunching aber nicht so flexibel wie CPUs GPUs sind immer noch aufgabenspezifische Hardware Algorithmen müssen sich parallelisieren lassen Bei sequentiellen Alg. ist die CPU (viel) besser CPUs implementieren Virtualisierung, Virtuellen Speicher, Branch-Prediction usw. GPUs kommen mit Branches nicht gut klar 5
5 GPU Architektur Eine GPU ist ein massiver Parallelrechner Aktuelle Modelle: Über 2000 Kerne Aber: Kerne im Gegensatz zur CPU nicht vollwertig Teilen sich viele Einheiten, wie z.b. Caches Ist auf Stream-Verarbeitung ausgelegt Ideal: großer Datenstrom auf dem einfache, lineare Berechnungen parallel ausgeführt werden 8
6 Gliederung einer GPU Die Hardware lässt sich grob in 4 Bereiche einteilen: Hauptspeicher Rechenkerne Auch Shadereinheiten genannt Caches Aufgabenspezifische Hardware 9
7 Hauptspeicher Rechenkerne Caches Aufgabenspez. Hardware Gliederung einer GPU - Hauptspeicher Aufbewahrungsort für die zur Berechnung benötigten Daten Große Kapazität (mehrere Gigabyte) Große Bandbreite (z.b. HD 7970: 264 GB/s) Aber: Große Zugriffslatenz (teils mehrere 100 Zyklen) Nicht geeignet als temporärer Zwischenspeicher 10
8 Hauptspeicher Rechenkerne Caches Aufgabenspez. Hardware Gliederung einer GPU - Rechenkerne Aus dem Kontext der Computergrafik auch Shadereinheiten genannt Einfache, skalare Gleitkommaprozessoren Werden zu Gruppen zusammengefasst Teilen sich innerhalb einer Gruppe z.b. Integer, Branching oder Textureinheiten, häufig auch Register Im Gegensatz zu CPU keinesfalls ein vollwertiger Kern 11
9 Hauptspeicher Rechenkerne Caches Aufgabenspez. Hardware Gliederung einer GPU - Caches Im Gegensatz zur CPU extrem klein (im Kilobyte-Bereich) Anzahl viel kleiner als bei einer CPU Häufig kein L3- sondern nur ein geteilter L2-Cache, Kerne innerhalb einer Gruppe teilen sich einen L1- Cache 12
10 Hauptspeicher Rechenkerne Caches Aufgabenspez. Hardware Gliederung einer GPU Aufgabenspezifische Hardware Nicht programmierbar Übernehmen allgemeine Managementaufgaben oder vorgeschriebene Schritte der Grafikpipeline Cache-Controller, Bus-Interfaces, Texturfilter, Rasterisierung, etc. Besonderheit: (Thread-) Scheduling ebenfalls in Hardware implementiert Sehr schnell 13
11 Wie kann eine GPU Programmiert werden? Vorstellung zweier Technologien 14
12 NVIDIA CUDA (Compute Unified Device Architecture) Proprietärer Standard von NVIDIA Speziell für GPUs entwickelt Läuft nur auf NVIDIA Hardware CUDA SDK für Windows, Linux, Mac OS X Sprache: C for CUDA C mit speziellen Erweiterungen (neue Schlüsselwörter und Datentypen) Ist häufig minimal schneller als der OpenCL-Gegenpart da spezialisiert auf NVIDIA Hardware GPU-Unterstützung: ab der G8x-Serie, inklusive der Linien GeForce, Quadro und Tesla 15
13 Ursprünglich von Apple entwickelt OpenCL (Open Computing Language) Offener Standard, wird heute von der Khronos Group verwaltet (die auch den OpenGL Standard verwaltet) OpenCL ist nur ein Standard In der Regel erstellen die Hardware-Hersteller die konkrete Implementierung für ihre Geräte Ist nicht beschränkt auf GPUs, läuft auf allem sofern eine standardkonforme Implementierung existiert Implementierungen von AMD, NVIDIA, Sony(Cell), Intel (x86) etc. AMD und NVIDIA liefern ihre Implementierung mit dem Grafikkartentreiber aus (Windows: OpenCL.dll) Sprache: OpenCL C C mit speziellen Erweiterungen (neue Schlüsselwörter und Datentypen) GPU-Unterstützung: AMD: ab DirectX 11 Grafikkarten (HD 5xxx, ATI FirePro Vx800) NVIDIA: Nvidia Tesla C/D/S, Nvidia GeForce GTS/GT/GTX, Nvidia Ion, Nvidia Quadro FX/NVX/Plex 16
14 Prozessmodell Das einfachste Prozessmodell umfasst vier Schritte: 1. Daten vom Hauptspeicher des Host-Rechners in den Hauptspeicher der Grafikkarte kopiert 2. Die CPU beauftragt GPU mit der Berechnung 3. Die GPU führt das Programm parallel in CUDA Threads / Work Items aus 4. Das Resultat wird zur Weiterverarbeitung bzw. Auswertung aus dem Hauptspeicher der Grafikkarte zurück in den Hauptspeicher des Host-Rechners übertragen 17
15 Parallelisierung unter OpenCL und CUDA Problem wird in Teilprobleme aufgeteilt (Work Item, CUDA Thread) Aufteilung kann in 1, 2 oder 3 Dimensionen erfolgen Für jedes Teilproblem wird das selbe Programm bzw. der selbe Code bzw. der selbe Kernel ausgeführt Jeder Kernel wird in einem eigenen Thread ausgeführt Threads (bzw. Kernel) werden auf die (Shader-)Cores der GPU aufgeteilt Teilprobleme werden zu Gruppen zusammengefasst (Work Group, CUDA Thread Block) Jede Kernel-Instanz (Thread) kann hat Zugriff auf die Problemgröße, Gruppengröße und ihre Position innerhalb des Problems und innerhalb der Gruppe Thread-Instanz weis so auf welchen Daten sie operieren soll 18
16 Aufteilung in Teilprobleme und Teilproblemgruppen 1-Dimensionale Aufteilung: Problem Größe: Gruppe mit der ID 0 Größe: 4 Thread/Kernel mit der ID 11 Bei CUDA ist die ID relativ zur Gruppe und nicht zum globalen Problem, ID wäre dann 3* *Bei CUDA kann die globale ID ausgerechnet werden: blockidx.x*blockdim.x + threadidx.x 19
17 Aufteilung in Teilprobleme und Teilproblemgruppen 2-Dimensionale Aufteilung: Problemgröße: 8x8 Gruppengröße: 4x4 0,0 1,0 2,0 3,0 4,0 5,0 6,0 7,0 0,1 1,1 2,1 3,1 4,1 5,1 6,1 7,1 0,2 1,2 2,2 3,2 4,2 5,2 6,2 7,2 0,3 1,3 2,3 3,3 4,3 5,3 6,3 7,3 0,4 1,4 2,4 3,4 4,4 5,4 6,4 7,4 0,5 1,5 2,5 3,5 4,5 5,5 6,5 7,5 Thread/Kernel mit der ID 7,2 (CUDA: 3,2) Gruppen-Ids: 0,0 1,0 0,1 1,1 0,6 1,6 2,6 3,6 4,6 5,6 6,6 7,6 0,7 1,7 2,7 3,7 4,7 5,7 6,7 7,7 3-Dimensionale Aufteilung analog 20
18 Speicherhierarchie OpenCL CUDA Beschreibung Zugriff Typ. Größe host global constant local private host global constant shared registers Speicher des Host- Programms, also der normale Arbeitsspeicher des PCs Hauptspeicher der Grafikkarte Kann nur von Host-Programm geschrieben werden, für Kernel read-only Kleiner, schneller Speicher welcher für jede Thread- Gruppe existiert Noch kleinerer, noch schnellerer Speicher welcher für jeden Thread existiert Nur Host- Programm Jede Kernel- Instanz/ jeder Thread Jede Kernel- Instanz/jeder Thread Nur jeweils eine Thread-Gruppe Nur einzelner Thread Zugriffszeiten: global: ca Zyklen, local/shared: ~5 Zyklen 2-16 GB 1-8 GB 64 kb kb 16 kb Geschwindigkeit Größe 21
19 Speicherhierarchie (2) Host host Device (Grafikkarte) PCIe: 8-16 GB/s (global: bis 260 GB/s) global und constant Work-Group / CUDA Thread Block local / shared Work-Group / CUDA Thread Block local / shared Work-item / CUDA-Thread Work-item / CUDA-Thread Work-item / CUDA-Thread Work-item / CUDA-Thread Work-item / CUDA-Thread Work-item / CUDA-Thread private / registers private / registers private / registers private / registers private / registers private / registers 22
20 Warum diese Unterteilung in Threadgruppen und warum diese komplizierte Speicherhierarchie? (Geometrisch) nah beieinander liegende Threads sollen auf Daten mit nah beieinanderliegenden Speicheradressen operieren So wird Nutzen aus den kleinen Caches gezogen Speicherhierarchie minimiert den Einfluss der großen Latenz des Hauptspeichers Kommunikation zwischen Threads ist (innerhalb einer Gruppe) ohne Umwege über den Hauptspeicher möglich 23
21 Synchronisation und Kommunikation zwischen Threads Kommunikation Synchronisation Threads der selben Gruppe local/shared Speicher oder (viel langsamer) globaler Speicher CUDA: synchthreads() threadfence() OpenCL: barrier(clk_local_mem_fence) barrier(clk_global_mem_fence) Threads unterschiedlicher Gruppen Ausschließlich über globalen Speicher Nur über Host-Programm Kommunikation zwischen Threads schwierig Synchronisation fast nur innerhalb einer Threadgruppe möglich nur memory-barriers, keine critical sections, mutexes o. Ä.! Falls möglich vermeiden! 24
22 Wie können GPUs Millionen Threads handhaben? Threads sind nicht vollwertig Eingeschränkte Synchronisation und Kommunikation Keine Critical Sections usw. Thread Verwaltung und Scheduling ist in dedizierter Hardware implementiert Kontextwechsel sind Hardware-Implementiert und daher sehr schnell Häufig Kontextwechsel bei (GPU-)Speicher-Anfragen: Thread wird schlafen gelegt bis die Daten da sind Ein anderer Thread kann in der Zeit den Prozessor nutzen 25
23 Einschub: Inline PTX Assembler bei CUDA PTX (Parallel Thread Execution) Assembly ist CUDA s interne Assemblersprache Compiler (nvcc) erstellt PTX-Assembly Lässt sich durch Inline PTX-Assembly auch in CUDA C nutzen Syntax: asm("template-string" : "constraint"(output) : "constraint"(input)); Template-String enthält PTX-Befehl und Platzhalter für die Ein- bzw. Ausgabeparameter Constraints enthalten (im wesentlichen Größen-) Beschränkungen der Ein- bzw. Ausgabeparameter Gleichheitszeichen vor dem Constraint kennzeichnet geschriebene Parameter Durch Kommas abgetrennt können mehrere Ein- bzw. Ausgaben definiert werden Platzhalter für Ein- und Ausgaben können mehrfach verwendet werden Beispiel: int i; int j = 5; int k = 5; asm("add.s32 %0, %1, %2;" : "=r"(i) : "r"(j), "r"(k)); //i is now 10 26
24 CUDA: Inline PTX-Assembler (Forts.) Längeres Beispiel mit mehrfacher Nutzung der Platzhalter device int cube(int x) //calculate x^3 { int y; asm(".reg.u32 t1;" // temporal register t1 "mul.lo.u32 t1, %1, %1;" // t1 = x * x "mul.lo.u32 %0, t1, %1;" // y = t1 * x : "=r"(y) : "r"(x) ); // output : y, input : x return y; } Anweisungszeilen werden mittels der normalen C/C++ String-Syntax aneinander gereiht Demonstratives Beispiel return x*x*x; währe einfacher gewesen und erzeugt vermutlich besseren Code 27
25 Vergleich zwischen OpenCL und CUDA CUDA ist beschränkt auf GPGPU-Anwendungen auf Hardware von NVIDIA + Dokumentation, Tools und Framework greifen nahtlos ineinander + Gute Optimierungsmöglichkeiten, da Hardwarenah (z.b. Inline PTX) + Neue Möglichkeiten der Hardware zeitnah verwendbar (häufig neue CUDA-Version vor Veröffentlichung der zugehörigen Hardware) Abhängigkeit OpenCL ist ein offener und viel universeller einsetzbarer Standard für Berechnungen auf Parallelrechnern + Universalität + Unabhängigkeit ± Abstraktion der Hardware Performance geringer Lange Versionsintervalle Herstellereigene Erweiterungen sind zwar zeitnah verfügbar, aber Unabhängigkeit geht verloren 28
26 Vergleich der Performance zw. OpenCL und CUDA Messergebnisse basierend auf dem Paper A Performance Comparison of CUDA and OpenCL von K. Karimi, N. Dickson und F. Hamze Autoren nutzen eine wissenschaftliche Applikation (AQUA), welche ein Quanten-Spin-System simuliert Die existierende CUDA-Implementierung wurde nach OpenCL portiert Kernel: semi-automatische Generierung Host-Code: größtenteils neu geschrieben Unterschiedliche Laufzeiten resultieren im Wesentlichen aus dem zugrunde liegenden Framework Gemessen wurden: Laufzeit der Kernel (d.h. rein zur Berechnung benötigte Zeit) Zeit für Speichertransfers Laufzeit der GPU-Anwendung (d.h. im Wesentlichen die Summe der gerade genannten Punkte) Gesamtlaufzeit inklusive Setup, Erkennung der GPU, Kompilierung der Kernel, etc. 29
27 Vergleich der Performance zw. OpenCL und CUDA Von OpenCL zusätzlich benötigte Zeit in Prozent Zeit OpenCL Zeit CUDA 1 Qubits (Problemgröße) Kernellaufzeit Datentransfer GPU-Laufzeit Gesamtlaufzeit 8 13,8 22,2 13,7 45, ,9 53,3 22,7 38, , ,4 26, , ,7 50, ,6 37,7 62,5 67, ,8 36,7 17,9 21, ,7 36,3 12,7 15,7 Durchschnitt 27,5 40,5 27,4 37,9 30
28 Vergleich der Performance zw. OpenCL und CUDA Messungen nur bedingt aussagekräftig Nur eine spezielle Anwendung Veraltete CUDA-Version (2.3, Juli 2009) Veraltete Hardware (NVIDIA GTX 260) Heutiger Unterschied könnte anders Ausfallen (in beide Richtungen) Trotzdem: Eindeutiger Trend erkennbar OpenCL wird vermutlich immer etwas langsamer sein als CUDA 31
29 Danke für Ihre Aufmerksamkeit! Fragen? 33
30 Beispielprogramm: Matrix-Quadrierung einer quadratischen Matrix Normaler C-Code nach Schulmethode (mit 1-Dimensionalem Array implementiert): void matsq( int dim, const float *mat, float *out ) { for(int i = 0; i < dim; i++) { for(int k = 0; k < dim; k++) { float val = 0; for(int l = 0; l < dim; l++) val += mat[dim*i+l] * mat[dim*l+k]; out[dim*i+k] = val; } } } 2-Dimensionales Problem Äußere Schleifen iterieren über alle Einträge der Ergebnis-Matrix und berechnen das Element der Stelle i,k Berechnung des Eintrags i,k ist unabhängig von anderen Elementen der Zielmatrix Berechnung der Einträge kann massiv parallel erfolgen Kernel schreiben der genau einen Eintrag der Zielmatrix berechnet, und für alle Einträge der Zielmatrix einmal ausgeführt wird 34
31 Aufteilung der Matrix-Quadrierung Jeder Thread berechnet genau einen Eintrag der Ergebnis-Matrix 2-Dimensionales Problem Problemgröße: n, n bei einer n n Matrix Threads werden zu 2-Dimensionalen Gruppen hinzugefügt Aufteilung prinzipiell willkürlich, keine Anforderungen an lokalen Speicher, Synchronisation usw. Aber: Gruppen können nicht beliebig groß sein, es gibt eine Maximalausdehnung auf jeder Achse und eine maximale Gesamtanzahl an Threads Beispiel: 8x8 = 64 Threads pro Gruppe 35
32 Wie sieht der Kernel aus? OpenCL C: C for CUDA: kernel void matsq( global const float *mat, global float *out ) { int dim = get_global_size(0); //Matrix dimension int i = get_global_id(0); //index 1 int k = get_global_id(1); //index 2 float val = 0; for( int l = 0; l < dim; l++ ) val += mat[dim*i+l] * mat[dim*l+k]; global void matsq( const float *mat, float *out ) { int dim = griddim.x * blockdim.x; int i = blockidx.x * blockdim.x + threadidx.x; int k = blockidx.y * blockdim.x + threadidx.y; float val = 0; for( int l = 0; l < dim; l++ ) val += mat[dim*i+l] * mat[dim*l+k]; } out[dim*i+k] = val; } out[dim*i+k] = val; Keine äußeren for-schleifen mehr, da der Kernel von OpenCL bzw. CUDA für jeden Eintrag der Matrix ausgeführt wird. Vor der Ausführung muss im Host-Programm die Dimension und die Größe des Problems bzw. der Matrix festgelegt werden. 36
33 Wie sieht das Host-Programm aus? (C/C++, OpenCL) Initialisierung: 37
34 Wie sieht das Host-Programm aus? Initialisierung (2): (C/C++, OpenCL) 38
35 Wie sieht das Host-Programm aus? (C/C++, OpenCL) Ausführung und Aufräumen 39
36 Matrix-Quadrierung Vorführung Sourcecode: redpuma.funpic.de/opencl-helloworld.zip 40
37 Weitere Optimierungen Bisheriger Kernel ist naiv Mögliche Optimierungen: Benutzung des local/shared Speichers Benutzung von float8, float16 usw. Benutzung der Texture-Caches Beispielhaft optimierter Kernel ist ca. 6 mal schneller als naive Lösung Optimierter Kernel ist im Sourcecode enthalten, siehe matsq.cl 41
38 GPU-Aufbau (Beispiel: HD 7970) Compute Unit (CU) Raster-Back-Ends bestehend aus mehreren ROPs (Raster Operation Processor) 16 kb Instruction Cache 32 kb Scalar Data Cache (768 kb) Bild: Advanced Micro Devices, Inc. (AMD) 3 GB Main Memory 42
39 GPU-Aufbau (Beispiel: HD7970) Bilder: Advanced Micro Devices, Inc. (AMD) 43
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
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:
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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,
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
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
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)
MehrGPGPU-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
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
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
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
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
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
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
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
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
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
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:
MehrParallele Algorithmen mit OpenCL. Universität Osnabrück, Henning Wenke,
Parallele Algorithmen mit OpenCL Universität Osnabrück, Henning Wenke, 2013-05-29 Kapitel Parallelität [1]: Parallel Programming (Rauber, Rünger, 2007) [2]: Algorithms Sequential & Parallel A Unified Approach
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
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
MehrComputergrafik 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
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?
MehrCUDA. 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
MehrOptimierungen 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
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
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
MehrBeispielvortrag: 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
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
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,
MehrThema: 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
MehrCell and Larrabee Microarchitecture
Cell and Larrabee Microarchitecture Benjamin Grund Dominik Wolfert Universität Erlangen-Nürnberg 1 Übersicht Einleitung Herkömmliche Prozessorarchitekturen Motivation für Entwicklung neuer Architekturen
MehrPGI 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
MehrPRIP-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
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
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,
Mehr> High-Level Programmierung heterogener paralleler Systeme
> High-Level Programmierung heterogener paralleler Systeme Projektseminar im SoSe 2012 Prof. Sergei Gorlatch, Michel Steuwer, Tim Humernbrum AG Parallele und Verteilte Systeme, Westfälische Wilhelms-Universität
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
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
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
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:
MehrZum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE
Zum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE 754 Standard festgelegt. Es stehen sogenannte einfach
MehrOpenCL (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
MehrParallel Computing. Einsatzmöglichkeiten und Grenzen. Prof. Dr. Nikolaus Wulff
Parallel Computing Einsatzmöglichkeiten und Grenzen Prof. Dr. Nikolaus Wulff Parallel Architekturen Flynn'sche Klassifizierung: SISD: single Instruction, single Data Klassisches von-neumann sequentielles
MehrMulti- und Many-Core
Multi- und Many-Core Benjamin Warnke Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg 2016-12-15 Benjamin
MehrMulticore und mobile, stromsparende Anwendungen ein Widerspruch? Hubert Hafner Product Marketing
Multicore und mobile, stromsparende Anwendungen ein Widerspruch? Hubert Hafner Product Marketing Winterthur, September 2010 Agenda Über Kontron Anforderungen der mobilen Welt Aktuellen Atom -Techniken
MehrArchitektur von Parallelrechnern 50
Architektur von Parallelrechnern 50 Rechenintensive parallele Anwendungen können nicht sinnvoll ohne Kenntnis der zugrundeliegenden Architektur erstellt werden. Deswegen ist die Wahl einer geeigneten Architektur
MehrRaytracing in GA mittels OpenACC. Michael Burger, M.Sc. FG Scientific Computing TU Darmstadt
Raytracing in GA mittels OpenACC Michael Burger, M.Sc. FG Scientific Computing TU Darmstadt michael.burger@sc.tu-darmstadt.de 05.11.12 FB Computer Science Scientific Computing Michael Burger 1 / 33 Agenda
MehrCPU, GPU und FPGA. CPU, GPU und FPGA Maximilian Bandle, Bianca Forkel 21. November 2017
CPU, GPU und FPGA, Bianca Forkel 21. November 2017 CPU, GPU und FPGA Inhalt CPU: Central Processing Unit GPU: Graphical Processing Unit FPGA: Field Programmable Gate Array 2 CPU Central Processing Unit
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
MehrCell Broadband Engine & CellSs: ein Programmiermodel für den Cell Prozessor
Cell Broadband Engine & CellSs: ein Programmiermodel für den Cell Prozessor Hardware-Software-Co-Design Universität Erlangen-Nürnberg mark.duchon@mb.stud.uni-erlangen.de Ziegler_Matthias@web.de andreas.fall@googlemail.com
Mehr2 Rechnerarchitekturen
2 Rechnerarchitekturen Rechnerarchitekturen Flynns Klassifikation Flynnsche Klassifikation (Flynn sche Taxonomie) 1966 entwickelt, einfaches Modell, bis heute genutzt Beschränkung der Beschreibung auf
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
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
MehrMehrprozessorarchitekturen
Mehrprozessorarchitekturen (SMP, UMA/NUMA, Cluster) Arian Bär 12.07.2004 12.07.2004 Arian Bär 1 Gliederung 1. Einleitung 2. Symmetrische Multiprozessoren (SMP) Allgemeines Architektur 3. Speicherarchitekturen
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
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
MehrCache-Kohärenz und -Konsistenz. Betreuer: Prof. Brüning Veton Kajtazi Mat.-Nr.: Universität Heidelberg
Cache-Kohärenz und -Konsistenz Betreuer: Prof. Brüning Veton Kajtazi Mat.-Nr.: 3220501 Universität Heidelberg Inhaltsverzeichnis Wozu Caches? Unterschied Kohärenz und Konsistenz MESI-Protokoll Fazit 2
MehrDigital 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
MehrM5000 einfach ablösen durch T4/T5 LDoms und Solaris Zonen
M5000 einfach ablösen durch T4/T5 LDoms und Solaris Zonen Marcel Hofstetter JomaSoft GmbH St. Gallen / Schweiz Schlüsselworte M5000, T4, T5, LDoms, Oracle Solaris 11, Solaris Zonen, VDCF Einleitung Die
MehrComputergrundlagen Moderne Rechnerarchitekturen
Aufbau eines modernen Computers Computergrundlagen Moderne Rechnerarchitekturen Axel Arnold Institut für Computerphysik Universität Stuttgart DDR3- Speicher Prozessor Prozessor PEG Graphikkarte(n) weitere
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
MehrCache-Speicher. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach
Cache-Speicher Design Digitaler Systeme Prof. Dr.-Ing. Rainer Bermbach Übersicht Cache-Speicher Warum Cache-Speicher? Cache-Strukturen Aufbau und Organisation von Caches Cache-Architekturen Cache-Strategien
MehrCPU-Caches. Christian Duße. Seminar Effiziente Programmierung in C
CPU-Caches Christian Duße Seminar Effiziente Programmierung in C Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität
MehrPhysX Evaluation. Softwarepraktikum Computergraphik. Daniel Brock, Robert Kreuzer, Simon Kufner. 5. Juli 2010
PhysX Evaluation Softwarepraktikum Computergraphik Daniel Brock, Robert Kreuzer, Simon Kufner 5. Juli 2010 Daniel Brock, Robert Kreuzer, Simon Kufner () PhysX Evaluation 5. Juli 2010 1 / 17 1 Aufgabenstellung
MehrKonzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P
SoSe 2014 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 3(Musterlösung) 2014-05-05 bis 2014-05-09 Aufgabe 1: Polling vs Interrupts (a) Erläutern Sie
MehrHochleistungsrechnen 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
MehrArchitektur moderner GPUs. W. Sczygiol - M. Lötsch
Architektur moderner GPUs W. Sczygiol - M. Lötsch Überblick Chipentwicklung Aktuelle Designs Nvidia: NV40 (ATI: R420) Vertex-Shader Pixel-Shader Shader-Programmierung ROP - Antialiasing Ausblick Referenzen
MehrEntwicklung algorithmischer Skelette für CUDA am Beispiel von Affintiy Propagation
Entwicklung algorithmischer Skelette für CUDA am Beispiel von Affintiy Propagation Christoph Winter Fakultät für Informatik und Mathematik Ostbayerische Technische Hochschule Regensburg 93049 Regensburg
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,
MehrMulti-Core Architectures and Programming. Bilateral Grid Filter
Multi-Core Architectures and Programming Bilateral Grid Filter - Parallelisierung mit CUDA - C. Kugler und E. Sert Inhalt Motivation Bilateral Filter (Exkurs) Bilateral Grid Filter Portierung auf Grafikkarte
MehrEin Unternehmen der Firmengruppe:
Ein Unternehmen der Firmengruppe: IT unter einem Dach Mit diesem Leitgedanken haben sich unsere Unternehmen zusammengeschlossen, um ihren Kunden ganzheitliche IT-Lösungen anbieten zu können. Die Unternehmensgruppe
MehrOpenMP. 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
MehrSysteme 1: Architektur
slide 1 Vorlesung Systeme 1: Architektur Prof. Dr. Ulrich Ultes-Nitsche Forschungsgruppe Departement für Informatik Universität Freiburg slide 2 Prüfung 18. Februar 2004 8h00-11h40 13h00-18h20 20 Minuten
MehrHochleistungsrechnen in Darmstadt: Der Lichtenberg- Hochleistungsrechner. Dr. Andreas Wolf. Gruppenleiter Hochleistungsrechnen Hochschulrechenzentrum
Hochleistungsrechnen in Darmstadt: Der Lichtenberg- Hochleistungsrechner Dr. Andreas Wolf Gruppenleiter Hochleistungsrechnen Hochschulrechenzentrum Überblick Randbedingungen der HPC Beschaffung an der
MehrMaster-Thread führt Programm aus, bis durch die Direktive
OpenMP seit 1998 Standard (www.openmp.org) für die Shared-Memory Programmierung; (Prä-)Compiler für viele Systeme kommerziell oder frei (z.b. Omni von phase.hpcc.jp/omni) verfügbar Idee: automatische Generierung
MehrClearspeed. Matthias Kunst.
Clearspeed Matthias Kunst MatthiasKunst@gmx.de 1 Inhalt Einführung Struktur und Leistung Komponenten CSX600 Prozessorarchitektur Anwendungsbereich und Systemintegration Ausblick und Fazit 2 Einleitung
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.
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
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
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
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 07 Übung zur Vorlesung Einsatz und Realisierung von Datenbanksystemen im SoSe16 Moritz Kaufmann
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
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 6 Cache-freundliche Programmierung (1) Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Quadratische Matrizen Musterlösung
Mehr