Использование возможностей CUDA на языке Python Александр Мыльцев (Parallel Compute) 1.

Презентация:



Advertisements
Похожие презентации
Python как инструмент Data Mining Лекция 4.4 Инструменты Data Mining Зырянов Александр Олегович.
Advertisements

Тема 11 Медицинская помощь и лечение (схема 1). Тема 11 Медицинская помощь и лечение (схема 2)
Решение заданий В7 степени и корни по материалам открытого банка задач ЕГЭ по математике 2013 года МБОУ СОШ 5 – «Школа здоровья и развития» г. Радужный.
Вариант Презентация "Осень золотая".
Дни недели Температура (С 0 ) 1. Сколько дней температура была выше 16 0 ? 2. Какого.
ОСОБЕННОСТИ РЕАЛИЗАЦИИ ДОПОЛНИТЕЛЬНЫХ МЕРОПРИЯТИЙ ПО СНИЖЕНИЮ НАПРЯЖЕННОСТИ НА РЫНКЕ ТРУДА СУБЪЕКТОВ РОССИЙСКОЙ ФЕДЕРАЦИИ В 2011 ГОДУ РОССИЯ 2010.
Орлов Никита. Код был создан Майклом Лаби (Michael Luby) в 1998 г. Свое название он получил от Luby Transform (преобразование Лаби). Однако опубликованы.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 4 Трансформация логической модели в программный код Лекции читает кандидат технических.
Департамент экономического развития Ханты-Мансийского автономного округа - Югры 1.
Гомельская областная организация Белорусского профсоюза работников здравоохранения Курская областная организация профсоюза работников здравоохранения.
Информатика ЕГЭ Уровень-А8. Вариант 1 Укажите логическое выражение, равносильное данному: (А^B) v ((¬B ^ ¬A) v A). 1) (A^ B) v (¬B) 2) (A ^ B) v (¬A)
Тренировочное тестирование-2008 Ответы к заданиям КИМ Часть I.
ЗРИТЕЛЬНЫЕ ИЛЛЮЗИИ ОПТИЧЕСКИЕ ОБМАНЫ 1. Зрительная иллюзия – не соответствующее действительности представление видимого явления или предмета из-за особенностей.
Увеличение и уменьшение в несколько раз. Математика. 2 класс.

Демидов А.В г.1 Операционные системы Лекция 1 Определение, история, классификация ОС, Архитектура ЭВМ.
В гостях у смешариков. Уважаемые ребята случилось несчастье! 3 Все герои потерялись!!! Если вы правильно выполните все задания, то герои мультфильма найдут.
Типовые расчёты Растворы

Лекция 1 Раздел 1 Windows Phone Темы раздела 3 Windows Phone Устройство на платформе Windows Phone 4.
Транксрипт:

Использование возможностей CUDA на языке Python Александр Мыльцев (Parallel Compute) 1

CUDA из Python Copperhead – data-parallelism для Python Theano – mathematical expressions evaluator Computer vision – Python binding to OpenVIDIA PyCUDA 2

CUDA из Python Copperhead – data-parallelism для Python Theano – mathematical expressions evaluator Computer vision – Python binding to OpenVIDIA PyCUDA 3

Высокопроизводительный код «Традиционный» подход: – C/C++/Fortran – Библиотеки «Альтернативный» подход: – Скрипты для управления – GPU для ускорения 4

Скриптовый язык Интерактивный Автоматическое управление памятью Динамически типизированный Хорошо подходит для «склейки» низкоуровневых частей 5

Интерпретация без компиляции Создание программы 6

Интерпретация без компиляции Создание программы 7

Python Пример скриптового языка – Зрелый – Большое сообщество – Написан на C (портируемость) – Мультипарадигмальный 8

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

GPU GPU не программируется скриптами – Параллельность – Аппаратно-зависим – Делается для быстродействия Дополнить друг друга 10

GPU GPU не программируется скриптами – Параллельность – Аппаратно-зависим – Делается для быстродействия Дополнить друг друга Скриптовый язык на CPU – Для управления задачами 11

GPU GPU не программируется скриптами – Параллельность – Аппаратно-зависим – Делается для быстродействия Дополнить друг друга Скриптовый язык на CPU – Для управления задачами Python + CUDA = PyCUDA 12

Простой пример examples/demo.py в пакете PyCUDA 13

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

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

Особенности PyCUDA Предоставляет полный доступ Автоматическое управление памятью Предоставляет абстракции Можно работать в интерактивно режиме Автоматическая проверка ошибок Интеграция с numpy 16

Поддержка CUDA Полная Например: – Массивы и текстуры – Передача данных – Streams и events – GL – … 17

Операционные системы Все, которые поддерживает CUDA – Linux – Windows – OS X 18

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

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

Авточистка Достижимые объекты (память, потоки, …) никогда не удаляются Недостижимые объекты удалятся когда- нибудь в будущем Можно удалить вручную – obj.free() 21

gpuarray pycuda.gpuarray numpy.ndarray – gpuarray.to_gpu(numpy_array) – numpy_array = gpuarray.get() +, -, *, /, fill, sin, exp, rand, norm, … Разные типы (int32 + float32 = float64) print gpuarray для отладки 22

Поэлементные выражения Экономия циклов 23

Редукция. Проще Пример: вычисление скалярного произведения 24

Брошюра «Вычисления на NVIDIA Tesla» – На последней странице контакты Антона Джораева – Основана на лекции Андреаса Клёкнера (Andreas Klockner) – Вопросы 25