библиотеки с поддержкой Gpu
-
Upload
anatoliy-sviridenkov -
Category
Technology
-
view
1.080 -
download
3
Transcript of библиотеки с поддержкой Gpu
![Page 1: библиотеки с поддержкой Gpu](https://reader033.fdocument.pub/reader033/viewer/2022052316/558e1b501a28abc45b8b4607/html5/thumbnails/1.jpg)
Обзор библиотек с поддержкой CUDA
Анатолий Свириденков(сodedgers.com)
Блог: http://bit.ly/cuda_blog
![Page 2: библиотеки с поддержкой Gpu](https://reader033.fdocument.pub/reader033/viewer/2022052316/558e1b501a28abc45b8b4607/html5/thumbnails/2.jpg)
Проблематика
Где нужна вычислительная мощность:
- Ускорение вычислений
- Переход в реальное время
- Разгрузка CPU
- Улучшение качества
2
![Page 3: библиотеки с поддержкой Gpu](https://reader033.fdocument.pub/reader033/viewer/2022052316/558e1b501a28abc45b8b4607/html5/thumbnails/3.jpg)
Бибилиотеки и алгоритмы
Применение библиотек с GPU:
- Обработка видео и изображений
- Вычисления
- Прочие причины
3
http://www.nvidia.ru/object/cuda_app_tesla_ru.html
![Page 4: библиотеки с поддержкой Gpu](https://reader033.fdocument.pub/reader033/viewer/2022052316/558e1b501a28abc45b8b4607/html5/thumbnails/4.jpg)
Обработка видео
OpenCV 2.2 — обработка изображения и компьютерное зрение
NPP — nVidia performance primitive
4
![Page 5: библиотеки с поддержкой Gpu](https://reader033.fdocument.pub/reader033/viewer/2022052316/558e1b501a28abc45b8b4607/html5/thumbnails/5.jpg)
OpenCV-GPU 5
https://code.ros.org/svn/opencv/trunk/opencv/doc/opencv.pdf
![Page 6: библиотеки с поддержкой Gpu](https://reader033.fdocument.pub/reader033/viewer/2022052316/558e1b501a28abc45b8b4607/html5/thumbnails/6.jpg)
NVIDIA Performance Primitives
Ускорение относительно IPP - 32x
6
http://developer.nvidia.com/npp
http://www.nvidia.com/content/GTC/documents/1028_GTC09.pdf
![Page 7: библиотеки с поддержкой Gpu](https://reader033.fdocument.pub/reader033/viewer/2022052316/558e1b501a28abc45b8b4607/html5/thumbnails/7.jpg)
Математика
CUBLAS — математические вычисления
CUFFT — быстрые преобразования фурье
CUSPARSE — библиотека линейной алгебры
CURAND — высококачественные псевдослучайные числа
7
![Page 8: библиотеки с поддержкой Gpu](https://reader033.fdocument.pub/reader033/viewer/2022052316/558e1b501a28abc45b8b4607/html5/thumbnails/8.jpg)
CUBLAS
http://developer.download.nvidia.com/compute/cuda/2_0/docs/CUBLAS_Library_2.0.pdf
8
![Page 9: библиотеки с поддержкой Gpu](https://reader033.fdocument.pub/reader033/viewer/2022052316/558e1b501a28abc45b8b4607/html5/thumbnails/9.jpg)
CUFFT - быстрые преобразования Фурье9
Размерность Исходные данные Результат
1DВещественные числа
Комплексные числа
Комплексные числа
2DВещественные числа
Комплексные числа
3DВещественные числа
Комплексные числа
http://developer.download.nvidia.com/compute/cuda/3_1/toolkit/docs/CUFFT_Library_3.1.pdf
![Page 10: библиотеки с поддержкой Gpu](https://reader033.fdocument.pub/reader033/viewer/2022052316/558e1b501a28abc45b8b4607/html5/thumbnails/10.jpg)
CUSPARSE - операции над разрежеными матрицами и векторами
Ускорение по сравнению с MKL от 2 до 7 раз
10
http://developer.download.nvidia.com/compute/cuda/3_2/toolkit/docs/CUSPARSE_Library.pdf
![Page 11: библиотеки с поддержкой Gpu](https://reader033.fdocument.pub/reader033/viewer/2022052316/558e1b501a28abc45b8b4607/html5/thumbnails/11.jpg)
CURAND
Генерация псевдослучайных последовательностей
11
http://developer.download.nvidia.com/compute/cuda/3_2/toolkit/docs/CURAND_Library.pdf
![Page 12: библиотеки с поддержкой Gpu](https://reader033.fdocument.pub/reader033/viewer/2022052316/558e1b501a28abc45b8b4607/html5/thumbnails/12.jpg)
Прочие библиотеки
CUDPP — примитивы параллельной обработке данных
Thrust — STL для CUDA
CUDA.NET — поддержка CUDA в C#
12
![Page 13: библиотеки с поддержкой Gpu](https://reader033.fdocument.pub/reader033/viewer/2022052316/558e1b501a28abc45b8b4607/html5/thumbnails/13.jpg)
CUDPP
Отталкивается от данных:
- Сортировка, поиск
- Умножение разреженых матриц и векторов
- Генерация случайных чисел
13
http://groups.google.com/group/cudpp?pli=1
![Page 14: библиотеки с поддержкой Gpu](https://reader033.fdocument.pub/reader033/viewer/2022052316/558e1b501a28abc45b8b4607/html5/thumbnails/14.jpg)
Thrust
STL style:
- Сортировка, поиск
- Генерация случайных чисел
- Поддержка коллекций: tuple, vector и list
- Поддержка алгоритмов: scan, reduce, sum, count_if и т.д.
14
http://code.google.com/p/thrust/
![Page 15: библиотеки с поддержкой Gpu](https://reader033.fdocument.pub/reader033/viewer/2022052316/558e1b501a28abc45b8b4607/html5/thumbnails/15.jpg)
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