GPU Computing Burim Kameri Fachhochschule Hannover (FHH) Institut für Solarforschung Hameln (ISFH)

Post on 06-Apr-2015

102 views 0 download

transcript

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