1/23

Основная терминология курса: шейдер, SM, ROP, TPC, SP. Типы параллельных архитектур: SISD, MISD, SIMD, MIMD, DSP

1.

МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ
(национальный исследовательский университет)
Факультет прикладной математики и физики
Кафедра вычислительной математики и программирования
Лекция 2
«Основная терминология курса: шейдер, SM, ROP,
TPC, SP. Типы параллельных архитектур: SISD,
MISD, SIMD, MIMD, DSP»
Выполнил: Семенов С.А.
Руководитель: Ревизников Д.Л.

2.

Введение
Схематическое изображение графического
адаптера
Классификация вычислительных систем по
Флинну
Схематическое устройство SMP
Multithreading
Bottleneck
Московский авиационный институт
(национальный исследовательский университет)
2
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования

3. Графическая плата NVIDIA

Московский авиационный институт
(национальный исследовательский университет)
3
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования

4. Средства обмена данными в компьютере

Обмен данными –
важнейшая составляющая
компьютера
Примеры:
многопроцессорные
системы, FPGA etc.
По традиции отдельные
устройства имеют разные
возможности (уровни и
способы) обмена данными
Традиционная
архитектура ориентирована
на одно, центральное
счётное устройство
Московский авиационный институт
(национальный исследовательский университет)
4
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования

5. Программная часть технологии CUDA

Введем основные термины и отношения между ними [CUDA C Best
Practices, 2010].
Хост (Host) — центральный процессор, управляющий выполнением
программы.
Устройство (Device) — видеоадаптер, выступающий в роли
сопроцессора центрального
процессора.
Грид (Grid) — объединение блоков, которые выполняются на одном
устройстве.
Блок (Block) — объединение тредов, которое выполняется целиком на
одном SM. Имеет
свой уникальный идентификатор внутри грида.
Тред (Thread, поток) — единица выполнения программы. Имеет свой
уникальный
идентификатор внутри блока.
Варп (Warp) — 32 последовательно идущих треда, выполняется
физически одновременно.
Ядро (Kernel) — параллельная часть алгоритма, выполняется на гриде.
Московский авиационный институт
(национальный исследовательский университет)
5
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования

6. Схематическое изображение графического адаптера

Московский авиационный институт
(национальный исследовательский университет)
6
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования

7. DSP

Цифровой сигнальный процессор (англ. Digital signal
processor, DSP; сигнальный микропроцессор, СМП; процессор
цифровых сигналов, ПЦС) — специализированный
микропроцессор, предназначенный для цифровой обработки
сигналов (обычно в реальном масштабе времени).
ЦСП строятся на основе Гарвардской архитектуры
Стандартные ЦСП
Московский авиационный институт
(национальный исследовательский университет)
7
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования

8.

Московский авиационный институт
(национальный исследовательский университет)
8
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования

9. Схематическое изображение устройства графического адаптера

Московский авиационный институт
(национальный исследовательский университет)
9
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования

10. Схематические особенности видеочипа

Московский авиационный институт
(национальный исследовательский университет)
10
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования

11. Схематическое расположение блоков GPU

Московский авиационный институт
(национальный исследовательский университет)
11
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования

12. Графический адаптер на «аппаратном» уровне


TPC (Texture process cluster)
ROP — Raster Operations Pipeline
SP (Streaming Processor)
SM (Streaming Multiprocessor)
SFU (Super Function Unit)
WS — Warp Scheduler
Московский авиационный институт
(национальный исследовательский университет)
12
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования

13. Классификация вычислительных систем по Флинну

Московский авиационный институт
(национальный исследовательский университет)
13
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования

14. Классы систем

