Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемnvidia.esyr.org
1 Использование возможностей CUDA на языке Python Александр Мыльцев (Parallel Compute) 1
2 CUDA из Python Copperhead – data-parallelism для Python Theano – mathematical expressions evaluator Computer vision – Python binding to OpenVIDIA PyCUDA 2
3 CUDA из Python Copperhead – data-parallelism для Python Theano – mathematical expressions evaluator Computer vision – Python binding to OpenVIDIA PyCUDA 3
4 Высокопроизводительный код «Традиционный» подход: – C/C++/Fortran – Библиотеки «Альтернативный» подход: – Скрипты для управления – GPU для ускорения 4
5 Скриптовый язык Интерактивный Автоматическое управление памятью Динамически типизированный Хорошо подходит для «склейки» низкоуровневых частей 5
6 Интерпретация без компиляции Создание программы 6
7 Интерпретация без компиляции Создание программы 7
8 Python Пример скриптового языка – Зрелый – Большое сообщество – Написан на C (портируемость) – Мультипарадигмальный 8
9 Как это выглядит? 9
10 GPU GPU не программируется скриптами – Параллельность – Аппаратно-зависим – Делается для быстродействия Дополнить друг друга 10
11 GPU GPU не программируется скриптами – Параллельность – Аппаратно-зависим – Делается для быстродействия Дополнить друг друга Скриптовый язык на CPU – Для управления задачами 11
12 GPU GPU не программируется скриптами – Параллельность – Аппаратно-зависим – Делается для быстродействия Дополнить друг друга Скриптовый язык на CPU – Для управления задачами Python + CUDA = PyCUDA 12
13 Простой пример examples/demo.py в пакете PyCUDA 13
14 Простой пример 14
15 Простой пример. Проще 15
16 Особенности PyCUDA Предоставляет полный доступ Автоматическое управление памятью Предоставляет абстракции Можно работать в интерактивно режиме Автоматическая проверка ошибок Интеграция с numpy 16
17 Поддержка CUDA Полная Например: – Массивы и текстуры – Передача данных – Streams и events – GL – … 17
18 Операционные системы Все, которые поддерживает CUDA – Linux – Windows – OS X 18
19 Документация 19
20 Процесс разработки 20
21 Авточистка Достижимые объекты (память, потоки, …) никогда не удаляются Недостижимые объекты удалятся когда- нибудь в будущем Можно удалить вручную – obj.free() 21
22 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 Поэлементные выражения Экономия циклов 23
24 Редукция. Проще Пример: вычисление скалярного произведения 24
25 Брошюра «Вычисления на NVIDIA Tesla» – На последней странице контакты Антона Джораева – Основана на лекции Андреаса Клёкнера (Andreas Klockner) – Вопросы 25
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.