Thema: Hardware-Shader

Ähnliche Dokumente
Grafikkarten-Architektur

General Purpose Computation on GPUs

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

GPU-Programmierung: OpenCL

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

Seminar - Paralleles Rechnen auf Grafikkarten

Computer Graphics Shader

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

Untersuchung und Vorstellung moderner Grafikchiparchitekturen

Softwareprojekt Spieleentwicklung

Jörn Loviscach Hochschule Bremen

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

Compute Unified Device Architecture CUDA

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

technische universität dortmund Lehrstuhl für Hochfrequenztechnik Übertragungssysteme

Physikalische Berechnungen mit General Purpose Graphics Processing Units (GPGPUs)

GPGPU mit NVIDIA CUDA

Seminar: Grafikprogrammierung

Ansätze 4. GPU. Echtzeit- Raytracing. Polygon- Rendering. Computerspiele Sommer (c) 2013, Peter Sturm, Universität Trier 1

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

Yilmaz, Tolga MatNr: Mesaud, Elias MatNr:

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

GPU-Programmierung: OpenCL

Rheinisch-Westfälische Technische Hochschule Aachen. Seminararbeit

Grundlagen der Spieleprogrammierung

Shader. Computer Graphics: Shader

Volumenakquise. Vortrag von Benjamin Gayer

Shader zur Bildbearbeitung

Graphische Datenverarbeitung I WS 2017/2018

Hochleistungsrechnen in Darmstadt: Der Lichtenberg- Hochleistungsrechner. Dr. Andreas Wolf. Gruppenleiter Hochleistungsrechnen Hochschulrechenzentrum

CUDA Workshop. Ausblick. Daniel Tenbrinck

Grundlagen der Spieleprogrammierung

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

GPU Programmierung. Thorsten Grosch

Aktuelle Grafikleistungen

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

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

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

Spieleprogrammierung mit DirectX und C++

OEM Hardware Nr. : PCI\VEN_10DE&DEV_05E2&SUBSYS_ &REV_A1

LEISTUNGSVERGLEICH VON FPGA, GPU UND CPU FÜR ALGORITHMEN ZUR BILDBEARBEITUNG PROSEMINAR INF-B-610

Wiederholung. Vorlesung GPU Programmierung Thorsten Grosch

GPGPU-Programmierung

Kapitel 5: Graphikhardware und Parallelisierung

GPU-Computing. Michael Vetter

Stream Processing und High- Level GPGPU Sprachen

Multicore-Architekturen

GPGPU-Programmierung

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

Die Welt der Shader. Fortgeschrittene Techniken III

Vergleich von Forward und Deferred Rendering

Prozedurale Texturen >>Was nicht passt wird passend gemacht...<<

Grafik- Programmierung

(5) GPU Programmierung


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

Christina Nell. 3D-Computergrafik

Eine kurze Einführung in Rechnerarchitektur und Programmierung von Hochleistungsrechnern als zentrales Werkzeug in der Simulation

PRIP-Preis. Effizientes Object Tracking durch Programmierung von Mehrkernprozessoren und Grafikkarten

GPU Programmierung. Thorsten Grosch

Medizinische Visualisierung

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

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

Masterpraktikum Scientific Computing

OpenGL und die Fixed-Function-Pipeline

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

Seminar Game Development Game Computer Graphics. Einleitung

Vertiefungsrichtung Rechnerarchitektur

GPU-Computing im Rahmen der Vorlesung Hochleistungsrechnen

Informatik-Seminar. Auftakt. Informatik. Grundlagen

PhysX Evaluation. Softwarepraktikum Computergraphik. Daniel Brock, Robert Kreuzer, Simon Kufner. 5. Juli 2010

2.009, 99. Produktbeschreibung. SCHENKER DTR 15 - amqv Notebook 15.6" FHD IPS, Core i7-7700, 16GB, 250GB SSD Artikelnummer: A

Beleuchtung. in Computerspielen

General-purpose computing on GPUs

Eine Einführung Computergrafik SS14 Timo Bourdon

(10) Deferred Shading

Lehrstuhlseminar. NVidia Tegra-Architektur. Andreas Höer. TU Dresden,

Proseminar: Virtuelle Präsenz. Vortrag: Steve Rechtenbach

Transkript:

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 auf der CPU

1/19 Entwicklung (1) Früher: Berechnung auf der CPU Probleme: CPU überlastet

1/19 Entwicklung (1) Früher: Berechnung auf der CPU Eigenständige GPU Probleme: CPU überlastet

1/19 Entwicklung (1) Früher: Berechnung auf der CPU Eigenständige GPU Hardware T&L Probleme: CPU überlastet

1/19 Entwicklung (1) Früher: Berechnung auf der CPU Eigenständige GPU Hardware T&L Probleme: CPU überlastet Fehlende Flexibilität Möglichkeiten abhängig von der vorliegenden Hardware

2/19 Entwicklung (1) Heute: Hardwareshader parallele Rechenwerke programmierbar spezialisiert auf Grafikanwendungen

2/19 Entwicklung (1) Heute: Hardwareshader parallele Rechenwerke programmierbar spezialisiert auf Grafikanwendungen Grafikpipeline im Shader Model 1-3:

3/19 Entwicklung (2) Shader Model 4 (DirectX 10)

3/19 Entwicklung (2) Shader Model 4 (DirectX 10) Ziele: Weitere Reduktion der CPU-Last Mehr Flexibilität bei Vertex- Manipulation

Überblick Entwicklung Die Shader im Detail Programmierung GPGPU Zusammenfassung & Ausblick

4/19 Vertexshader (1) Input: ein Vertex Output: genau ein Vertex

