библиотеки с поддержкой Gpu

Preview:

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