SlideShare a Scribd company logo
Обзор библиотек с поддержкой CUDA
        Анатолий Свириденков
            (сodedgers.com)
        Блог: http://bit.ly/cuda_blog
2
                       Проблематика


Где нужна вычислительная мощность:

- Ускорение вычислений

- Переход в реальное время

- Разгрузка CPU

- Улучшение качества
3
               Бибилиотеки и алгоритмы


Применение библиотек с GPU:

- Обработка видео и изображений

- Вычисления

- Прочие причины




     http://www.nvidia.ru/object/cuda_app_tesla_ru.html
4
                    Обработка видео

OpenCV 2.2 — обработка изображения и компьютерное
             зрение

NPP — nVidia performance primitive
5
                       OpenCV-GPU




https://code.ros.org/svn/opencv/trunk/opencv/doc/opencv.pdf
6
               NVIDIA Performance Primitives




Ускорение относительно IPP - 32x
http://developer.nvidia.com/npp

http://www.nvidia.com/content/GTC/documents/1028_GTC09.pdf
7
                    Математика

CUBLAS — математические вычисления

CUFFT — быстрые преобразования фурье

CUSPARSE — библиотека линейной алгебры

CURAND — высококачественные псевдослучайные числа
8
                                  CUBLAS




http://developer.download.nvidia.com/compute/cuda/2_0/docs/CUBLAS_Library_2.0.pdf
9
              CUFFT - быстрые преобразования Фурье


         Размерность                Исходные данные                   Результат


                                  Вещественные числа
              1D
                                   Комплексные числа


                                  Вещественные числа
              2D                                                 Комплексные числа
                                   Комплексные числа


                                  Вещественные числа
              3D
                                   Комплексные числа




http://developer.download.nvidia.com/compute/cuda/3_1/toolkit/docs/CUFFT_Library_3.1.pdf
10
     CUSPARSE - операции над разрежеными матрицами и
                        векторами




Ускорение по сравнению с MKL от 2 до 7 раз
http://developer.download.nvidia.com/compute/cuda/3_2/toolkit/docs/CUSPARSE_Library.pdf
11
                                    CURAND

Генерация псевдослучайных последовательностей




http://developer.download.nvidia.com/compute/cuda/3_2/toolkit/docs/CURAND_Library.pdf
12
                 Прочие библиотеки

CUDPP — примитивы параллельной обработке данных

Thrust — STL для CUDA

CUDA.NET — поддержка CUDA в C#
13
                           CUDPP

Отталкивается от данных:

- Сортировка, поиск

- Умножение разреженых матриц и векторов

- Генерация случайных чисел




         http://groups.google.com/group/cudpp?pli=1
14
                            Thrust

STL style:

- Сортировка, поиск

- Генерация случайных чисел

- Поддержка коллекций: tuple, vector и list

- Поддержка алгоритмов: scan, reduce, sum, count_if и т.д.




               http://code.google.com/p/thrust/
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

More Related Content

What's hot

Базы данных. Cassandra
Базы данных. CassandraБазы данных. Cassandra
Базы данных. Cassandra
Vadim Tsesko
 
Базы данных. Haystack
Базы данных. HaystackБазы данных. Haystack
Базы данных. Haystack
Vadim Tsesko
 
CUDA-Aware MPI
CUDA-Aware MPICUDA-Aware MPI
CUDA-Aware MPI
Eugene Kolesnikov
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
a15464321646213
 
"YT — новая платформа распределённых вычислений". Максим Бабенко, Яндекс.
"YT — новая платформа распределённых вычислений". Максим Бабенко, Яндекс. "YT — новая платформа распределённых вычислений". Максим Бабенко, Яндекс.
"YT — новая платформа распределённых вычислений". Максим Бабенко, Яндекс.
Yandex
 
Использование очередей асинхронных сообщений с PostgreSQL (Илья Космодемьянский)
Использование очередей асинхронных сообщений с PostgreSQL (Илья Космодемьянский)Использование очередей асинхронных сообщений с PostgreSQL (Илья Космодемьянский)
Использование очередей асинхронных сообщений с PostgreSQL (Илья Космодемьянский)Ontico
 
Базы данных. Hash & Cache
Базы данных. Hash & CacheБазы данных. Hash & Cache
Базы данных. Hash & Cache
Vadim Tsesko
 
Базы данных. Distributed Commit
Базы данных. Distributed CommitБазы данных. Distributed Commit
Базы данных. Distributed Commit
Vadim Tsesko
 
Software Transactional Memory
Software Transactional MemorySoftware Transactional Memory
Software Transactional MemoryVadim Tsesko
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Ontico
 
