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

Содержание

Слайд 2

Введение

Схематическое изображение графического адаптера
Классификация вычислительных систем по Флинну
Схематическое устройство

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

Слайд 3

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

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

Слайд 4

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

Обмен данными – важнейшая составляющая компьютера
Примеры: многопроцессорные системы, FPGA

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

Слайд 5

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

Введем основные термины и отношения между ними [CUDA C

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

Слайд 6

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

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

Слайд 7

DSP

Цифровой сигнальный процессор (англ. Digital signal processor, DSP; сигнальный микропроцессор, СМП; процессор цифровых

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

ЦСП строятся на основе Гарвардской архитектуры

Стандартные ЦСП

Слайд 9

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

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

Слайд 10

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

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

Слайд 11

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

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

Слайд 12

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

TPC (Texture process cluster)
ROP — Raster Operations Pipeline
SP

Графический адаптер на «аппаратном» уровне TPC (Texture process cluster) ROP — Raster
(Streaming Processor)
SM (Streaming Multiprocessor)
SFU (Super Function Unit)
WS — Warp Scheduler

Слайд 13

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

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

Слайд 14

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

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

Слайд 15

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

CPU – SISD
Multithreading: позволяет запускать множество потоков – параллелизм на уровне

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

Слайд 16

SIMT (Single instruction, multiple threads)

Параллельно на каждом SM выполняется большое число отдельных

SIMT (Single instruction, multiple threads) Параллельно на каждом SM выполняется большое число
нитей (threads)
Нити подряд разбиваются на warp (по 32 нити) и SM управляет выполнением warp
Нити в пределах одного warp выполняются физически параллельно
Большое число warp покрывает латентность

Слайд 17

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

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

Слайд 18

Symmetric Multiprocessor Architecture (SMP)

Каждый процессор
имеет свои L1 и L2 кэши
подсоединен к общей

Symmetric Multiprocessor Architecture (SMP) Каждый процессор имеет свои L1 и L2 кэши
шине
отслеживает доступ других процессоров к памяти для обеспечения единого образа памяти (например, один процессор хочет изменить данные, кэшированные другим процессором)

Слайд 19

Symmetric Multiprocessor Architecture (SMP)

Symmetric Multiprocessor Architecture (SMP)

Слайд 20

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

Параллельная часть кода выполняется как большое количество нитей (threads)
Нити группируются

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

Слайд 21

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

Device делает 1 grid в любой момент
SM обрабатывает 1

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

Слайд 22

Итоги лекции

В результате лекции Вы должны :
Понимать возможности использования GPU для расчётов

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