Cuda python
This presentation is the property of its rightful owner.
Sponsored Links
1 / 25

Использование возможностей CUDA на языке Python PowerPoint PPT Presentation


  • 162 Views
  • Uploaded on
  • Presentation posted in: General

Использование возможностей CUDA на языке Python. Александр Мыльцев (Parallel Compute). CUDA из Python. Copperhead data-parallelism для Python Theano mathematical expressions evaluator Computer vision Python binding to OpenVIDIA PyCUDA. CUDA из Python. Copperhead

Download Presentation

Использование возможностей CUDA на языке Python

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Cuda python

Использование возможностей CUDA на языке Python

Александр Мыльцев(Parallel Compute)


Cuda python1

CUDA из Python

  • Copperhead

    • data-parallelism для Python

  • Theano

    • mathematical expressions evaluator

  • Computer vision

    • Python binding toOpenVIDIA

  • PyCUDA


Cuda python2

CUDA из Python

  • Copperhead

    • data-parallelism для Python

  • Theano

    • mathematical expressions evaluator

  • Computer vision

    • Python binding toOpenVIDIA

  • PyCUDA


Cuda python

Высокопроизводительный код

  • «Традиционный» подход:

    • C/C++/Fortran

    • Библиотеки

  • «Альтернативный» подход:

    • Скрипты для управления

    • GPU для ускорения


Cuda python

Скриптовый язык

  • Интерактивный

  • Автоматическое управление памятью

  • Динамически типизированный

  • Хорошо подходит для «склейки» низкоуровневых частей


Cuda python

Интерпретация без компиляции

  • Создание программы


Cuda python

Интерпретация без компиляции

  • Создание программы


Python

Python

  • Пример скриптового языка

    • Зрелый

    • Большое сообщество

    • Написан на C (портируемость)

    • Мультипарадигмальный


Cuda python

Как это выглядит?


Cuda python

GPU

  • GPU не программируется скриптами

    • Параллельность

    • Аппаратно-зависим

    • Делается для быстродействия

  • Дополнить друг друга


Cuda python

GPU

  • GPU не программируется скриптами

    • Параллельность

    • Аппаратно-зависим

    • Делается для быстродействия

  • Дополнить друг друга

  • Скриптовый язык на CPU

    • Для управления задачами


Cuda python

GPU

  • GPU не программируется скриптами

    • Параллельность

    • Аппаратно-зависим

    • Делается для быстродействия

  • Дополнить друг друга

  • Скриптовый язык на CPU

    • Для управления задачами

  • Python + CUDA = PyCUDA


Cuda python

Простой пример

  • examples/demo.py в пакете PyCUDA


Cuda python

Простой пример


Cuda python

Простой пример. Проще


Pycuda

Особенности PyCUDA

  • Предоставляет полный доступ

  • Автоматическое управление памятью

  • Предоставляет абстракции

  • Можно работать в интерактивно режиме

  • Автоматическая проверка ошибок

  • Интеграция с numpy


Cuda python

Поддержка CUDA

  • Полная

  • Например:

    • Массивы и текстуры

    • Передача данных

    • Streams и events

    • GL


Cuda python

Операционные системы

  • Все, которые поддерживает CUDA

    • Linux

    • Windows

    • OS X


Cuda python

Документация


Cuda python

Процесс разработки


Cuda python

Авточистка

  • Достижимые объекты (память, потоки, …) никогда не удаляются

  • Недостижимые объекты удалятся когда-нибудь в будущем

  • Можно удалить вручную

    • obj.free()


Gpuarray

gpuarray

  • pycuda.gpuarray

  • numpy.ndarray

    • gpuarray.to_gpu(numpy_array)

    • numpy_array = gpuarray.get()

  • +, -, *, /, fill, sin, exp, rand, norm, …

  • Разные типы (int32 + float32 = float64)

  • “print gpuarray” для отладки


Cuda python

Поэлементные выражения

  • Экономия циклов


Cuda python

Редукция. Проще

  • Пример: вычисление скалярного произведения


Cuda python

  • Брошюра «Вычисления на NVIDIA Tesla»

    • На последней странице контакты

      Антона Джораева

  • http://mathema.tician.de/software/pycuda

    • Основана на лекцииАндреаса Клёкнера (Andreas Klockner)

    • http://mathema.tician.de/news.tiker.net/files/main.pdf

  • [email protected]

Вопросы


  • Login