Кластер БГУИР: расширенные возможности
Кластер БГУИР: расширенные возможностиКластер БГУИР: расширенные возможности
Кластер БГУИР: расширенные возможности
Alexey Demidchuk
 
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
Ontico
 
Введение в Apache Cassandra
Введение в Apache CassandraВведение в Apache Cassandra
Введение в Apache Cassandra
Alexander Tivelkov
 
Технико-коммерческое предложение "База знаний"
Технико-коммерческое предложение "База знаний"Технико-коммерческое предложение "База знаний"
Технико-коммерческое предложение "База знаний"
RKVector
 
Cassandra
CassandraCassandra
Cassandra
Vadim Tsesko
 
Oracle exa2 biz_summit
Oracle exa2 biz_summitOracle exa2 biz_summit
Oracle exa2 biz_summitNick Turunov
 
Класс!ная Cassandra
Класс!ная CassandraКласс!ная Cassandra
Класс!ная Cassandra
odnoklassniki.ru
 
Оптимизации уровня CPU, Андрей Акиньшин (JetBrains)
Оптимизации уровня CPU,  Андрей Акиньшин (JetBrains)Оптимизации уровня CPU,  Андрей Акиньшин (JetBrains)
Оптимизации уровня CPU, Андрей Акиньшин (JetBrains)
Ontico
 

What's hot (20)

Базы данных. Cassandra
Базы данных. CassandraБазы данных. Cassandra
Базы данных. Cassandra
 
введение в Gpu
введение в Gpuвведение в Gpu
введение в Gpu
 
Базы данных. Haystack
Базы данных. HaystackБазы данных. Haystack
Базы данных. Haystack
 
CUDA-Aware MPI
CUDA-Aware MPICUDA-Aware MPI
CUDA-Aware MPI
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
 
"YT — новая платформа распределённых вычислений". Максим Бабенко, Яндекс.
"YT — новая платформа распределённых вычислений". Максим Бабенко, Яндекс. "YT — новая платформа распределённых вычислений". Максим Бабенко, Яндекс.
"YT — новая платформа распределённых вычислений". Максим Бабенко, Яндекс.
 
Использование очередей асинхронных сообщений с PostgreSQL (Илья Космодемьянский)
Использование очередей асинхронных сообщений с PostgreSQL (Илья Космодемьянский)Использование очередей асинхронных сообщений с PostgreSQL (Илья Космодемьянский)
Использование очередей асинхронных сообщений с PostgreSQL (Илья Космодемьянский)
 
Базы данных. Hash & Cache
Базы данных. Hash & CacheБазы данных. Hash & Cache
Базы данных. Hash & Cache
 
Базы данных. Distributed Commit
Базы данных. Distributed CommitБазы данных. Distributed Commit
Базы данных. Distributed Commit
 
Software Transactional Memory
Software Transactional MemorySoftware Transactional Memory
Software Transactional Memory
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
 
Кластер БГУИР: расширенные возможности
Кластер БГУИР: расширенные возможностиКластер БГУИР: расширенные возможности
Кластер БГУИР: расширенные возможности
 
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
 
Введение в Apache Cassandra
Введение в Apache CassandraВведение в Apache Cassandra
Введение в Apache Cassandra
 
Технико-коммерческое предложение "База знаний"
Технико-коммерческое предложение "База знаний"Технико-коммерческое предложение "База знаний"
Технико-коммерческое предложение "База знаний"
 
Cassandra
CassandraCassandra
Cassandra
 
Oracle exa2 biz_summit
Oracle exa2 biz_summitOracle exa2 biz_summit
Oracle exa2 biz_summit
 
Класс!ная Cassandra
Класс!ная CassandraКласс!ная Cassandra
Класс!ная Cassandra
 
Оптимизации уровня CPU, Андрей Акиньшин (JetBrains)
Оптимизации уровня CPU,  Андрей Акиньшин (JetBrains)Оптимизации уровня CPU,  Андрей Акиньшин (JetBrains)
Оптимизации уровня CPU, Андрей Акиньшин (JetBrains)
 
Efficiency vvv
Efficiency vvvEfficiency vvv
Efficiency vvv
 

Viewers also liked

1990 2000-izborni-slogani
1990 2000-izborni-slogani1990 2000-izborni-slogani
1990 2000-izborni-slogani
Tanja Tatomirovic
 
Història de La Interfície de Windows
Història de La Interfície de WindowsHistòria de La Interfície de Windows
Història de La Interfície de Windows
Carlos Soler
 
Power poin frances
Power poin francesPower poin frances
Power poin francesNuriaOrtega
 
Une en 10250-2=2000 ing
Une en 10250-2=2000 ingUne en 10250-2=2000 ing
Une en 10250-2=2000 ingmichael_jclee
 
