CUDA
Вычисления общего назначения на GPU
Титаренко К. К.
Что такое CUDA?
- Набор
инструментальных средств, позволяющий использовать видеокарты NVIDIA для
организации вычислений общего назначения (GPGPU)
- Требует
наличия CUDA-совместимого устройства (серия 8 или выше) и установленных
драйверов к нему
Зачем использовать CUDA?
Зачем использовать CUDA?
- Intel Core i7 965 при цене около 1000$ достигает пиковой производительности в приблизительно 70 GFLOPS (по результатам тестов)
- NVIDIA GTX260 при цене около 250$ достигает пиковой производительности в примерно 900 GFLOPS
Зачем использовать CUDA?
- Простота и высокая скорость обучения для С-программистов
- Богатый набор инструментов
- Свободный доступ
- Кроссплатформенность (MS Windows, Linux, Mac OS)
В чем секрет
производительности?
- Потоковая обработка данных
- Оптимизированный набор математических функций
- Многоядерность (216 ядер для GTX260)
Потоковая обработка
данных
- Принцип SIMT (single instruction – multiple
thread)
- Редкое переключение контекста
- Отсутствие надобности в кэшировании
Как это работает?
- Хост передает данные устройству
- Хост запускает ядро – набор инструкций,
исполняемый устройством
- Устройство выполняет ядро
- Хост получает данные из устройства
Подробнее о ядре
- Ядро – функция, исполняемая устройством над каждым элементом массива данных в несколько потоков одновременно
- Поток, исполняющий
ядро имеет набор идентификаторов
- Рекурсия не поддерживается
Архитектура CUDA
В чем основа
успешной реализации?
- Высокопараллельность метода
- Однотипность
действий, выполняемых каждым потоком
- Оптимальный
доступ к памяти
- Интенсивные вычисления
Где это
используется?
Демонстрация
Где это
используется?
- …
- Декодирование,
обработка, кодирование изображений, звука, видео
- Статистика,
финансы
- Моделирование в самых разных научных областях (например, ИИ – нейронные сети)
- Создание цифрового контента
- …
А как насчет
конкретных названий?
- …
- Adobe CS4: Premiere Pro, After Effects, Photoshop
- MotionDSP’s vReveal
- MATLAB (plug-ins)
- Mathematica (plug-ins)
- …
С чего начать?
http://www.nvidia.com/object/cuda_home.html