1. Обзор библиотек с поддержкой CUDA
Анатолий Свириденков
(сodedgers.com)
Блог: http://bit.ly/cuda_blog
2. 2
Проблематика
Где нужна вычислительная мощность:
- Ускорение вычислений
- Переход в реальное время
- Разгрузка CPU
- Улучшение качества
3. 3
Бибилиотеки и алгоритмы
Применение библиотек с GPU:
- Обработка видео и изображений
- Вычисления
- Прочие причины
http://www.nvidia.ru/object/cuda_app_tesla_ru.html
4. 4
Обработка видео
OpenCV 2.2 — обработка изображения и компьютерное
зрение
NPP — nVidia performance primitive
9. 9
CUFFT - быстрые преобразования Фурье
Размерность Исходные данные Результат
Вещественные числа
1D
Комплексные числа
Вещественные числа
2D Комплексные числа
Комплексные числа
Вещественные числа
3D
Комплексные числа
http://developer.download.nvidia.com/compute/cuda/3_1/toolkit/docs/CUFFT_Library_3.1.pdf
10. 10
CUSPARSE - операции над разрежеными матрицами и
векторами
Ускорение по сравнению с MKL от 2 до 7 раз
http://developer.download.nvidia.com/compute/cuda/3_2/toolkit/docs/CUSPARSE_Library.pdf
12. 12
Прочие библиотеки
CUDPP — примитивы параллельной обработке данных
Thrust — STL для CUDA
CUDA.NET — поддержка CUDA в C#
13. 13
CUDPP
Отталкивается от данных:
- Сортировка, поиск
- Умножение разреженых матриц и векторов
- Генерация случайных чисел
http://groups.google.com/group/cudpp?pli=1
14. 14
Thrust
STL style:
- Сортировка, поиск
- Генерация случайных чисел
- Поддержка коллекций: tuple, vector и list
- Поддержка алгоритмов: scan, reduce, sum, count_if и т.д.
http://code.google.com/p/thrust/
15. 15
CUDA.NET
- Исполнение CUDA kernels в файлах *.cu
- Исполнение OpenCL ядер
- Поддержка CUFFT
- Поддержка CUBLAS
- Вызов функций OpenCV портированных на CUDA
http://www.hoopoe-cloud.com/files/cuda.net/2.0/CUDA.NET_2.0.pdf