GPU Computing Burim Kameri Fachhochschule Hannover (FHH) Institut für Solarforschung Hameln (ISFH)
Inhalt Sequentielle vs. parallele Programmierung GPU GPGPU CUDA, OpenCL, etc. Problemstellung Beispiele Optimierung GPU - Computing
Motivation GPU - Computing
Motivation: Beispiel
Sequentielle vs. parallele Programmierung Sequentielle Programmierung Quelle: https://computing.llnl.gov/tutorials/parallel_comp/ GPU - Computing
Sequentielle vs. parallele Programmierung Quelle: https://computing.llnl.gov/tutorials/parallel_comp/ GPU - Computing
GPGPU - OpenCL Zusätzliche Verwendung der GPU für allgemeine Aufgaben Quelle: CUDA C Programming Guide Quelle: http://de.wikipedia.org/wiki/OpenCL GPU - Computing
Beispiel (Matrix-Skalar-Multiplikation) CPU GPU (OpenCL) void multMatrix(float* A, float c, float* B) { for( i = 0;i < 225;i++ ) { B[i] = A[i] * c; } __kernel__ void multMatrix(float* A, float c, float* B) { int idx = get_global_id(0); B[idx] = A[idx] * c; } GPU - Computing
Optimierung GPU - Computing
Optimierung
Zusammenfassung Aufteilung des Domänenproblems Tieferes Verständnis des Domänenproblems nötig Wissen über das Programmiermodell work-items, work-groups, Kernels, Speicherhirachien, etc. Synchronisierung Tiefes Wissen über die GPU-Architektur Shared Memory Kontrollstrukturen mit bedingten Verzweigungen vermeiden GPU - Computing
Dankeschön! Fragen? GPU - Computing