Seminar - Paralleles Rechnen auf Grafikkarten

Größe: px
Ab Seite anzeigen:

Download "Seminar - Paralleles Rechnen auf Grafikkarten"

Transkript

1 Seminar - Paralleles Rechnen auf Grafikkarten Seminarvortrag: Übersicht über die Programmierung von Grafikkarten Marcus Schaber Betreuer: J. Kunkel, O. Mordvinova Marcus Schaber 1/33

2 Gliederung Allgemeine Programmierung Parallelität, Einschränkungen, Vorteile Grafikpipeline Programmierbare Einheiten, Hardwarefunktionalität Programmiersprachen Übersicht und Vergleich, Datenstrukturen, Programmieransätze Shader Shader Standards Beispiele Aus Bereich Grafik Marcus Schaber 2/33

3 Programmierung Einschränkungen Anpassung an Hardware Kernels und Streams müssen erstellt werden. Daten als Vertizes, Erstellung geeigneter Fragmente notwendig. Rahmenprogramm Programme können nicht direkt von der GPU ausgeführt werden. Stream und Kernel werden von der CPU erstellt und auf die Grafikkarte gebracht Marcus Schaber 3/33

4 Programmierung Parallelität Sequentielle Sprachen Keine spezielle Syntax für parallele Programmierung. Einzelne shader sind sequentielle Programme. Parallelität wird durch gleichzeitiges ausführen eines Shaders auf unterschiedlichen Daten erreicht Hardwareunterstützung Verwaltung der Threads wird von Hardware unterstützt Marcus Schaber 4/33

5 Programmierung Typische Aufgaben Geeignet: Datenparallele Probleme Gleiche/ähnliche Operationen auf vielen Daten ausführen, wenig Kommunikation zwischen Elementen notwendig Arithmetische Dichte: Anzahl Rechenoperationen / Lese- und Schreibzugiffe Klassisch: Grafik Viele unabhängige Daten: Vertizes, Fragmente/Pixel Operationen: gleicher shader für jedes Vertex/Fragment Z.B. Auflösung 800x600 = Pixel, keine Kommunikation untereinander maximale Arithmetische Dichte Marcus Schaber 5/33

6 Programmierung Typische Aufgaben GPGPU GPGPU: Z.B. Gleichungssystem lösen Bearbeiten einer Zeile kann parallel ausgeführt werden, dann ist Schreibzugriff notwendig Allgemein Gitter-Methoden (aus der Numerik) Repräsentation des Gitters durch Textur Nutzung von Texturen generell praktisch Lesen/Schreiben in Textur wird von Grafikkarte unterstützt. Das Ausgabeziel des Renderers kann auch eine Textur sein Marcus Schaber 6/33

7 Die Grafikpipeline Schwierig passende Grafik zu finden Unified Shader machen die Aufteilung der programmierbaren Stufen überflüssig Marcus Schaber 7/33

8 Die Grafikpipeline Marcus Schaber 8/33

9 Grafikpipeline Programmierbare Einheiten 3 Programmierbare Pipelinestufen: Vertex processing Operiert auf Vertizes im Stream Primitive processing Erstellt für jedes eingehende Primitiv weitere neue Fragment processing Operiert auf Fragmenten aus dem Rasterizer Marcus Schaber 9/33

10 Grafikpipeline Programmierbare Einheiten Für die Programmierung ist diese Sichtweise nützlich Marcus Schaber 10/33

11 Programmiersprachen Übersicht High-Level für Grafik: CG (NIVIDIA), HLSL (DirectX), GLSL (OpenGL), RenderMan (Pixar) High-Level für GPGPU: CUDA (NVIDIA), Brook Marcus Schaber 11/33

12 Programmiersprachen Entwicklung Marcus Schaber 12/33

13 Programmiersprachen Datentypen Datentypen Skalare, Vektoren, Matrizen und arrays. Meist float, int, bool. Sampler für Texturen. Erstellung eigener Typen möglich. ( struct ) float4 vec = {0,0,0,0}; float4x4 matrix; Sampler2D texsampler; struct VS_in { float4 Pos : POSITION; float4 normal : NORMAL; float4 texcoord : TEXCOORD0; } Marcus Schaber 13/33

