1. Новые тенденции
использования GPGPU
Арсаев Марат
Video Group
CS MSU Graphics & Media Lab
19.05.2010
2. Only for
Maxus
Содержание
Текущее положение GPGPU
Сравнение GPU API
Средства разработки
Обработка видео на GPU
Будущее GPGPU
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
2
3. Only for
Maxus
Текущее положение GPGPU
GPGPU – техника программирования на
графическом процессоре задач общего
назначения
3
TFlops
2,5
2
1,5 ATI
1 NVIDIA
0,5
0
2006 2007 2008 2009
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
3
4. Only for
Maxus
Особенности современных GPU
Наличие множества архитектур
Наличие множества API для
программирования
Сложно сразу перейти на
программирование на GPU
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
4
5. Only for
Maxus
Развитие GPGPU
Производители продвигают GPU в массы:
Разработка C-подобных языков
Разработка библиотек на GPU
Создание отладчиковпрофилировщиков
Создание специализированных сред
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
5
6. Only for
Maxus
Содержание
Текущее положение GPGPU
Сравнение GPU API
OpenGL
CUDA
OpenCL
Средства разработки
Обработка видео на GPU
Будущее GPGPU
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
6
7. Only for
Maxus
OpenGL
Язык – OpenGL Shading Language
Некоторая запутанность использования
Можно использовать графические
возможности GPU
Поддерживается устаревшими моделями
Достаточен для небольших проектов
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
7
8. Only for
Maxus
CUDA
Язык – расширение над С
Более гибкая работа с памятью:
Shared memory
Произвольный доступ к памяти
Привязка к NVIDIA
При хорошем понимании архитектуры
можно получить значительный прирост
производительности
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
8
9. Only for
Maxus
OpenCL
Расширение языка С, похож на CUDA
Код может выполнятся на любом OpenCL-
поддерживающем устройстве – главное
преимущество и недостаток OpenCL
Сложности с расширениями
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
9
10. Only for
Maxus
OpenCL
У NVIDIA – обертка на CUDA
У АМD – разработана с нуля (Stream SDK)
Приближение производительности к CUDA
Скорая возможность полной унификации AMD
и NVIDIA
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
10
11. Only for
Maxus
Содержание
Текущее положение GPGPU
Сравнение GPU API
Средства разработки
Профилировщики и отладчики
IDE
Библиотеки
Обработка видео на GPU
Будущее GPGPU
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
11
12. Only for
Maxus AMD GPU Performance
Studio
Server
Система клиент-сервер
Мощное средство оценки
производительности Client
программы на DirectX 10 и
DirectX 10.1
Frame
Только для карт ATI Analyzer
начиная с серии HD2000
Frame Debugger
Shader Debugger
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
12
13. Only for
Maxus AMD GPU Performance
Studio
Быстрая или углубленная
оценка производительности
приложения
Возможность отладки HLSL
и ассемблера
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
13
14. Only for
Maxus
Intel Graphics Performance
Analyzer
Отладчик и профилировщик DirectX 9 и
DirectX 10 приложений для графических
чипов Intel
Важен для разработки под мобильные
решения Intel
Структура схожа с AMD GPU Performance
Studio
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
14
15. Only for
Maxus
Intel Graphics Performance
Analyzer
Два варианта работы – онлайн мониторинг
и покадровый анализ
Удобный режим
внесение
изменений –
просмотр
результата
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
15
16. Only for
Maxus
gDEBugger
Отладчик для OpenGL (GLSL до 1.4)
Ныне хорошо поддерживается и развивается
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
16
17. Only for
Maxus
Cudaprof
Профилировщик ядер CUDA
Отображает основные и самые нужные
показатели
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
17
18. Only for
Maxus
NVIDIA Nexus
Интегрированный в Visual Studio
профилировщик и отладчик
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
18
19. Only for
Maxus
GPU библиотеки
На данный существует множество
вспомогательных библиотек:
Постоянно улучшающиеся NVPP (IPP), CUBLAS,
CULAtools
ACML-GPU (для 64битных систем)
Сторонние библиотеки
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
19
20. Only for
Maxus
Содержание
Текущее положение GPGPU
Сравнение GPU API
Средства разработки
Обработка видео на GPU
Будущее GPGPU
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
20
21. Only for
Maxus
Обработка видео на GPU
Сравним производительность похожего кода
на CUDA, OpenCL, OpenGL
Взят box filter из CUDA SDK и OpenCL SDK,
измененные под обработку видео
Написана программа на OpenGL,
реализующая несепарабельный box filter
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
21
22. Only for
Maxus
Обработка видео на GPU
Платформа: NVIDIA 9400М, Intel Atom 1.66
GHz
CUDA OpenCL OpenGL
320x240 104fps 89fps 90fps
640x480 63fps 43fps 62fps
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
22
23. Only for
Maxus
Содержание
Текущее положение GPGPU
Сравнение GPU API
Средства разработки
Обработка видео на GPU
Будущее GPGPU:
NVIDIA Fermi
Intel Larrabee
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
23
24. Only for
Maxus
NVIDIA Fermi
Во многом новая архитектура:
Программируемый кеш
Увеличенная разделяемая память
Параллельное вычисление ядер в одном SM:
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
24
25. Only for
Maxus
NVIDIA Fermi
Встроенная поддержка:
CUDA 2.2
C++
OpenCL 1.0
DirectX 11 и DirectCompute
OpenGL 3.2
и др.
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
25
26. Only for
Maxus
NVIDIA Fermi
По многим характеристикам превосходит
Radeon Cypress XT (5870)
GT200 Cypress XT Fermi
Кол-во транзисторов 1.4 млрд 2.154 млрд 3 млрд
Потоковых 240 1600 512
процессоров
Шина памяти 512 бит 256 бит 384 бит
Кеш L1 16 КБ 8 КБ 48 КБ
Кеш L2 - 512 КБ 768 КБ
Разделяемой памяти 16 КБ 64 КБ до 48 КБ
Вычислений с плавающей 240 MAD 1600 MAD 512 FMA
точкой за такт
Вычислений двойной 30 FMA 640 FMA 256 FMA
точности за такт
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
26
27. Only for
Maxus
NVIDIA Fermi
Показ на GPU Technology Conference в конце
сентября вызвал множество споров
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
27
28. Only for
Maxus
NVIDIA Fermi
У NVIDIA есть достойный ответ Intel и ATI
Более гибкая, быстрая и надежная
архитектура
Удобное программирование вместе с
NVIDIA Nexus
Дата выхода – март 2010
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
28
29. Only for
Maxus
Intel Larrabee
Larrabee – GPU на ядрах х86
Встроенная поддержка C/C++
Код выполняется на CPU и GPU
одновременно
Шанс Intel выйти на рынок дискретных
видеокарт
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
29
30. Only for
Maxus
Intel Larrabee
Первый показ
осенью 2009
Все
находится в
разработке
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
30
31. Only for
Maxus
Intel Larrabee
Отсутствие окончательных программных и
аппаратных спецификаций
Отсутствие конкретных дат выхода
Большая заинтересованность со стороны
сообщества
Разработка Larrabee Prototype Library
Будем ждать выхода…
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
31
32. Only for
Maxus
Выводы
Производители стараются максимально
продвигать и поддерживать GPGPU
Все большее количество задач может быть
выполнено на современных GPU
Проблемы обработки изображений и видео
очень хорошо ложатся на GPU
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
32
33. Only for
Maxus
Список литературы
1. http://www.fudzilla.com/content/view/15954/1/ NVIDIA Fermi Launch
2. http://www.semiaccurate.com/2009/10/01/nvidia-fakes-fermi-boards-gtc/ NVIDIA Fermi Fake at GTC
3. http://www.bit-tech.net/hardware/graphics/2009/09/30/ati-radeon-hd-5870-architecture-analysis/8
HD 5870 Architecture
4. http://www.nvidia.com/object/fermi_architecture.html NVIDIA Fermi Architecture
5. http://www.nvidia.com/nexus NVIDIA Nexus
6. http://developer.amd.com/gpu/acmlgpu/pages/default.aspx AMD ACML Library
7. http://www.intel.com/cd/corporate/pressroom/emea/rus/archive/2009/419637.htm Larrabee press
release
8. http://en.wikipedia.org/wiki/Larrabee_(GPU) Intel Larrabee GPU
9. http://www.ixbt.com/news/all/index.shtml?12/46/03 Fermi architecture details
10. http://developer.nvidia.com/object/get-opencl.html NVIDIA OpenCL
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
33
34. Only for
Maxus Лаборатория компьютерной
графики и мультимедиа
Видеогруппа это:
Выпускники в аспирантурах Англии,
Франции, Швейцарии (в России в МГУ и
ИПМ им. Келдыша)
Выпускниками защищено 5 диссертаций
Наиболее популярные в мире сравнения
видеокодеков
Более 3 миллионов скачанных фильтров
обработки видео
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
34