Seminar "Programmierbare Graphikhardware"

Prof. Ph. Slusallek, Prof. R. Wilhelm, N. Fritz, Ph. Lucas, und J. Schmittler

Einführung in die Seminararbeit17. November, 14:00, Seminarraum der Graphiker
Abgabe der Ausarbeitungen16. Februar 2004
Vorträge
  • 25. Februar 2004, 9.00–12.00
  • 26. Februar 2004, 9.00–12.00 und 14.00–17.00
  • 27. Februar 2004, 9.00–12.00
Leistungspunkte9

Allgemeine Informationen

Neu: Ausarbeitungen elektronisch verfügbar

Im Wintersemester 2003/2004 veranstalteten wir ein Seminar/Proseminar zum Thema "Programmierbare Graphikhardware".

Die in den letzten Jahren verfügbar gewordenen Graphikkarten von Firmen wie NVIDIA oder ATI besitzen programmierbare Prozessoren. Auf diesen Prozessoren laufen Programme, welche die Attribute von Dreieckseckpunkten wie etwa Position oder Farbe verändern (die sogenannten Vertex Programme/Shader), und Programme, welche die Farben der entstehenden Pixel durch Texturzugriffe bestimmen (die sogenannten Fragment Programme/Shader).

Durch die stark gestiegene Leistungsfähigkeit der Graphikkarten wird diese Architektur auch für allgemeine arithmetische Berechnungen interessant: Die GPUs (Graphics Processing Units) können als allgemeine Coprozessoren der CPUs benutzt werden (siehe auch die Webseite “General Purpose Computation Using Graphics Hardware” für einen Überblick über aktuelle Entwicklungen). Zur Zeit findet der größte Teil der Programmierung noch auf Assembler-Ebene über die üblichen Graphik-APIs OpenGL oder DirectX statt.

Dieses Seminar beschäftigt sich mit der prinzipiellen Programmierbarkeit und Architektur von GPUs, der Unterstützung der Programmierung durch Programmiersprachen und existierenden Anwendungen von GPUs aus dem Graphikbereich und für allgemeine arithmetische Algorithmen.

Beachten Sie für alle aktuellen Informationen unsere Bekanntmachungen über die Mailingliste!

Hinweise zum Vortrag

Ein Vortrag soll eine Länge von etwa 45 Minuten haben.

Der Vortrag kann wahlweise auf Deutsch oder Englisch gehalten werden. Wir erwarten von den Teilnehmern, daß sie deutschen Vorträgen inhaltlich folgen können. Es ist auch für auf Deutsch Vortragende nützlich, den Text auf den Folien Englisch zu halten. So kann man zum einen Ausländern das Verständnis des Vortrages erleichtern; zum anderen vermeidet man es dadurch, in der mündlichen Präsentation einfach nur den Text der Folien vorzulesen.

Für weitergehende Fragen zum Inhalt oder zum Stil des Vortrages wenden Sie sich an Ihren Betreuer.

Hinweise zur Ausarbeitung

Die Ausarbeitung soll genügend viele Seiten haben. Als erste Zielgröße können Sie einen Umfang von 10 bis 15 Seiten anstreben, aber es ist nicht möglich, allgemeingültige obere und untere Schranken anzugeben, da die Themen zu unterschiedlich sind und eine Textlänge durch Anzahl und Größe von Abbildungen zu unterschiedlichen Seitenanzahlen führen kann.

Allgemeine Hilfestellungen zum Inhalt und zum Aufbau von Ausarbeitungen zu Seminaren, FoPras und Hausarbeiten jeglicher Art sind in einem Meta-Paper zu finden. (Das Programm bibtex erstellt aus der Bibliographie die geeigneten TeX-Kommandos. Falls Ihr DVI-Viewer das PostScript-Bild nicht anzeigt, müssen sie eine Umwandlung z. B. mit dvips vornehmen.)

Das von Ihnen vorgestellte Thema sollte vollständig behandelt werden; Beachten Sie also, daß Sie nicht einfach die Folien des Vortrages, garniert mit ein paar überleitenden Sätzen, als Ausarbeitung vorstellen: Ihre mündlichen Erläuterungen sollten in der Ausarbeitung schriftlich fixiert werden, die Darstellung eines Beispieles muß angepasst werden etc.

Achten Sie ferner darauf, die Fakten, die Sie präsentieren wollen, hinreichend zu erklären und mit Beispielen weiter zu erläutern. Insbesondere kann es sinnvoll sein, für die Ausarbeitungen einen ganz anderen Aufbau zu wählen als den von den Autoren für ihren wissenschaftlichen Artikel benutzten, weil die Leserschaften und die Ziele von Artikel und Ausarbeitung sich unterscheiden.

Für weitergehende Fragen zum Inhalt oder zum Stil der Ausarbeitung wenden Sie sich an Ihren Betreuer.

Jetzt sind die Ausarbeitungen auch elektronisch verfügbar (neun von zehn Ausarbeitungen). Ein PS-File des Seminarbandes und ein PDF-File des Seminarbandes mit allen farbigen Abbildungen kann heruntergeladen werden.

Hinweise zur Seminararbeit