14 Programmiersprachen Funktionen und Kontrollstrukturen // eine Funktion im GPU Programm float4 calccolor(float3 normal, float3 direction, float4 color) { float4 res = dot(direction, normal) * color; return res; } float3 directions[numlights]; // werden vor Ausführung... float4 colors[numlights]; //...des shaders gesetzt // fragment shader float4 PS { float4 color = {0,0,0,0}; for (int i = 0; i<numlights; i++) { color += calccolor(normal, directions[i], colors[i]); } return color; } Marcus Schaber 14/33

15 Programmiersprachen Einbindung in Hochsprachen Spracherweiterung: Erweiterung einer vorhandenen Sprache, wie C. Spezieller Compiler notwendig. Eigenständige Sprache: Kompilieren unabhängig möglich. Aufruf durch CPU-Programm. Einbindung meist in der Form (vereinfacht): Programm kompilieren Programm laden Programm verwenden Marcus Schaber 15/33

16 Programmiersprachen Brook Erweiterung von C Stream und Kernel als Sprachelemente Sprachunterstützung für Reduktionen mit Schlüsselwort reduce Restriktionen bei Standard C. Bestimmte Schlüsselwörter, Bibliotheksaufrufe eingeschränkt, Pointer eingeschränkt, keine Rekursion Marcus Schaber 16/33

17 Stream: float a<> [3] [2]; float b<300,200>; Programmiersprachen Brook Beispiel // stream aus 3x2 float arrays // legt Anzahl der Elemente im stream fest Kernel: void kernel foo (float a<>,out float b<>,float p) { b = a + p; } // a ist input-stream, b output-stream, p konstanter Parameter. Der Kernel wird für jedes Element im Stream ausgeführt. Kernelaufruf wie bei einer normalen C Funktion Marcus Schaber 17/33

18 Programmiersprachen Brook Beispiel Reduktion: Summenbildung float a<> [3] [2]; void kernel sum (float a<>,reduce float result) { result += a; } Restriktionen beim Kernel Keine Pointer und Adressoperatoren keine Funktionspointer Keine Bibliotheksaufrufe (malloc, printf,...) Keine Zugriffe auf globalen Speicher Marcus Schaber 18/33

19 Programmiersprachen CG C for Graphics Eigenständige Sprache Vertex, Fragment und Geometrie Programme Syntax sehr ähnlich wie C Unabhängig von Graphik-API Compiler erstellt shader für DirectX oder OpenGL Marcus Schaber 19/33

20 Programmiersprachen CG Beispiel Einbindung: CGprogram program = cgcreateprogramfromfile( context, CG_SOURCE, filename, profile, "main", NULL); cgglloadprogram(program); cgglbindprogram(myvertexprogram); cgglenableprofile(cgprofile profile); //Programm wird jetzt beim Rendern benutzt cggldisableprofile(cgprofile profile); Marcus Schaber 20/33

21 Programmiersprachen CUDA Compute Unified Device Architecture Erweiterung von C++ Nutzbar ab NVIDIA Grafikkarten der GeForce 8 Serie und Quadro FX 5600 Für Wissenschaftliche Berechnungen gedacht Marcus Schaber 21/33

