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

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


  • 238 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

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


CUDA из Python

  • Copperhead

    • data-parallelism для Python

  • Theano

    • mathematical expressions evaluator

  • Computer vision

    • Python binding toOpenVIDIA

  • PyCUDA


CUDA из Python

  • Copperhead

    • data-parallelism для Python

  • Theano

    • mathematical expressions evaluator

  • Computer vision

    • Python binding toOpenVIDIA

  • PyCUDA


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

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

    • C/C++/Fortran

    • Библиотеки

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

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

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


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

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

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

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

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


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

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


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

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


Python

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

    • Зрелый

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

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

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


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


GPU

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

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

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

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

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


GPU

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

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

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

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

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

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

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


GPU

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

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

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

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

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

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

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

  • Python + CUDA = PyCUDA


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

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


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


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


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

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

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

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

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

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

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


Поддержка CUDA

  • Полная

  • Например:

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

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

    • Streams и events

    • GL


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

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

    • Linux

    • Windows

    • OS X


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


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


Авточистка

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

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

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

    • obj.free()


gpuarray

  • pycuda.gpuarray

  • numpy.ndarray

    • gpuarray.to_gpu(numpy_array)

    • numpy_array = gpuarray.get()

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

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

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


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

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


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

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


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

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

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

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

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

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

  • [email protected]

Вопросы


  • Login