005 Computerprogrammierung, Programme, Daten
Filtern
Erscheinungsjahr
- 2021 (2) (entfernen)
Schlagworte
- Computergrafik (1)
- Computervisualistik (1)
- GPU (1)
- IceCube (1)
- Neutino (1)
- Point Rendering (1)
- Punktrendering (1)
- performance optimization (1)
- warp divergence (1)
Point Rendering
(2021)
In dieser Arbeit werden Verfahren zum Rendern von Punktdaten vorgestellt und miteinander verglichen. Die Verfahren lassen sich in zwei Kategorien unterteilen. Zum einen werden visuelle Verfahren behandelt, welche sich mit der reinen Darstellung von Punktprimitiven befassen. Hauptproblem ist dabei die Darstellung von Oberflächen, da Punktdaten im Gegensatz zu traditionellen Dreiecksnetzen keine Nachbarschaftsinformationen beinhalten. Zum anderen werden beschleunigende Datenstrukturen dargelegt, welche die echtzeitfähige Darstellung von großen Punktwolken ermöglichen. Punktwolken weisen häufig eine hohe Datenmenge auf, da diese meist durch 3D-Scanningverfahren wie z.B. Laserscanning und Photogrammetrie generiert werden.
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.