Monitoring bso DE ARK en Stad Turnhout
Monitoring bso DE ARK en Stad TurnhoutMonitoring bso DE ARK en Stad Turnhout
Monitoring bso DE ARK en Stad Turnhout
Geert Schoofs
 
110616 ソーシャルメディア連動型イベント集客
110616 ソーシャルメディア連動型イベント集客110616 ソーシャルメディア連動型イベント集客
110616 ソーシャルメディア連動型イベント集客ikigoto
 
Causas de mortalidade de cabritos e borregos
Causas de mortalidade de  cabritos e borregosCausas de mortalidade de  cabritos e borregos
Causas de mortalidade de cabritos e borregos
gecoufba
 

Viewers also liked (7)

1990 2000-izborni-slogani
1990 2000-izborni-slogani1990 2000-izborni-slogani
1990 2000-izborni-slogani
 
Història de La Interfície de Windows
Història de La Interfície de WindowsHistòria de La Interfície de Windows
Història de La Interfície de Windows
 
Power poin frances
Power poin francesPower poin frances
Power poin frances
 
Une en 10250-2=2000 ing
Une en 10250-2=2000 ingUne en 10250-2=2000 ing
Une en 10250-2=2000 ing
 
Monitoring bso DE ARK en Stad Turnhout
Monitoring bso DE ARK en Stad TurnhoutMonitoring bso DE ARK en Stad Turnhout
Monitoring bso DE ARK en Stad Turnhout
 
110616 ソーシャルメディア連動型イベント集客
110616 ソーシャルメディア連動型イベント集客110616 ソーシャルメディア連動型イベント集客
110616 ソーシャルメディア連動型イベント集客
 
Causas de mortalidade de cabritos e borregos
Causas de mortalidade de  cabritos e borregosCausas de mortalidade de  cabritos e borregos
Causas de mortalidade de cabritos e borregos
 

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

Лекция 11: Программирование графических процессоров на NVIDIA CUDA
Лекция 11: Программирование графических процессоров на NVIDIA CUDAЛекция 11: Программирование графических процессоров на NVIDIA CUDA
Лекция 11: Программирование графических процессоров на NVIDIA CUDAMikhail Kurnosov
 
"Лавриненко Ярослав" HPC GPU CUDA
"Лавриненко Ярослав" HPC GPU CUDA"Лавриненко Ярослав" HPC GPU CUDA
"Лавриненко Ярослав" HPC GPU CUDA
Oleg Nazarevych
 
Параллельные и распределенные вычисления
Параллельные и распределенные вычисленияПараллельные и распределенные вычисления
Параллельные и распределенные вычисления
MATLAB
 
overview of development tools for computing Gpgpu
overview of development tools for computing Gpgpuoverview of development tools for computing Gpgpu
overview of development tools for computing Gpgpu
corehard_by
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, paral...
Mikhail Kurnosov
 
Gpgpu
GpgpuGpgpu
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Mikhail Kurnosov
 
Презентация бакалаврской работы Артема Лебедева
Презентация бакалаврской работы Артема ЛебедеваПрезентация бакалаврской работы Артема Лебедева
Презентация бакалаврской работы Артема ЛебедеваAlexander Petrov
 
Параллельное программирование на современных видеокартах
Параллельное программирование на современных видеокартахПараллельное программирование на современных видеокартах
Параллельное программирование на современных видеокартах
Alex Tutubalin
 
Лекция 9. Программирование GPU
Лекция 9. Программирование GPUЛекция 9. Программирование GPU
Лекция 9. Программирование GPU
Mikhail Kurnosov
 
CUDA & CAFFE
CUDA & CAFFE CUDA & CAFFE
CUDA & CAFFE
Andrew Babiy
 
Работа с Big Data
Работа с Big Data Работа с Big Data
Работа с Big Data
MATLAB
 
Лекция 12 (часть 1): Языки программирования семейства PGAS: Cray Chapel
Лекция 12 (часть 1): Языки программирования семейства PGAS: Cray ChapelЛекция 12 (часть 1): Языки программирования семейства PGAS: Cray Chapel
Лекция 12 (часть 1): Языки программирования семейства PGAS: Cray ChapelMikhail Kurnosov
 
Лекция 2 Разработка программно-аппаратного обеспечения информационных и автом...
Лекция 2 Разработка программно-аппаратного обеспечения информационных и автом...Лекция 2 Разработка программно-аппаратного обеспечения информационных и автом...
Лекция 2 Разработка программно-аппаратного обеспечения информационных и автом...
VThn18
 
Hpc 2.26.03.2013.
Hpc 2.26.03.2013.Hpc 2.26.03.2013.
Hpc 2.26.03.2013.Boris Kizko
 
GRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network InitiativeGRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network Initiative
ARCCN
 
Инструментарий Nvidia для deep learning
Инструментарий Nvidia для deep learningИнструментарий Nvidia для deep learning
Инструментарий Nvidia для deep learning
Skolkovo Robotics Center
 
OpenACC short review
OpenACC short reviewOpenACC short review
OpenACC short review
Andrei Poliakov
 
Опыт внедрения OpenStack
Опыт внедрения OpenStackОпыт внедрения OpenStack
Опыт внедрения OpenStack
Yandex
 

Similar to библиотеки с поддержкой Gpu (20)

Лекция 11: Программирование графических процессоров на NVIDIA CUDA
Лекция 11: Программирование графических процессоров на NVIDIA CUDAЛекция 11: Программирование графических процессоров на NVIDIA CUDA
Лекция 11: Программирование графических процессоров на NVIDIA CUDA
 
"Лавриненко Ярослав" HPC GPU CUDA
"Лавриненко Ярослав" HPC GPU CUDA"Лавриненко Ярослав" HPC GPU CUDA
"Лавриненко Ярослав" HPC GPU CUDA
 
Параллельные и распределенные вычисления
Параллельные и распределенные вычисленияПараллельные и распределенные вычисления
Параллельные и распределенные вычисления
 
overview of development tools for computing Gpgpu
overview of development tools for computing Gpgpuoverview of development tools for computing Gpgpu
overview of development tools for computing Gpgpu
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, paral...
 
Gpgpu
GpgpuGpgpu
Gpgpu
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
 
Презентация бакалаврской работы Артема Лебедева
Презентация бакалаврской работы Артема ЛебедеваПрезентация бакалаврской работы Артема Лебедева
Презентация бакалаврской работы Артема Лебедева
 
Параллельное программирование на современных видеокартах
Параллельное программирование на современных видеокартахПараллельное программирование на современных видеокартах
Параллельное программирование на современных видеокартах
 
Лекция 9. Программирование GPU
Лекция 9. Программирование GPUЛекция 9. Программирование GPU
Лекция 9. Программирование GPU
 
CUDA Best Practices (2-3)
CUDA Best Practices (2-3)CUDA Best Practices (2-3)
CUDA Best Practices (2-3)
 
CUDA & CAFFE
CUDA & CAFFE CUDA & CAFFE
CUDA & CAFFE
 
Работа с Big Data
Работа с Big Data Работа с Big Data
Работа с Big Data
 
Лекция 12 (часть 1): Языки программирования семейства PGAS: Cray Chapel
Лекция 12 (часть 1): Языки программирования семейства PGAS: Cray ChapelЛекция 12 (часть 1): Языки программирования семейства PGAS: Cray Chapel
Лекция 12 (часть 1): Языки программирования семейства PGAS: Cray Chapel
 
Лекция 2 Разработка программно-аппаратного обеспечения информационных и автом...
Лекция 2 Разработка программно-аппаратного обеспечения информационных и автом...Лекция 2 Разработка программно-аппаратного обеспечения информационных и автом...
Лекция 2 Разработка программно-аппаратного обеспечения информационных и автом...
 
Hpc 2.26.03.2013.
Hpc 2.26.03.2013.Hpc 2.26.03.2013.
Hpc 2.26.03.2013.
 
GRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network InitiativeGRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network Initiative
 
Инструментарий Nvidia для deep learning
Инструментарий Nvidia для deep learningИнструментарий Nvidia для deep learning
Инструментарий Nvidia для deep learning
 
OpenACC short review
OpenACC short reviewOpenACC short review
OpenACC short review
 
Опыт внедрения OpenStack
Опыт внедрения OpenStackОпыт внедрения OpenStack
Опыт внедрения OpenStack
 

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

  • 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
  • 5. 5 OpenCV-GPU https://code.ros.org/svn/opencv/trunk/opencv/doc/opencv.pdf
  • 6. 6 NVIDIA Performance Primitives Ускорение относительно IPP - 32x http://developer.nvidia.com/npp http://www.nvidia.com/content/GTC/documents/1028_GTC09.pdf
  • 7. 7 Математика CUBLAS — математические вычисления CUFFT — быстрые преобразования фурье CUSPARSE — библиотека линейной алгебры CURAND — высококачественные псевдослучайные числа
  • 8. 8 CUBLAS http://developer.download.nvidia.com/compute/cuda/2_0/docs/CUBLAS_Library_2.0.pdf
  • 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
  • 11. 11 CURAND Генерация псевдослучайных последовательностей http://developer.download.nvidia.com/compute/cuda/3_2/toolkit/docs/CURAND_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