6. GPU
Быстрая однородная обработка большого
количества элементов
Аппаратная реализация основных алгоритмов
Графический процессор изначально создавался
как многоядерная структура (сотни ядер).
7. GPU
CPU vs GPU
Гораздо больше транзисторов GPU
отведено на обработку данных,
а не на управление исполнением
(т.н. Flow control)
12. GPGPU до 2007 года
Шейдерные языки Cg, GLSL и HLSL
GLSL – OpenGL
HLSL – Microsoft DirectX
1. Широкая поддержка оборудования.
2. Отсутствие готовых библиотек.
3. Необходимо знание специализированного
языка
4. Привязка к графическим API.
13. GPGPU до 2007 года
5. Отсутствует возможность взаимодействия
между пикселями.
6. Отсутствуют операции типа scatter – есть
только gather.
14. GPGPU до 2007 года
7. Приложения часто ограничены ПСП.
Простой вычислительных мощностей!
15. NVIDIA Compute Unified Device
Architecture
ноябрь 2006 г. - первый GPU с DirectX 10,
GeForce 8800 GTX с архитектурой CUDA
• Учѐт требований IEEE к арифметическим
операциям
• Набор команд, ориентированный на
вычисления. Независимость от графических
API
• Произвольный доступ к памяти для чтения и
записи
• CUDA Toolkit и CUDA SDK
17. NVIDIA CUDA
Доступ к регистровой разделяемой памяти
для обмена данными между потоками
18. NVIDIA Compute Unified Device
Architecture
Язык программирования C с расширениями
Распространѐнность GPU
GeForce 8, 9, 100, 200, 300, 400, 500, 600, 700
19. NVIDIA Compute Unified Device Architecture
GPU – сопроцессор (device) для CPU (host)
Собственная память (память устройства, device
memory)
Параллельная обработка множества потоков
Ядро (kernel) – исполняемая над большим числом
потоков функция с параллелизмом данных
Отличия потоков GPU от CPU:
•Для полной эффективности GPU нужны тысячи
потоков
•Легковесность, низкие накладные расходы на
создание
23. Open Compute Language
Khronos Group: AMD, Intel, Motorola, Apple,
NVIDIA, IBM, ARM
2008 г. - OpenCL 1.0
1 декабря 2012 г. - OpenCL 1.2
C99 с новыми ключевыми словами
Открытый стандарт
Широкая поддержка оборудования
Прирост в WinZip 16.5 на AMD APU - 45%
25. Open Compute Language
WinZip, ArcSoft, Corel VideoStudio, GIMP,
Mathematica 8, vReveal, Blender, BattleField 3, …
PyOpenCL, WebCL (JS-интерфейс для обработки
вычислений в браузере, поддержка в Firefox и
WebKit), ScalaCL, Ruby-OpenCL
PGI OpenCL Compiler, OpenCL Studio, ZiiLABD
OpenCL SDK
http://openclnews.com/apps
26. Open Compute Language
AMD OpenCL University Kit
Набор материалов от AMD для обучения
технологии в течение семестра.
13 лекций с примерами кода и набором заданий
http://developer.amd.com/resources/heterogeneous-
computing/opencl-zone/
31. Взаимодействие NVIDIA с ВУЗами
269 университетов мира
СПбГПУ, СПбГУ, "Дубна", ОИЯИ,
МИЭТ, МГТУ им. Баумана, МАИ,
"Курчатовский институт",
МГУ им. Ломоносова, ...
декабрь 2009 - научно-образовательный центр
"Параллельные вычисления", Дубна
32. Список источников
1. Сайты HSA Foundation, NVIDIA, AMD,
Khronos Group
2. thg.ru - подробный обзор Intel Xeon Phi
3. Wikipedia
4. Статьи с habrahabr.ru
5. Сайт научно-образовательного центра
"Параллельные вычисления"
http://www.parallel-compute.ru/
6. opencl.org
7. gpgpu.org
8. Результаты НИР на 3-4 курсах. Научный
руководитель - Семьянов П. В.