Upload
anatoliy-sviridenkov
View
1.080
Download
3
Embed Size (px)
Citation preview
Обзор библиотек с поддержкой CUDA
Анатолий Свириденков(сodedgers.com)
Блог: http://bit.ly/cuda_blog
Проблематика
Где нужна вычислительная мощность:
- Ускорение вычислений
- Переход в реальное время
- Разгрузка CPU
- Улучшение качества
2
Бибилиотеки и алгоритмы
Применение библиотек с GPU:
- Обработка видео и изображений
- Вычисления
- Прочие причины
3
http://www.nvidia.ru/object/cuda_app_tesla_ru.html
Обработка видео
OpenCV 2.2 — обработка изображения и компьютерное зрение
NPP — nVidia performance primitive
4
OpenCV-GPU 5
https://code.ros.org/svn/opencv/trunk/opencv/doc/opencv.pdf
NVIDIA Performance Primitives
Ускорение относительно IPP - 32x
6
http://developer.nvidia.com/npp
http://www.nvidia.com/content/GTC/documents/1028_GTC09.pdf
Математика
CUBLAS — математические вычисления
CUFFT — быстрые преобразования фурье
CUSPARSE — библиотека линейной алгебры
CURAND — высококачественные псевдослучайные числа
7
CUBLAS
http://developer.download.nvidia.com/compute/cuda/2_0/docs/CUBLAS_Library_2.0.pdf
8
CUFFT - быстрые преобразования Фурье9
Размерность Исходные данные Результат
1DВещественные числа
Комплексные числа
Комплексные числа
2DВещественные числа
Комплексные числа
3DВещественные числа
Комплексные числа
http://developer.download.nvidia.com/compute/cuda/3_1/toolkit/docs/CUFFT_Library_3.1.pdf
CUSPARSE - операции над разрежеными матрицами и векторами
Ускорение по сравнению с MKL от 2 до 7 раз
10
http://developer.download.nvidia.com/compute/cuda/3_2/toolkit/docs/CUSPARSE_Library.pdf
CURAND
Генерация псевдослучайных последовательностей
11
http://developer.download.nvidia.com/compute/cuda/3_2/toolkit/docs/CURAND_Library.pdf
Прочие библиотеки
CUDPP — примитивы параллельной обработке данных
Thrust — STL для CUDA
CUDA.NET — поддержка CUDA в C#
12
CUDPP
Отталкивается от данных:
- Сортировка, поиск
- Умножение разреженых матриц и векторов
- Генерация случайных чисел
13
http://groups.google.com/group/cudpp?pli=1
Thrust
STL style:
- Сортировка, поиск
- Генерация случайных чисел
- Поддержка коллекций: tuple, vector и list
- Поддержка алгоритмов: scan, reduce, sum, count_if и т.д.
14
http://code.google.com/p/thrust/
CUDA.NET
- Исполнение CUDA kernels в файлах *.cu
- Исполнение OpenCL ядер
- Поддержка CUFFT
- Поддержка CUBLAS
- Вызов функций OpenCV портированных на CUDA
15
http://www.hoopoe-cloud.com/files/cuda.net/2.0/CUDA.NET_2.0.pdf