Upload
jutte-langer
View
102
Download
0
Embed Size (px)
Citation preview
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
64 128 256 5120
100
200
300
400
500
600
700
800
900
1000928
387
36
CPU [ms]
GPU [ms] - nicht optimiert
GPU [ms] - optimiert
Matrix Size
Time[ms]
Sequentielle vs. parallele Programmierung
• Sequentielle Programmierung
GPU - Computing
Quelle: https://computing.llnl.gov/tutorials/parallel_comp/
Sequentielle vs. parallele Programmierung
• Parallele Programmierung
GPU - Computing
Quelle: https://computing.llnl.gov/tutorials/parallel_comp/
GPGPU - OpenCL
• Zusätzliche Verwendung der GPU für allgemeine Aufgaben
GPU - Computing
Quelle: CUDA C Programming Guide
Quelle: http://de.wikipedia.org/wiki/OpenCL
Beispiel (Matrix-Skalar-Multiplikation)
• CPU
• GPU (OpenCL)
GPU - Computing
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;
}
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