Einführung in die Seminararbeit | 17. November, 14:00, Seminarraum der Graphiker |
Abgabe der Ausarbeitungen | 16. Februar 2004 |
Vorträge |
|
Leistungspunkte | 9 |
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!
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.
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.
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.
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ß.
Folgende Themen sind vorgesehen. Sie sollen von je einer Person bearbeitet werden.
Thema | Literatur | Betreuer | Bearbeiter | Vortrag |
---|---|---|---|---|
Einführung | ||||
Programmierbare Rasterisierungshardware | [M03], [D03] | Ph. Slusallek | Fischer | Mittwoch |
Shading | ||||
Renderman | [U90], [AD92], [AG99] | J. Schmittler | Buente | Donnerstag |
Graphikshader | [EMPPW02] | J. Schmittler | Schulz | Donnerstag |
Programmiersprachen | ||||
Cg/glslang | [N03], [KBR03], [MGAK03] | N. Fritz | Thielen | Donnerstag |
Shader Metaprogramming | [MQP02] | Ph. Lucas | Müller | Donnerstag |
Programmoptimierung | ||||
Vektorisierung | [AK01], [ZC90] | N. Fritz | Eckert | Mittwoch |
Superword Level Parallelism | [LA99] | N. Fritz | Abt | Mittwoch |
Anwendungen | ||||
Nutzung nichtprogrammierbarer Graphikkarten | [HCKLM99], [TS00], [LM01] | Ph. Lucas | Haas | Donnerstag |
GPUs für komplexe Anwendungen | [GLLS03], [BFGS03] | Ph. Slusallek | Wender | Freitag |
GPUs für spezielle Berechnungen | [THO02], [KW03] | Ph. Lucas | Schultz | Freitag |
Kürzel | Autoren | Titel | Erscheinung |
---|---|---|---|
[U90] | Upstill | The Renderman Companion: A Programmers Guide to Realistic Computer Graphics | Addison-Wesley 1990 |
[ZC90] | Zima/Chapman | Supercompilers for Parallel and Vector Computers | ACM Press 1990 |
[AD92] | Apodaca/Peachey | Writing RenderMan Shaders | SIGGRAPH 1992 |
[AG99] | Apodaca/Gritz | Advanced RenderMan: Creating CGI for Motion Pictures | Morgan Kaufmann 1999 |
[HCKLM99] | Hoff/Culver/Keyser/Lin/Manocha | Fast Computation of Generalized Voronoi Diagrams Using Graphics Hardware | SIGGRAPH 1999 |
[LA99] | Larsen/Amarasinghe | Exploiting Superword Level Parallelism with Multimedia Instruction Sets | MIT/LCS Technical Memo 601 |
[TS00] | Trendall/Stewart | General Calculations using Graphics Hardware, with Applications to Interactive Caustics | Rendering Workshop 2000 |
[AK01] | Allen/Kennedy | Optimizing Compilers for Modern Architectures | Morgan Kaufmann 2001 |
[LM01] | Larsen/McAllister | Fast Matrix Multiplies using Graphics Hardware | Supercomputing 2001 |
[PBMH02] | Purcell/Buck/Mark/Hanrahan | Ray Tracing on Programmable Graphics Hardware | SIGGRAPH 2002 |
[CHH02] | Carr/Hall/Hart | The Ray Engine | Graphics Hardware 2002 |
[HCSL02] | Harris/Coombe/Scheuermann/Lastra | Physically-Based Simulation on Graphics Hardware | Graphics Hardware 2002 |
[MQP02] | McCool/Qin/Papa | Shader Metaprogramming | Graphics Hardware 2002 |
[EMPPW02] | Ebert/Musgrave/Peachey/Perlin/Worley | Texturing and Modeling: A Procedural Approach | Morgan Kaufmann 2002 |
[THO02] | Thompson/Hahn/Oskin | Using Modern Graphics Architectures for General-Purpose Computing: A Framework and Analysis | MICRO-35 2002 |
[PDCJH03] | Purcell/Donner/Cammarano/Jensen/Hanrahan | Photon Mapping on Programmable Graphics Hardware | Graphics Hardware 2003 |
[N03] | NVIDIA | Cg Toolkit User's Manual | NVIDIA homepage |
[KBR03] | Kessenich/Baldwin/Rost | The OpenGL Shading Language | 3Dlabs homepage |
[GLLS03] | Goodnight/Lewin/Luebke/Skadron | A Multigrid Solver for Boundary Value Problems Using Programmable Graphics Hardware | Univ. Virginia TR CS-2003-03 |
[MGAK03] | Mark/Glanville/Akeley/Kilgard | Cg: A System for Programming Graphics Hardware in a C-like Language | SIGGRAPH 2003 |
[BFGS03] | Bolz/Farmer/Grinspun/Schröder | Sparse Matrix Solvers on the GPU: Conjugate Gradients and Multigrid | SIGGRAPH 2003 |
[D03] | Dogget | Programmability Features of Graphics Hardware | SIGGRAPH 2003 |
[KW03] | Krüger/Westermann | Linear Algebra Operators for GPU Implementation of Numerical Algorithms | SIGGRAPH 2003 |
[M03] | Microsoft | DirectX 9 Shader Reference | MSDN homepage |
Valid HTML 4.01 Strict, valid CSS.
Autor: Philipp Lucas.