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

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

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

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

GPU Computing

Burim Kameri

Fachhochschule Hannover (FHH)

Institut für Solarforschung Hameln (ISFH)

Page 2: 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

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

Motivation

GPU - Computing

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

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]

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

Sequentielle vs. parallele Programmierung

• Sequentielle Programmierung

GPU - Computing

Quelle: https://computing.llnl.gov/tutorials/parallel_comp/

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

Sequentielle vs. parallele Programmierung

• Parallele Programmierung

GPU - Computing

Quelle: https://computing.llnl.gov/tutorials/parallel_comp/

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

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

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

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;

}

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

Optimierung

GPU - Computing

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

Optimierung

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

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

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

Dankeschön!

Fragen?

GPU - Computing