Filtern
Dokumenttyp
- Studienarbeit (2)
- Bachelorarbeit (1)
- Diplomarbeit (1)
- Masterarbeit (1)
Schlagworte
- GPU (5) (entfernen)
In dieser Arbeit wird die Geschwindigkeit des Simulationscodes zur Pho-
tonenausbreitung beim IceCube-Projekt (clsim) optimiert. Der Prozess der
GPU-Code-Analyse und Leistungsoptimierung wird im Detail beschrie-
ben. Wenn beide Codes auf der gleichen Hardware ausgeführt werden,
wird ein Speedup von etwa 3x gegenüber der ursprünglichen Implemen-
tierung erreicht. Vergleicht man den unveränderten Code auf der derzeit
von IceCube verwendeten Hardware (NVIDIA GTX 1080) mit der opti-
mierten Version, die auf einer aktuellen GPU (NVIDIA A100) läuft, wird
ein Speedup von etwa 9,23x beobachtet. Alle Änderungen am Code wer-
den vorgestellt und deren Auswirkung auf die Laufzeit und Genauigkeit
der Simulation diskutiert.
Der für die Optimierung verfolgte Weg wird dann in einem Schema
verallgemeinert. Programmierer können es als Leitfaden nutzen, um große
und komplexe GPU-Programme zu optimieren. Darüber hinaus wird die
per warp job-queue, ein Entwurfsmuster für das load balancing innerhalb
eines CUDA-Thread-Blocks, im Detail besprochen.
Diese Arbeit stellt den Faltungshall vor, ein Verfahren, das es ermöglicht, in neutral klingenden Räumen aufgenommenes Audiomaterial mit realistisch klingendem Nachhall zu versehen. Dabei wird vor allem auf die Möglichkeit eingegangen, den Effekt auf einer GPU mit Hilfe von OpenCL zu berechnen, um die hohe Parallelisierbarkeit des Problems zu seiner Lösung zu nutzen. Ziel ist es, ein VST-Plugin entwickeln zu können, das den GPU-beschleunigten Faltungsalgorithmus in verschiedener Audiosoftware nutzbar macht.
Das Projekt Ziel der Studienarbeit war, eine physikalisch basierte Echtzeitsimulation eines volumetrischen Fluids in Form einer Rauchentwicklung auf der GPU zu realisieren und diese in eine Echtzeitanwendung zu integrieren. Motivation Mit Hilfe von Fluidsimulationen lassen sich einige der faszinierendst anzuschauenden Naturphänomene wie Rauch, Wolken oder auch Feuer und Wasser realistisch darstellen. Ausserdem könnten mit physikalischbasierten Fluidsimulationen eine große Fülle neuer Interaktionsmöglichkeiten innerhalb einer simulierten Welt realisiert werden. Wasser könnte realistisch fließen und Gegenstände mit sich reißen oder ganze Landschaften überfluten, Wind- und Luftströmungen könnten Segelschiffe antreiben oder sogar zerstörerische Wettereffekte wie Tornados simulieren etc... Die Fluidsimulation Der Rauch kann um Objekte im Fluidvolumen strömen, auf Temperaturunterschiede reagieren und dynamisch beleuchtet werden. Die Fluidsimulation nutzt dabei einen rasterbasierten Ansatz um die Navier-Stokes Gleichungen zu lösen und Partikel durch das Volumen zu transportieren. Objekte können voxelisiert werden und den Fluss im Fluidvolumen beeinflussen. Eine Temperatursimulation sorgt für eine realistische Rauchentwicklung, in dem Partikel, die sich von eine Wärmequelle entfernen zu Boden fallen. Der Rauch kann zudem durch die approximierte Simulation von Licht-Streuungseffekten (scattering) dynamisch und realitätsnah in Echtzeit beleuchtet werden Für eine möglichst artefaktfreie dreidimensionale Visualisierung des Volumens kommt als Rendering-Verfahren View-aligned Volume Slicing zum Einsatz. Ergebnis Das Ergebnis der Arbeit zeigt, Fluidsimulationen lassen sich heute mit Hilfe der GPU in Echtzeit in erstaunlicher Qualität darstellen und sogar in Echtzeitanwendungen integrieren. Es wurde neben der Fluidsimulation ein OpenGL-Renderer als Echtzeitanwendung entworfen, um die Möglichkeiten der Integration einer Fluidsimulation in eine solche Anwendung zu demonstrieren. In dem Programm können zudem zahlreiche Parameter der Fluidsimulation zur Laufzeit manipuliert und gespeichert werden. Der Nutzer kann sich so mit den vielfältigen Möglichkeiten und faszinierenden Effekten einer Fluidsimulation vertraut machen.
Das performante Rendering großer Volumendaten stellt trotz stetig gestiegener Prozessorleistungen nach wie vor hohe Anforderungen an jedes zugrunde liegende Visualisierungssystem. Insbesondere trifft dies auf direkte Rendering-Methoden mithilfe des Raycasting-Verfahrens zu, welches zum einen eine sehr hohe Qualität und Genauigkeit der generierten Bilder bietet, zum anderen aber aufgrund der dafür nötigen hohen Abtastrate relativ langsam ist. In dieser Studienarbeit wird ein Verfahren zur Beschleunigung des Raycasting- Visualierungsansatzes vorgestellt, das auf adaptivem Sampling beruht. Dabei werden statische Volumendaten zunächst in einem Vorverarbeitungsschritt einer Gradientenanalyse unterzogen, um so ein Interessensvolumen zu erstellen, das wichtige und weniger wichtige Bereiche kennzeichnet. Dieses Volumen wird anschließend von einem Raycaster genutzt, um adaptiv für jeden Abtaststrahl die Schrittweite zu bestimmen.
Die Leistungsfähigkeit moderner Graphikkarten steigt zur Zeit schneller an, als die von CPUs. Dabei kann diese Leistung nicht nur zur Darstellung von 3D Welten, sondern auch für allgemeine Berechnungen (GPGPU) verwendet werden. Diese Diplomarbeit untersucht daher, ob mit Hilfe der GPU Volumendaten schneller gefiltert werden können, als mit der CPU. Dies soll insbesondere am Beispiel von Rausch-Filtern, die auf Videosequenzen angewendet werden, untersucht werden. Dabei soll das Video als Volumen repräsentiert und mit Volumenfiltern gefiltert werden. So soll eine höhere Qualität und eine kürzere Berechnungszeit als mit herkömmlichen CPU und Frame-basierten Verfahren erreicht werden, insbesondere auch bei den z.Z. stark aufkommenden hochauflösenden HDTV-Standards. Das Framework soll jedoch nicht auf Videosequenz-Bearbeitung beschränkt sein, sondern so konzipiert werden, dass es z.B. in bestehende Volumenvisualisierungssysteme integriert werden kann. Das Ziel der Arbeit ist die Einarbeitung in die notwendigen theoretischen Grundlagen, daran anschließend die prototypische Implementierung des Frameworks mit abschließender Bewertung der erreichten Ergebnisse insbesondere der Geschwindigkeit im Vergleich zu existierenden Systemen.