Особенности программирования на GPU презентация

Слайд 2

ЗАЧЕМ ЧТО-ТО СЧИТАТЬ НА GPU?

На графике изображены рост флопсов с течением времени для

процессоров и для видеокарт.

2010

2011

2012

2013

2014

2015

2016

2017

2018

1 244

2 289

4 700

5 600

6 691

9 526

12 150

16 310

256

640

768

1 152

1 200

1 250

2 100

GPU

CPU

Performance, GFlops

ЗАЧЕМ ЧТО-ТО СЧИТАТЬ НА GPU? На графике изображены рост флопсов с течением времени

Слайд 3

CPU Core

GPU Core

АРХИТЕКТУРА GPU И ЕЕ СРАВНЕНИЕ С CPU

Fetch/Decode

Register

ALU (Execute)

Out-of-order control logic

Memory pre-fetcher

Data cache

Branch predictor

Execution

context

Fetch/Decode

Register

Register

ALU

ALU

ALU

ALU

ALU

ALU

ALU

ALU

Execution context

CPU Core GPU Core АРХИТЕКТУРА GPU И ЕЕ СРАВНЕНИЕ С CPU Fetch/Decode Register

Слайд 4

Ограничения на выполняемые алгоритмы при работе с GPU:
Если мы выполняем расчет на GPU,

то не можем выделить только одно ядро, выделен будет целый блок ядер.
Все ядра выполняют одни и те же инструкции, но с разными данными, такие вычисления называются Single-Instruction-Multiple-Data или SIMD. 
Из-за относительно простого набора логических блоков и общих регистров, GPU очень не любит ветвлений.
Возможности:
Ускорение SIMD-вычислений

ОГРАНИЧЕНИЯ И ВОЗМОЖНОСТИ ПРИ РАБОТЕ С GPU

Ограничения на выполняемые алгоритмы при работе с GPU: Если мы выполняем расчет на

Слайд 5

ПРИВЕДЕНИЕ КЛАССИЧЕСКИХ АЛГОРИТМОВ
К SIMD-ПРЕДСТАВЛЕНИЮ

ПРИВЕДЕНИЕ КЛАССИЧЕСКИХ АЛГОРИТМОВ К SIMD-ПРЕДСТАВЛЕНИЮ

Слайд 6

4992 CUDA ядра
24 GB памяти
480 Gb/s — пропускная способность памяти 

Время выполнения агрегации на

GPU и CPU в мс

4,1

1,7

12,1

41,3

112,8

413,1

8 MB

80 MB

800 MB

CPU Time

GPU Time

Latency, ms

РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ АЛГОРИТМОВ НА GPU

4992 CUDA ядра 24 GB памяти 480 Gb/s — пропускная способность памяти Время

Слайд 7

Тест видеокарты Tesla k80 в облаке Amazon

HtoD — передаем данные на видеокарту
GPU Execution

— сортировка на видеокарте
DtoH — копирование данных из видеокарты в оперативную память

Memory bandwidth, или пропускная способность памяти, определяет теоретическую пропускную способность карты

8 B

800 B

8 KB

80 KB

800 KB

Latency, ms

0,2

0,1

0,018

0,2

0,1

0,018

0,2

0,9

0,9

0,2

0,02

0,4

1,5

0,039

0,233

HtoD Time

DtoH

GPU Execution

ОВЕРХЕД НА ПЕРЕСЫЛКУ ДАННЫХ

Тест видеокарты Tesla k80 в облаке Amazon HtoD — передаем данные на видеокарту

Слайд 8

Время выполнения математических расчетов на GPU и CPU c матрицами размером 1000 x

60 в мс

Latency, ms

Threads Count

avg GPU

avg CPU4

avg CPU32

МНОГОПОТОЧНОСТЬ

1

3

5

7

9

11

13

15

17

19

21

23

25

27

29

31

33

35

39

41

43

45

47

49

51

53

55

57

59

61

63

20

40

60

80

100

120

Время выполнения математических расчетов на GPU и CPU c матрицами размером 1000 x

Слайд 9

Время выполнения математических расчетов на GPU и CPU c матрицами 10 000 x

60 в мс

Latency, ms

Threads Count

МНОГОПОТОЧНОСТЬ

1

3

5

7

9

11

13

15

17

19

21

23

25

27

29

31

33

35

39

41

43

45

47

49

51

53

55

57

59

61

63

1

2

3

4

5

6

7

8

9

10

avg GPU

avg CPU4

avg CPU32

Время выполнения математических расчетов на GPU и CPU c матрицами 10 000 x

Слайд 10

Если вы размышляете об использовании GPU в своих проектах, то GPU, скорее всего,

вам подойдет если:
Вашу задачу можно привести к SIMD-виду
Есть возможность загрузить большую часть данных на карту до вычислений (закешировать)
Задача подразумевает интенсивные вычисления

РЕКОМЕНДАЦИИ

Заранее также стоит задаться вопросами:
Сколько будет параллельных запросов 
На какое latency вы рассчитываете
Достаточно ли вам одной карты для вашей нагрузки, нужен сервер с несколькими картами или кластер GPU-серверов 

Если вы размышляете об использовании GPU в своих проектах, то GPU, скорее всего,

Имя файла: Особенности-программирования-на-GPU.pptx
Количество просмотров: 5
Количество скачиваний: 0