TY - THES A1 - Schwanekamp, Hendrik T1 - Performance analysis and optimization of highly diverging algorithms on GPUs N2 - In this thesis, the performance of the IceCube projects photon propagation code (clsim) is optimized. The process of GPU code analysis and perfor- mance optimization is described in detail. When run on the same hard- ware, the new version achieves a speedup of about 3x over the original implementation. Comparing the unmodified code on hardware currently used by IceCube (NVIDIA GTX 1080) against the optimized version run on a recent GPU (NVIDIA A100) a speedup of about 9.23x is observed. All changes made to the code are shown and their performance impact as well as the implications for simulation accuracy are discussed individually. The approach taken for optimization is then generalized into a recipe. Programmers can use it as a guide, when approaching large and complex GPU programs. In addition, the per warp job-queue, a design pattern used for load balancing among threads in a CUDA thread block, is discussed in detail. N2 - 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. KW - GPU KW - performance optimization KW - warp divergence KW - IceCube KW - Neutino Y1 - 2021 UR - https://kola.opus.hbz-nrw.de/frontdoor/index/index/docId/2161 UR - https://nbn-resolving.org/urn:nbn:de:kola-21617 ER -