Detailansicht
Optimierung von Life Sciences Algorithmen für GPUs mit CUDA/OpenCL
David Dilch
Art der Arbeit
Masterarbeit
Universität
Universität Wien
Fakultät
Fakultät für Informatik
Betreuer*in
Eduard Mehofer
DOI
10.25365/thesis.30677
URN
urn:nbn:at:at-ubw:1-30162.79744.744663-9
Link zu u:search
(Print-Exemplar eventuell in Bibliothek verfügbar)
Abstracts
Abstract
(Deutsch)
Ein Forschungsschwerpunkt in Scientific Computing beschäftigt sich mit der Parallelisierung von Algorithmen für GPUs, da die theoretische maximale Leistung von GPUs ein Vielfaches größer ist als von CPUs. In der Masterarbeit wird zunächst auf die Nvidia-Fermi-GPU-Architektur und auf die Änderungen gegenüber der Vorgängerarchitektur GT200 näher eingegangen. Im nächsten Schritt werden die GPU-Programmiersprachen CUDA und OpenCL erklärt und die Unterschiede in der Programmierung gegenübergestellt. Das Ziel der Masterarbeit ist die Optimierung von zwei Life-Science-Algorithmen (Needleman-Wunsch/Smith-Waterman und Direct Coulomb Summation) für die Ausführung auf Grafikkarten (Nvidia-Fermi und Nvidia-GT200) bei Verwendung der Programmiersprachen CUDA und OpenCL. Der DCS-Algorithmus ist für Grafikkarten deutlich besser als der NW/SW-Algorithmus geeignet, da der Parallelisierungsgrad wesentlich größer ist. In der Masterarbeit wird ermittelt, wie wirksam einzelne Optimierungstechniken bei unterschiedlichen GPU-Architekturen (Fermi und GT200) und bei unterschiedlichen GPU-Programmiersprachen (CUDA und OpenCL) sind. Dabei wird überprüft, ob Optimierungstechniken, wie Memory Coalescing und Verwendung der kleinen on-chip-Speicher, durch die mit der Fermi-Architektur eingeführte Cache-Hierarchie über den Global Memory nicht mehr notwendig sind und dadurch eine einfachere Überführung von CPU-Code in GPU-Code ohne Einbußen bei der Performance möglich ist. Ebenfalls ein wichtiges Thema der Masterarbeit ist der faire Vergleich des GPU-Programms mit dem CPU-Programm beim Beantworten der Frage, ob bei beiden Algorithmen auf der GPU ein Speedup gegenüber der CPU erreicht werden kann. Für einen fairen Vergleich werden unter anderem bei der CPU mit der Programmiersprache OpenMP alle Kerne verwendet. In der Masterarbeit wird auch auf die limitierenden Faktoren eingegangen, die dazu führen, dass der Algorithmus nicht die Peak-Leistung der GPU erreicht.
Abstract
(Englisch)
A research focus in scientific computing deals with the parallelisation of algorithms for GPUs because the theoretical maximum performance of GPUs is many times higher than of CPUs. The master thesis starts with the Nvidia Fermi GPU architecture and the changes compared to the predecessor architecture GT200. In the next step the GPU programming languages CUDA and OpenCL are explained and the differences in programming are compared. The aim of the master thesis is the optimization of two life science algorithms (Needleman-Wunsch/Smith-Waterman, Direct Coulomb Summation) for the execution on graphics cards (Nvidia-Fermi, Nvidia-GT200) by using the programming languages CUDA and OpenCL. The DCS algorithm is much more suitable for graphics cards than the NW/SW algorithm because the degree of parallelisation is significantly higher. In this master thesis, it is determined how effective the optimization techniques are on different GPU architectures (Fermi, GT200) and on different GPU programming languages (CUDA, OpenCL). In doing so, it is checked whether the new cache hierarchy for the global memory in the Fermi architecture replaces optimization techniques (memory coalescing, use of the small on chip memories) and therefore makes an easier transfer from CPU code to GPU code without losing performance possible. Another important issue of the master thesis is the fair comparison between GPU program and CPU program when answering the question whether the two algorithms can reach a speedup on the GPU in comparison with the CPU. For a fair comparison all cores on the CPU are used with the programming language OpenMP.
Schlagwörter
Schlagwörter
(Englisch)
CUDA OpenCL Nvidia Fermi GPU architecture Nvidia GT200 GPU architecture Life Sciences algorithms optimizations
Schlagwörter
(Deutsch)
CUDA OpenCL Nvidia Fermi GPU Architektur Nvidia GT200 GPU Architektur Life Sciences Algorithmen Optimierungen
Autor*innen
David Dilch
Haupttitel (Deutsch)
Optimierung von Life Sciences Algorithmen für GPUs mit CUDA/OpenCL
Publikationsjahr
2013
Umfangsangabe
205 S. : graph. Darst.
Sprache
Deutsch
Beurteiler*in
Eduard Mehofer
Klassifikation
54 Informatik > 54.59 Programmierung: Sonstiges
AC Nummer
AC11843827
Utheses ID
27328
Studienkennzahl
UA | 066 | 940 | |