|
|
 |
 |
Performance Optimierung numerischer Methoden auf Grafikkarten mit NVidia CUDA Framework
Betreuung:
|
Hintergrund:
Grafikkarten erfreuen sich auch im High Performance Computing immer größerer Beliebtheit.
Neueste Grafikkarten mit Multicore Architektur und großen Speichern verstärken diesen Trend sodass sie auch
für numerische Berechnungen interessant werden.
Für die Grafik-Prozessoren (GPUs) von Nvidia wird darüberhinaus die Common
Unified Device Architecture (CUDA) angeboten,
die es als fortgeschrittenes Programmiermodell erlauben soll, mittels einiger Spezialbefehle in der
Programmiersprache C diese Architektur effizient u. einfach auszunutzen.
|
Aufgaben:
Aus langjähriger Erfahrung entstand für die Performance-Optimierung numerischer Codes auf IA32 und IA64-Architekturen an unserem Lehrstuhl fundiertes Verständnis für den internen Aufbau und der damit einhergehenden Limitierungen, die es bei
der Programmierung zu adressieren gilt. Um ein ähnliches Verständnis auch für Grafikprozessoren zu erhalten, soll
sich eine tiefgehende Studie in dieser Arbeit mit der internen Struktur der Grafikkarten-Architektur auseinandersetzen. Durch die
Portierung zunächst einfacher Kernels (Vektor-Triade und andere Benchmarks) und später evtl. komplizierterer Algorithmen (evtl. Lattice Boltzmann Methode) ist der Kosten-Nutzen-Aufwand der Portierungsarbeit zum erhaltenen Speedup zu bewerten. Nach
Möglichkeit soll dieses Verhältnis sowohl für die einfachen Bibliotheksbefehle als auch die hardwarenäheren
Instruktionen von CUDA untersucht werden.
Empfohlene Vorkenntnisse:
- Programmiererfahrung
- Vorlesungen über Performance-Optimierung
- nach Möglichkeit erste Erfahrungen mit CUDA
- Allgemeines Interesse an hardwarenaher Peformance-Optimierung
Literatur:
- Nvidia CUDA Programming Guide
Art:
Master- oder Diplomarbeit
Status:
Offen
|
 |
 |
|