4/19 Vertexshader (1) Input: ein Vertex Output: genau ein Vertex Anwendungen: Animation Displacement Mapping Kamera-Effekte

5/19 Geometryshader (1) Input: primitiver Körper Output: mehrere primitive Körper

5/19 Geometryshader (1) Input: primitiver Körper Output: mehrere primitive Körper Anwendungen: Geometry Instancing Fell / Haare Partikelsysteme

6/19 Pixelshader (1) Input: ein Pixel Output: ein Pixel

6/19 Pixelshader (1) Input: ein Pixel Output: ein Pixel Anwendungen: (Multi-)Texturing Spiegelungen Pixelgenaue Beleuchtung und Schattenwurf

7/19 Unified Shader Architecture Problem: ungleichmäßige Auslastung

7/19 Unified Shader Architecture Problem: ungleichmäßige Auslastung Lösung: Generische Architektur statt unterschiedlicher Shader-Einheiten

Überblick Entwicklung Die Shader im Detail Programmierung GPGPU Zusammenfassung & Ausblick

8/19 Programmierung von Shadern: Entwicklung Programmiersprache: Früher: Assembler Heute: Hochsprachen (HLSL,...) IDEs: RenderMonkey NVidia FX Composer...

9/19 Programmierung von Shadern: Beispiel Multitexturing Einfache Beleuchtung Graue Fläche Texturierter Würfel

10/19 Programmierung von Shadern: Vertexshader Referenzierung der Weltmatrix: float4x4 wvp : WorldViewProjection

10/19 Programmierung von Shadern: Vertexshader Referenzierung der Weltmatrix: float4x4 wvp : WorldViewProjection Variablentyp

10/19 Programmierung von Shadern: Vertexshader Referenzierung der Weltmatrix: float4x4 wvp : WorldViewProjection Semantic

11/19 Programmierung von Shadern: Vertexshader Definition eines eigenen Datentyps: struct VS_Object { float4 Position : POSITION0; float2 TexCoord : TEXCOORD0; };

11/19 Programmierung von Shadern: Vertexshader Definition eines eigenen Datentyps: struct VS_Object { float4 Position : POSITION0; float2 TexCoord : TEXCOORD0; }; Typ-Definition

12/19 Programmierung von Shadern: Vertexshader Das Vertexshaderprogramm: VS_Object VS_Main( VS_Object In ) { VS_Object Out; Out.Position = mul(in.position, wvp); Out.TexCoord = In.TexCoord; return Out; }

12/19 Programmierung von Shadern: Vertexshader Das Vertexshaderprogramm: VS_Object VS_Main( VS_Object In ) { VS_Object Out; Out.Position = mul(in.position, wvp); Out.TexCoord = In.TexCoord; return Out; } Intrinsic

13/19 Programmierung von Shadern: Pixelshader Texturzugriff: sampler2d Texture1; sampler2d Texture2;

13/19 Programmierung von Shadern: Pixelshader Texturzugriff: sampler2d Texture1; sampler2d Texture2; Textursampler

14/19 Programmierung von Shadern: Pixelshader Das Pixelshaderprogramm: float4 PS_Main (float2 TexCoord : TEXCOORD0) : COLOR0 { float4 Out = (float4) 0; Out += tex2d(texture1, TexCoord); Out += tex2d(texture2, TexCoord); return Out; }

14/19 Programmierung von Shadern: Pixelshader Das Pixelshaderprogramm: float4 PS_Main (float2 TexCoord : TEXCOORD0) : COLOR0 { float4 Out = (float4) 0; Out += tex2d(texture1, TexCoord); Out += tex2d(texture2, TexCoord); return Out; } Farbwert aus Textur

Überblick Entwicklung Die Shader im Detail Programmierung GPGPU Zusammenfassung & Ausblick

15/19 GPGPU: Leistungsvergleich GPU - CPU Intel QX9770: 4 Kerne 45 GFlops 26 GByte Speicherbandbreite NVidia GeForce 280 GTX:

15/19 GPGPU: Leistungsvergleich GPU - CPU Intel QX9770: 4 Kerne 45 GFlops 26 GByte Speicherbandbreite NVidia GeForce 280 GTX: 240 Shader

15/19 GPGPU: Leistungsvergleich GPU - CPU Intel QX9770: 4 Kerne 45 GFlops 26 GByte Speicherbandbreite NVidia GeForce 280 GTX: 240 Shader 933 GFlops

15/19 GPGPU: Leistungsvergleich GPU - CPU Intel QX9770: 4 Kerne 45 GFlops 26 GByte Speicherbandbreite NVidia GeForce 280 GTX: 240 Shader 933 GFlops 141 GByte Speicherbandbreite

16/19 GPGPU: Performancevergleich Beispiel: Folding @ Home

17/19 GPGPU: Pro & Contra Vorteile der GPU: Rechenleistung Speicherdurchsatz

17/19 GPGPU: Pro & Contra Vorteile der GPU: Rechenleistung Speicherdurchsatz Nachteile: FP-Genauigkeit Angepasster Code notwendig

17/19 GPGPU: Pro & Contra Vorteile der GPU: Rechenleistung Speicherdurchsatz Nachteile: FP-Genauigkeit Angepasster Code notwendig Entwicklungstools: AMD/ATI CAL NVidia CUDA

Überblick Entwicklung Die Shader im Detail Programmierung GPGPU Zusammenfassung & Ausblick

18/19 Zusammenfassung Hardwareshader: Leistungszuwachs durch Parallelisierung und Spezialisierung Gewinn an Flexibilität HLSL: Zugänglichkeit

19/19 Ausblick Weiter zunehmende Parallelisierung Stellenwert von GPGPU steigt

Ende Ende Noch Fragen?