Факультет прикладной математики и физики Кафедра вычислительной математики и программирования МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ (национальный исследовательский.

Презентация:



Advertisements
Похожие презентации
Лекция 1. Архитектура и программирование массивно- параллельных вычислительных систем Summer of coding. CUDA course. Борисов Александр
Advertisements

МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ (национальный исследовательский университет) (национальный исследовательский университет) Факультет прикладной математики.
Часть I: Введение в CUDA Александр Межов Ассистент кафедры Информатики 30 сентября 2011 Кафедра Информатики.
Архитектура ЭВМ (лекция 7) проф. Петрова И.Ю. Курс Информатики.
Вычислительная система (ВС) - это взаимосвязанная совокупность аппаратных средств вычислительной техники и программного обеспечения, предназначенная для.
Массивно-параллельные вычислительные системы на основе архитектуры CUDA.
Лекторы: Боресков А.В. (ВМиК МГУ) Харламов А. (NVidia) Архитектура и программирование массивно- параллельных вычислительных систем.
Сравнение возможностей инструментария разработки программного обеспечения графических процессоров.
Параллельное программирование с использованием технологии OpenMP Аксёнов Сергей Владимирович к.т.н., доцент каф.ОСУ ТПУ Томский политехнический университет.
Лекторы: Боресков А.В. (ВМиК МГУ) Харламов А. (NVidia) Архитектура и программирование массивно- параллельных вычислительных систем.
МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ (национальный исследовательский университет) (национальный исследовательский университет) Факультет прикладной математики.
Архитектуры высокопроизводительной системы является достаточно широким, поскольку под архитектурой можно понимать и способ параллельной обработки данных,
Таксономия (Классификация) Флинна Дораж Е.М. ИСп-32.
Микропроцессоры и микроконтроллеры Управление простыми электро-механическими устройствами и датчиками (MCS51, PIC,AVR) –Минимальные размеры памяти –Примитивная.
Общая характеристика многопроцессорных вычислительных систем.
Лихогруд Николай Часть первая.
Архитетура компьютерных систем. Архитектура системы команд как интерфейс между программным и аппаратным обеспечением Архитектура системы команд.
Многопроцессорные архитектуры (Множество потоков команд один поток данных.)
Архитектура микропроцессоров И ее эволюция. Процессор и память: Команды и данные.
Лекторы: Боресков А.В. (ВМиК МГУ) Харламов А. (NVIDIA) Архитектура и программирование массивно- параллельных вычислительных систем.
Транксрипт:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 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 Полуворп – первая или вторая половина ворпа

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

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