22 Programmiersprachen CUDA Grafikkarte kann allgemeiner genutzt werden Speicherzugriff: cudamalloc( (void **)&host_data, DATA_SZ ) cudamemcpy(device_data, host_data, DATA_SZ, cudamemcpyhosttodevice Syntax für parallele Programmierung vorhanden Kernelaufruf: scalarprodgpu<<<128, 256>>>(d_C, d_a, d_b, VECTOR_N, ELEMENT_N); Marcus Schaber 22/33

23 Programmiersprachen CUDA Marcus Schaber 23/33

24 Programmiersprachen GLSL OpenGL Shading Language Eigenständige Sprache Für Vertex und Fragment Programme Teil des OpenGL Standards Marcus Schaber 24/33

25 Programmiersprachen HLSL High Level Shader Language Eigenständige Sprache Teil von DirectX Vertex, Fragment und Geometrie Programme Syntax sehr ähnlich wie C Marcus Schaber 25/33

26 Programmiersprachen HLSL Effect-System Eine gemeinsame Umgebung für Shader, Variablen, Konstanten, Funktionen und Datentypen. Einstellungen des Renderes können in techniques beschrieben werden. technique10 Render { pass P0 { SetVertexShader( CompileShader( vs_4_0, VS() ) ); SetGeometryShader( CompileShader( gs_4_0, GS() ) ); SetPixelShader( CompileShader( ps_4_0, PS() ) ); SetBlendState( NoBlending, float4( 0.0f, 0.0f, 0.0f, 0.0f ), 0xFFFFFFFF ); SetDepthStencilState( EnableDepth, 0 ); } } Marcus Schaber 26/33

27 Shader Standard wird durch DirectX vorgegeben ATI und NVIDIA arbeiten mit Microsoft zusammen. Mit jeder neuen Shader-Version werden neue Anforderungen an die Hardware gestellt. Pixel-Shader Vertex-Shader _A 2_B 2.x Bemerkungen für 3dfx Rampage vorgesehen, kam jedoch nie auf den Markt kleinster gemeinsamer Nenner für alle DirectX-8-Grafikchips 3DLabs-Grafikchips P9 und P10 Nvidia-GeForce-4-Ti-Serie, Matrox Parhelia und SiS Mirage 2 Radeon-8000-Serie und XGI-Volari-V3-Serie kleinster gemeinsamer Nenner für alle DirectX-9-Grafikchips Nvidia-GeForce-FX-Serie ATI Radeon X7xx und X8xx gemeinsamer Nenner für modernere DirectX-9-Grafikchips Unified Shader Model Marcus Schaber 27/33

28 Shader Shader Standards Vertex Instructions Pixel Instructions Vertex Constants Pixel Constants Vertex Temps Pixel Temps Vertex Inputs Pixel Inputs Render Targets Vertex Textures Pixel Textures 2D Texture Size Shader 1.x Shader 2.0 Shader 3.0 Shader x x x x Marcus Schaber 28/33

29 Shader Vertex shader Beispiel // Eingabe Vetex-Stream struct VS_INPUT { float3 Pos : POSITION; float3 Norm : NORMAL; float2 Tex : TEXCOORD0; }; // Vertex-shader PS_INPUT VS( VS_INPUT input ) { PS_INPUT output = (PS_INPUT)0; output.pos = mul( float4(input.pos,1), World ); // Objekt-Koordinaten zu Welt-Koodrinaten // Vertizes verschieben output.pos.x += sin( output.pos.y*0.1f + Time ) * Waviness; output.pos = mul( output.pos, View ); output.pos = mul( output.pos, Projection ); output.norm = mul( input.norm, World ); output.tex = input.tex; // Kameraperspektive // Projektion auf Ebene // Vertex-Normale zu Weltkoordinaten // Texturkoordinaten durchreichen } return output; Marcus Schaber 29/33

30 Shader Pixel shader Beispiel struct PS_INPUT { float4 Pos : SV_POSITION; float3 Norm : TEXCOORD0; float2 Tex : TEXCOORD1; float3 ViewR : TEXCOORD2; }; float4 PS( PS_INPUT input) : SV_Target { float flighting = saturate( dot( input.norm, vlightdir ) ); // environment map Texturwert lesen float4 creflect = g_txenvmap.sample( samlinearclamp, input.viewr ); // Texturwert lesen float4 cdiffuse = g_txdiffuse.sample( samlinear, input.tex ) * flighting; // beide Texturwerte addieren float4 ctotal = cdiffuse + creflect; } return ctotal; Marcus Schaber 30/33

31 Shader Geometrie shader Beispiel float Explode; // wird vom Hauptprogramm gegeben // Eingabestream in den Geometrie-shader struct GSPS_INPUT { float4 Pos : SV_POSITION; float3 Norm : TEXCOORD0; float2 Tex : TEXCOORD1; }; // Geometrie-shader void GS( triangle GSPS_INPUT input[3], inout TriangleStream<GSPS_INPUT> TriStream ) { GSPS_INPUT output; for( int i=0; i<3; i++ ) { // Werte für neues Vertex festlegen output.pos = input[i].pos + float4(explode, 0.0, 0.0, 0.0) * 10; output.pos = mul( output.pos, View ); output.pos = mul( output.pos, Projection ); output.norm = input[i].norm; output.tex = input[i].tex; TriStream.Append( output ); // neues Vertex in den Stream einfügen } } Marcus Schaber 31/33

32 Abschluss Fragen? Marcus Schaber 32/33

33 Quellen Artikel von Julian wikipedia GPU Gems 2 Microsoft DirectX SDK Brook Spec v0.2; Ian Buck; October 31, 2003 NVIDIA CUDA SDK Samples Marcus Schaber 33/33

Computer Graphics Shader

Computer Graphics Shader Computer Graphics Shader Sven Janusch Inhalt Fixed Function Pipeline Programmable Pipeline Implementierung Applikation Beispiel Sven Janusch 2 Fixed Function Pipeline T&L Pipeline (Transformation and Lighting)

Mehr

Thema: Hardware-Shader

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

Mehr

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

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

Mehr

GPGPU Basiskonzepte. von Marc Kirchhoff GPGPU Basiskonzepte 1

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

Mehr

Compute Unified Device Architecture CUDA

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

Mehr

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

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

Mehr

Numerik und Rechnen. Martin Heide & Dominik Holler. 12. Juni 2006

Numerik und Rechnen. Martin Heide & Dominik Holler. 12. Juni 2006 12. Juni 2006 Bibliothek für Lineare Algebra GPGPU-Programming: Low-Level High-Level Bibliothek Bibliothek für Lineare Algebra Gliederung 1 Bibliothek für Lineare Algebra 2 Skalare Bibliothek für Lineare

Mehr

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

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

Mehr

Jörn Loviscach Hochschule Bremen

Jörn Loviscach Hochschule Bremen Programmierbare Hardware-Shader Jörn Loviscach Hochschule Bremen Überblick Vertex- und Pixel-Shader Anwendungsbeispiele fx-dateien Anwendungsbeispiele Zusammenfassung Puffer Vertex- und Pixel-Shader Hardware-Renderpipeline

Mehr

Softwareprojekt Spieleentwicklung

Softwareprojekt Spieleentwicklung Softwareprojekt Spieleentwicklung Prototyp I (2D) Prototyp II (3D) Softwareprojekt 12.04. 19.04. 26.04. 03.05. 31.05. Meilenstein I 28.06. Meilenstein II Prof. Holger Theisel, Tobias Günther, OvGU Magdeburg

Mehr

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

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

Mehr

GPU-Programmierung: OpenCL

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

Mehr

Grundlagen von CUDA, Sprachtypische Elemente

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

Mehr

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

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

Mehr

Stream Processing und High- Level GPGPU Sprachen

Stream 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:

Mehr

General Purpose Computation on GPUs

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

Mehr

Spezialprozessoren zur Übernahme Grafik-spezifischer Aufgaben, vorrangig der Bildschirmausgabe

Spezialprozessoren zur Übernahme Grafik-spezifischer Aufgaben, vorrangig der Bildschirmausgabe Grafikprozessoren Spezialprozessoren zur Übernahme Grafik-spezifischer Aufgaben, vorrangig der Bildschirmausgabe 2D: Berechnung der Bildes aus einfachen Grafikprimitiven 3D: Bildaufbau aus räumlicher Beschreibung

Mehr

Computergrafik Universität Osnabrück, Henning Wenke,

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

Mehr

3D Programmierpraktikum: OpenGL Shading Language (GLSL)

3D Programmierpraktikum: OpenGL Shading Language (GLSL) 3D Programmierpraktikum: OpenGL Shading Language (GLSL) Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 13. Juli 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum

Mehr

Yilmaz, Tolga MatNr: Mesaud, Elias MatNr:

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

Mehr

GPGPU-Programmierung

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

Mehr

Rheinisch-Westfälische Technische Hochschule Aachen. Seminararbeit

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

Mehr

Masterpraktikum Scientific Computing

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

Mehr

GPU Programmierung 6. Juli 2004 M. Christen, T. Egartner, P. Zanoni

GPU Programmierung 6. Juli 2004 M. Christen, T. Egartner, P. Zanoni GPU Programmierung 6. Juli 2004 M. Christen, T. Egartner, P. Zanoni 1 Ablauf GPU Programm Vertex und Fragment Shader 2 3 4 5 Image Processing 6 Ablauf GPU Programm Ablauf GPU Programm Vertex und Fragment

Mehr

Grundlagen der Spieleprogrammierung

Grundlagen der Spieleprogrammierung Grundlagen der Spieleprogrammierung Teil I: 3D-Graphik Kapitel 9: Engines, Cg und anderes Peter Sturm Universität Trier Outline 1. Übersicht und Motivation 2. Mathematische Grundlagen 3. Das Ideal: Photorealistisch

Mehr

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10 Billboards Letztes Übungsblatt: Meshes & Instancing um dem Terrain zusätzliche Details (Vegtation) hinzuzufügen. Nachteil:

Mehr

SS08, LS12, Friedrich-Alexander-Universität Erlangen Florian Hänel, Frederic Pollmann HS Multicore Architectures and Programming GPU EVOLUTION

SS08, LS12, Friedrich-Alexander-Universität Erlangen Florian Hänel, Frederic Pollmann HS Multicore Architectures and Programming GPU EVOLUTION SS08, LS12, Friedrich-Alexander-Universität Erlangen Florian Hänel, Frederic Pollmann HS Multicore Architectures and Programming GPU EVOLUTION (until Geforce 7 Series) 1 ÜBERSICHT Grafikpipeline Verlagerung

Mehr

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

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

Mehr

Architektur moderner GPUs. W. Sczygiol - M. Lötsch

Architektur 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

Mehr

GPGPU-Programmierung

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

Mehr

C for Graphics Benjamin Rommel Seminar 'Paralleles Rechnen auf Grafikkarten' Sommersemester 2009 Betreuer: Julian M.

C for Graphics Benjamin Rommel Seminar 'Paralleles Rechnen auf Grafikkarten' Sommersemester 2009 Betreuer: Julian M. C for Graphics Benjamin Rommel 12.05.2009 Seminar 'Paralleles Rechnen auf Grafikkarten' Sommersemester 2009 Betreuer: Julian M. Kunkel 'C for Graphics', Benjamin Rommel, SS 2009 Inhaltsübersicht Gliederung

Mehr

Shader. Computer Graphics: Shader

Shader. Computer Graphics: Shader Computer Graphics Computer Graphics Shader Computer Graphics: Shader Inhalt Pipeline Memory Resources Input-Assembler Vertex-Shader Geometry-Shader & Stream-Output Rasterizer Pixel-Shader Output-Merger

Mehr

Untersuchung und Vorstellung moderner Grafikchiparchitekturen

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

Mehr

Computergrafik Universität Osnabrück, Henning Wenke,

Computergrafik 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

Mehr

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

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

Mehr

GPGPU-Architekturen CUDA Programmiermodell Beispielprogramm Organiosatorisches. Tutorial CUDA. Ralf Seidler

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

Mehr

Seminar Game Development Game Computer Graphics. Einleitung

Seminar Game Development Game Computer Graphics. Einleitung Einleitung Gliederung OpenGL Realismus Material Beleuchtung Schatten Echtzeit Daten verringern Grafik Hardware Beispiel CryEngine 2 Kristian Keßler OpenGL Was ist OpenGL? Grafik API plattform- und programmiersprachenunabhängig

Mehr

Grafikkarten-Architektur

Grafikkarten-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

Mehr

Diplomarbeit. Neue Möglichkeiten durch programmierbare Shader. Unter der Leitung von: Prof. Dr.-Ing. Detlef Krömker

Diplomarbeit. Neue Möglichkeiten durch programmierbare Shader. Unter der Leitung von: Prof. Dr.-Ing. Detlef Krömker Diplomarbeit 5HDO7LPH6SHFLDO (IIHFWV Neue Möglichkeiten durch programmierbare Shader Unter der Leitung von: Prof. Dr.-Ing. Detlef Krömker Betreut von: Paul Grimm, Ralf Dörner Beginn: 01.04.02 Abgabe: 30.09.02

Mehr

Computergrafik SS 2010 Henning Wenke. Kapitel 21: OpenGL 3.1

Computergrafik SS 2010 Henning Wenke. Kapitel 21: OpenGL 3.1 Computergrafik SS 2010 Henning Wenke Kapitel 21: OpenGL 3.1 1 Einordnung 2 Über OpenGL API für Rastergrafik Prozedural Hardwarenah Plattform-, Betriebssystem- und Sprachunabhängig Spezifikationen variieren

Mehr

Physikalische Berechnungen mit General Purpose Graphics Processing Units (GPGPUs)

Physikalische 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

Mehr

Geometry Shader. Ausarbeitung im Rahmen des Seminars Echtzeit Rendering" Von Sebastian Jackel Franz Peschel. Geometry Shader 1

Geometry Shader. Ausarbeitung im Rahmen des Seminars Echtzeit Rendering Von Sebastian Jackel Franz Peschel. Geometry Shader 1 Geometry Shader Ausarbeitung im Rahmen des Seminars Echtzeit Rendering" Von Sebastian Jackel Franz Peschel Geometry Shader 1 Inhalt I Einführung II Facts Renderpipeline III Funktionsweise Geometry Shader

Mehr

Heute. Motivation. Verfügbarkeit. Programmierbare Hardware-Shader. Technische Entwicklung von Grafikhardware. Grafikpipeline (DirectX9)

Heute. Motivation. Verfügbarkeit. Programmierbare Hardware-Shader. Technische Entwicklung von Grafikhardware. Grafikpipeline (DirectX9) t.jung@fhtw-berlin.de Heute Programmierbare Hardware-Shader Thomas Jung Architektur moderner Grafikkarten Rendering von Polygonlisten mit DirectX9 Vertex- und Pixel(Fragment) shader Motivation Spiele kommen

Mehr

Masterpraktikum Scientific Computing

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

Mehr

Programmierpraktikum 3D Computer Grafik

Programmierpraktikum 3D Computer Grafik Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik GLSL Agenda Rendering Pipeline Prozessoren: Vertex Prozessor Fragment Prozessor OpenGL Setup für GLSL Shader-Grundlagen Beispiele Die Rendering-Pipeline

Mehr

Wiederholung. Vorlesung GPU Programmierung Thorsten Grosch

Wiederholung. Vorlesung GPU Programmierung Thorsten Grosch Wiederholung Vorlesung Thorsten Grosch Klausur 2 Zeitstunden (26.7., 8:30 10:30 Uhr, G29/307) Keine Hilfsmittel Kein Bleistift / Rotstift verwenden 3 Aufgabentypen Wissensfragen zur Vorlesung (ca. 1/3)

Mehr

GPGPU mit NVIDIA CUDA

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

Mehr

Spieleprogrammierung mit DirectX und C++

Spieleprogrammierung mit DirectX und C++ Ulrich Kaiser, Philipp Lensing Spieleprogrammierung mit DirectX und C++ 2D-, 3D- und Netzwerkspiele, viele Spezialeffekte Galileo Press Einleitung 11 Danksagung 13 Vorwort zur zweiten Auflage 14 1 Vorbereitung

Mehr

Computergrafik SS 2010 Henning Wenke. Kapitel 21: OpenGL 3.1 (Fortsetzung)

Computergrafik SS 2010 Henning Wenke. Kapitel 21: OpenGL 3.1 (Fortsetzung) Computergrafik SS 2010 Henning Wenke Kapitel 21: OpenGL 3.1 (Fortsetzung) 1 OpenGL Aufgaben der GL-Befehle Konfigurieren der Graphics Pipeline Datenübergabe an Server Steuern des Datenflusses Java OpenGL

Mehr

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

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

Mehr

Eine Einführung Computergrafik SS14 Timo Bourdon

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

Mehr

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

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

Mehr

Shader zur Bildbearbeitung

Shader zur Bildbearbeitung 15. Oktober 2009 1 / 23 Übersicht 1 Motivation 2 Grundlagen 3 State of the Art 4 Konzeption 5 Implementierung 6 Benchmarks 7 Fazit 2 / 23 Motivation: GPU >> CPU Moores Law: Hardware verbessert sich rapide

Mehr

Kapitel 5: Graphikhardware und Parallelisierung

Kapitel 5: Graphikhardware und Parallelisierung Kapitel 5: Graphikhardware und Parallelisierung 1 Überblick Taxonomie für Graphikhardware Historie der Graphikhardware Architektur-Beispiele Programmierbare Hardware Taxonomie von Parallelisierungsansätzen

Mehr

Einführung in GLSL - OpenGL Shading Language. Athanasios Karamalis

Einführung in GLSL - OpenGL Shading Language. Athanasios Karamalis Einführung in GLSL - OpenGL Shading Language Athanasios Karamalis Allgemein zur Shader-Programmierung Vor 2001 konnte nur die sogenannte Fixed Functionality der Graphik API und Graphikkarte verwendet werden

Mehr

GL ShadingLanguage(GLSL)

GL ShadingLanguage(GLSL) Was ist GLSL C/Java ähnliche Hochsprache zur Erstellung von GPU-basierter Software (Shader) An die Open Graphics Library (OpenGL) gebunden Darstellung komplexer 2D- und 3D-Szenen auf Basis von Echtzeitberechnungen

Mehr

GPGPU-Programming. Constantin Timm Informatik 12 TU Dortmund 2012/04/09. technische universität dortmund. fakultät für informatik informatik 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

Mehr

Game Engine Design. Spaces. Blending. g_worldviewprojection = WorldTransformation * CameraViewSpace * CameraProjection

Game Engine Design. Spaces. Blending. g_worldviewprojection = WorldTransformation * CameraViewSpace * CameraProjection Game Engine Design Spaces g_worldviewprojection = WorldTransformation * CameraViewSpace * CameraProjection Blending Graphics pipeline Matrices Transformation, Scaling, Rotation D3DXMATRIX mattrans; D3DXMatrixTranslation(&matTrans,

Mehr

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

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

Mehr

Grundlagen der Spieleprogrammierung

Grundlagen 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,

Mehr

Aktuelle Grafikleistungen

Aktuelle Grafikleistungen Aktuelle Grafikleistungen Alexander Hötzendorfer Universität Ulm 03. Juli 2007 Inhalt Übersicht Aktuelle Techniken HDR-Lighting Tessellation Aufbau der Rendering-Pipeline Shader Vertex-Shader Geometry-Shader

Mehr

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

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

Mehr

Computergrafik. Peter Rösch Hochschule Augsburg University of Applied Sciences. Sommersemester 2014. Version: 24. März 2014

Computergrafik. Peter Rösch Hochschule Augsburg University of Applied Sciences. Sommersemester 2014. Version: 24. März 2014 Peter Rösch Hochschule Augsburg University of Applied Sciences Sommersemester 2014 Version: 24. März 2014 Sommer 2014, HS Augsburg, Peter Rösch Inhalt [1] 1. Einführung 2. WebGL und GLSL 3. Geometrie und

Mehr

Eine kurze Geschichte der Grafikkarten

Eine 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

Mehr

Evolution of GPUs. Die Entwicklung der Graphics Processing Units. Marvin Kampf und Michael Moese. Seminar: Multi-Core Architectures and Programming

Evolution of GPUs. Die Entwicklung der Graphics Processing Units. Marvin Kampf und Michael Moese. Seminar: Multi-Core Architectures and Programming Evlutin f GPUs Die Entwicklung der Graphics Prcessing Units Marvin Kampf und Michael Mese Seminar: Multi-Cre Architectures and Prgramming Was bedeutet Entwicklung hin zur GPU? Hinzufügen vn Prgrammierbarkeit

Mehr

Seminar. Echtzeit-Rendering SS Geometry Shader. Franz Peschel

Seminar. Echtzeit-Rendering SS Geometry Shader. Franz Peschel Fachbereich 4: Informatik Seminar Echtzeit-Rendering SS 2008 Geometry Shader vorgelegt von Franz Peschel Betreuer: Prof. Dr. Stefan Müller (Institut für Computervisualistik, AG Computergrafik) Koblenz,

Mehr

Volumenrendering mit CUDA

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

Mehr

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

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

Mehr

Die Shading Language

Die Shading Language Seminar Analyse, Planung und Konstruktion computergraphischer Systeme Die Shading Language Stephan Brumme 7. Januar 2004 Lehrstuhl für Computergraphische Systeme 7. Januar 2004 Stephan Brumme: Die OpenGL

Mehr

Environment Mapping v 1.1

Environment Mapping v 1.1 DirectX Tutorial: Environment Mapping 1 Environment Mapping v 1.1 Einleitung Zuerst einmal sei gesagt, dass es verschiedene Arten von Environment Mapping gibt. Hier wird aber nur das Cubic Environment

Mehr

(5) GPU Programmierung

(5) GPU Programmierung (5) GPU Programmierung Vorlesung Computergrafik II Stefan Müller Dank an Niklas Henrich, Thorsten Grosch KOBLENZ LANDAU Fantastische Effekte in Echtzeit... Real-Time Fur Over Arbitrary Surfaces, Lengyel

Mehr

Details und Vergleich von GPU-Shader-Systemen. wichtige Details und Vergleich der Shaderhochsprachen GLSL, Cg und Sh

Details und Vergleich von GPU-Shader-Systemen. wichtige Details und Vergleich der Shaderhochsprachen GLSL, Cg und Sh Details und Vergleich von GPU-Shader-Systemen wichtige Details und Vergleich der Shaderhochsprachen GLSL, Cg und Sh Historisches Cook and Perlin gelten als die Pioniere, wenn es um Shader Berechnungen

Mehr

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10 Übersicht In den ersten Wochen: Einführung in objektorientierte Programmierung mit C++ Anschließend: Einführung in die programmierbare

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

Mehr

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

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

Mehr

Informatik. Pointer (Dynamisch) Vorlesung. 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1

Informatik. Pointer (Dynamisch) Vorlesung. 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Informatik Vorlesung 08 Pointer (Dynamisch) 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Pointer (Zeiger) Dynam. Speicher Bisher: Speicherbedarf muss

Mehr

Brook for GPUs: Stream Computing on Graphics Hardware

Brook for GPUs: Stream Computing on Graphics Hardware Ausarbeitung zum Thema Brook for GPUs: Stream Computing on Graphics Hardware Ian Buck, Tim Foley, Daniel Horn, Jeremy Sugerman, Kayvon Fatahalian, Mike Houston and Pat Hanrahan von Aldo Mühlhause Hauptseminar

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Echtzeitfähige hige Verfahren in der Computergrafik. Lehrstuhl für f r Informatik Computer Grafik und Visualisierung TUM

Echtzeitfähige hige Verfahren in der Computergrafik. Lehrstuhl für f r Informatik Computer Grafik und Visualisierung TUM Echtzeitfähige hige Verfahren in der Computergrafik Prof. Dr. Rüdiger R Westermann Lehrstuhl für f r Informatik Computer Grafik und Visualisierung TUM Lehr- und Forschungsinhalte Visualisierung Darstellung

Mehr

GPU Programmierung. Thorsten Grosch

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

Mehr

GPU-Computing. Michael Vetter

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

Mehr

Numerik und Rechnen. Inhaltsverzeichnis. Seminar Programmierung von Grafikkarten

Numerik und Rechnen. Inhaltsverzeichnis. Seminar Programmierung von Grafikkarten Numerik und Rechnen Seminar Programmierung von Grafikkarten Martin Heide & Dominik Holler Betreuer: Björn Knafla, Prof. Dr. Claudia Leopold Inhaltsverzeichnis 1 Einführung...2 2 Rechnen auf der GPU mit

Mehr

OpenCL. OpenCL. Boris Totev, Cornelius Knap

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

Mehr

GPU-Computing im Rahmen der Vorlesung Hochleistungsrechnen

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

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr

Ferienakademie Erik Muttersbach

Ferienakademie 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

Mehr

Eine Einführung in die Architektur moderner Graphikprozessoren

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

Mehr

Advanced Computer Graphics 4. Übung

Advanced Computer Graphics 4. Übung Advanced Computer Graphics 4. Übung M.Sc. Tristan Nauber Advanced Computer Graphics: Übung 4 1 Gliederung 1. OpenGL Shader Programme 2. Erzeugen, Kompilieren und Linken von OpenGL Shadern 3. Vertex Shader

Mehr

Memory Models Frederik Zipp

Memory Models Frederik Zipp Memory Models Frederik Zipp Seminar: Programmiersprachen für Parallele Programmierung (SS 2010) Fakultät für Informatik - IPD SNELTING LEHRSTUHL PROGRAMMIERPARADIGMEN 1

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der

Mehr

Entwicklung algorithmischer Skelette für CUDA am Beispiel von Affintiy Propagation

Entwicklung 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

Mehr

OpenCL. Multi-Core Architectures and Programming (Seminar) Apelt, Nicolas / Zöllner, Christian

OpenCL. 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?

Mehr

GPU Programmierung. Thorsten Grosch

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

Mehr

II.1.1. Erste Schritte - 1 -

II.1.1. Erste Schritte - 1 - 1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

Proseminar: Virtuelle Präsenz. Vortrag: Steve Rechtenbach

Proseminar: Virtuelle Präsenz. Vortrag: Steve Rechtenbach Proseminar: Virtuelle Präsenz Vortrag: Steve Rechtenbach Themen: 2/22 Einführung Was ist OpenGL? / Entwicklung Fakten Kleines(!) Beispiel Hello OpenGL Shader Zusammenfassung OpenGL vs Direct3D Einführung:

Mehr

OpenCL. 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. 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

Mehr