Eine Einführungsveranstaltung am 17. November beschäftigte sich mit Hinweisen zum richtigen Umgang mit der Literatur und der Anfertigung von Vortrag und Ausarbeitung. Hier sind die verwendeten Folien verfügbar.

Allgemeines

Sprechen Sie mit Ihrem Betreuer! Wenn wir nichts von Ihnen hören, müssen wir annehmen, daß Sie sich nicht für das Thema interessieren oder keine Zeit zur Bearbeitung haben. Wenn Sie Probleme haben, sagen Sie das rechtzeitig; Nur dann können wir Ihnen helfen.

Insbesondere ist es wichtig, daß Sie Ihrem Betreuer

Nichtbeachtung dieser Fristen führt zum Ausschluß.

Themen

Folgende Themen sind vorgesehen. Sie sollen von je einer Person bearbeitet werden.

ThemaLiteraturBetreuerBearbeiterVortrag
Einführung
Programmierbare Rasterisierungshardware[M03], [D03] Ph. SlusallekFischerMittwoch
Shading
Renderman[U90], [AD92], [AG99] J. SchmittlerBuenteDonnerstag
Graphikshader[EMPPW02] J. SchmittlerSchulzDonnerstag
Programmiersprachen
Cg/glslang[N03], [KBR03], [MGAK03] N. FritzThielenDonnerstag
Shader Metaprogramming[MQP02] Ph. LucasMüllerDonnerstag
Programmoptimierung
Vektorisierung[AK01], [ZC90] N. FritzEckertMittwoch
Superword Level Parallelism[LA99] N. FritzAbtMittwoch
Anwendungen
Nutzung nichtprogrammierbarer Graphikkarten[HCKLM99], [TS00], [LM01] Ph. LucasHaasDonnerstag
GPUs für komplexe Anwendungen[GLLS03], [BFGS03] Ph. SlusallekWenderFreitag
GPUs für spezielle Berechnungen[THO02], [KW03] Ph. LucasSchultzFreitag

Literaturliste

KürzelAutorenTitelErscheinung
[U90]Upstill The Renderman Companion: A Programmers Guide to Realistic Computer GraphicsAddison-Wesley 1990
[ZC90]Zima/Chapman Supercompilers for Parallel and Vector ComputersACM Press 1990
[AD92]Apodaca/Peachey Writing RenderMan ShadersSIGGRAPH 1992
[AG99]Apodaca/Gritz Advanced RenderMan: Creating CGI for Motion PicturesMorgan Kaufmann 1999
[HCKLM99]Hoff/Culver/Keyser/Lin/Manocha Fast Computation of Generalized Voronoi Diagrams Using Graphics HardwareSIGGRAPH 1999
[LA99]Larsen/Amarasinghe Exploiting Superword Level Parallelism with Multimedia Instruction SetsMIT/LCS Technical Memo 601
[TS00]Trendall/Stewart General Calculations using Graphics Hardware, with Applications to Interactive CausticsRendering Workshop 2000
[AK01]Allen/Kennedy Optimizing Compilers for Modern ArchitecturesMorgan Kaufmann 2001
[LM01]Larsen/McAllister Fast Matrix Multiplies using Graphics HardwareSupercomputing 2001
[PBMH02]Purcell/Buck/Mark/Hanrahan Ray Tracing on Programmable Graphics HardwareSIGGRAPH 2002
[CHH02]Carr/Hall/Hart The Ray EngineGraphics Hardware 2002
[HCSL02]Harris/Coombe/Scheuermann/Lastra Physically-Based Simulation on Graphics HardwareGraphics Hardware 2002
[MQP02]McCool/Qin/Papa Shader MetaprogrammingGraphics Hardware 2002
[EMPPW02]Ebert/Musgrave/Peachey/Perlin/Worley Texturing and Modeling: A Procedural ApproachMorgan Kaufmann 2002
[THO02]Thompson/Hahn/Oskin Using Modern Graphics Architectures for General-Purpose Computing: A Framework and AnalysisMICRO-35 2002
[PDCJH03]Purcell/Donner/Cammarano/Jensen/Hanrahan Photon Mapping on Programmable Graphics HardwareGraphics Hardware 2003
[N03]NVIDIA Cg Toolkit User's ManualNVIDIA homepage
[KBR03]Kessenich/Baldwin/Rost The OpenGL Shading Language3Dlabs homepage
[GLLS03]Goodnight/Lewin/Luebke/Skadron A Multigrid Solver for Boundary Value Problems Using Programmable Graphics HardwareUniv. Virginia TR CS-2003-03
[MGAK03]Mark/Glanville/Akeley/Kilgard Cg: A System for Programming Graphics Hardware in a C-like LanguageSIGGRAPH 2003
[BFGS03]Bolz/Farmer/Grinspun/Schröder Sparse Matrix Solvers on the GPU: Conjugate Gradients and MultigridSIGGRAPH 2003
[D03]Dogget Programmability Features of Graphics HardwareSIGGRAPH 2003
[KW03]Krüger/Westermann Linear Algebra Operators for GPU Implementation of Numerical AlgorithmsSIGGRAPH 2003
[M03]Microsoft DirectX 9 Shader ReferenceMSDN homepage

Valid HTML 4.01 Strict, valid CSS.

Best viewed with any browser.

Autor: Philipp Lucas.