CPU (одноядерный) — SISD (одновременно выполняется только
одна инструкция над одним набором операндов);
CPU (многоядерный) — MIMD (Одновременно несколько ядер
могут работать совершенно независимо, каждое как SISD);
GPU (NVIDIA ComputeCapability версии < 2.0) — SIMD
(одновременно на графическом адаптере может выполняться
только один поток вычислений, который работает с большим
набором данных);
GPU (NVIDIA ComputeCapability версии ≥ 2.0) — MIMD
(одновременно на графическом адаптере может выполняться
несколько потоков вычислений, каждый из которых работает с
большим набором данных).
Таким образом видно, что графические процессоры изначально
предназначены для параллельного решения одной массивнопараллельной задачи.
Московский авиационный институт
(национальный исследовательский университет)
14
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования

15. Классификация систем

• CPU – SISD
– Multithreading: позволяет запускать множество
потоков – параллелизм на уровне задач (MIMD)
или данных (SIMD)
– SSE: набор 128 битных регистров ЦПУ
• можно запаковать 4 32битных скаляра и проводить над
ними операции одновременно (SIMD)
• GPU – SIMD*
Звездочка стоит для того, чтобы вы обратили внимание.
На следующих лекциях вы увидите, что GPU не совсем SIMD архитектура а скорее
SIMT (simultaneous multithreading):
* разные блоки могут выполнять разный код (без потери производительности)
* внутри одного блока можно выполнять разный код (с потерей
производиетльности)
Московский авиационный институт
(национальный исследовательский университет)
15
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования

16. SIMT (Single instruction, multiple threads)

Параллельно на каждом SM
выполняется большое число отдельных
нитей (threads)
Нити подряд разбиваются на warp (по
32 нити) и SM управляет выполнением
warp
Нити в пределах одного warp
выполняются физически параллельно
Большое число warp покрывает
латентность
Московский авиационный институт
(национальный исследовательский университет)
16
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования

17. Схематическое изображение устройства TPC и SM

Московский авиационный институт
(национальный исследовательский университет)
17
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования

18. Symmetric Multiprocessor Architecture (SMP)

Каждый процессор
имеет свои L1 и L2 кэши
подсоединен к общей шине
отслеживает доступ других
процессоров к памяти для
обеспечения единого образа памяти
(например, один процессор хочет
изменить данные, кэшированные
другим процессором)
Московский авиационный институт
(национальный исследовательский университет)
18
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования

19. Symmetric Multiprocessor Architecture (SMP)

Bus
Cache Control
Cache Control
Cache Control
L2 cache
L2 cache
L2 cache
L1-I
L1-D
L1-I
P0
Московский авиационный институт
(национальный исследовательский университет)
L1-D
P1
19
L1-I
L1-D
P2
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования

20. Программная модель CUDA

Параллельная часть кода выполняется
как большое количество нитей (threads)
Нити группируются в блоки (blocks)
фиксированного размера
Блоки объединяются в сеть блоков (grid)
Ядро выполняется на сетке из блоков
Каждая нить и блок имеют свой
уникальный идентификатор
Московский авиационный институт
(национальный исследовательский университет)
20
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования

21. Что такое ВОРП (WARP)?

Device делает 1 grid в любой
момент
SM обрабатывает 1 или более
blocks
Каждый Block разделён на
SIMD группы, внутри которых
одни и те же
инструкциивыполняются
реально одновременно над
различными данными (warps)
warp size=16/32
Связывание в ворпы
детерминировано в порядке
нарастания threadID
threadID=TIDX.x+TIDX.y*Dx+TI
DX.z*Dx*Dy
Полуворп – первая или
вторая половина ворпа
Московский авиационный институт
(национальный исследовательский университет)
21
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования

22. Итоги лекции

В результате лекции Вы должны :
Понимать возможности
использования GPU для расчётов с
точки зрения пропускной
способности системы обмена
данными компьютера
Иметь понятие об организации
разработки приложений
Достаточные знания для начала
самостоятельной работы
Московский авиационный институт
(национальный исследовательский университет)
22
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования

23.

Московский авиационный институт
(национальный исследовательский университет)
23
Факультет прикладной математики и физики
Кафедра Вычислительной математики и
программирования
English     Русский Правила