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

Слайд 2

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

ЗАЧЕМ ЧТО-ТО СЧИТАТЬ НА 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

Слайд 3

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

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

Слайд 4

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

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

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

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

Слайд 5

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

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

Слайд 6

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

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

Слайд 7

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

Тест видеокарты 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

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

Слайд 8

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

Время выполнения математических расчетов на 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

Слайд 9

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

Время выполнения математических расчетов на 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

Слайд 10

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

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

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

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

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

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