🗊 Презентация Разработка параллельных программ для GPU. Обзор CUDA API

Нажмите для полного просмотра!
Разработка параллельных программ для GPU. Обзор CUDA API, слайд №1 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №2 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №3 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №4 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №5 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №6 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №7 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №8 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №9 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №10 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №11 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №12 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №13 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №14 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №15 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №16 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №17 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №18 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №19 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №20 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №21 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №22 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №23 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №24 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №25 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №26 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №27 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №28 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №29 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №30 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №31 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №32 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №33 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №34 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №35 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №36 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №37 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №38 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №39 Разработка параллельных программ для GPU. Обзор CUDA API, слайд №40

Содержание

Вы можете ознакомиться и скачать презентацию на тему Разработка параллельных программ для GPU. Обзор CUDA API. Доклад-сообщение содержит 40 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Разработка параллельных программ для GPU Обзор CUDA API
Описание слайда:
Разработка параллельных программ для GPU Обзор CUDA API

Слайд 2


ОСОБЕННОСТИ CUDA APIs Виды CUDA APIs и возможности CUDA-устройств
Описание слайда:
ОСОБЕННОСТИ CUDA APIs Виды CUDA APIs и возможности CUDA-устройств

Слайд 3


Виды CUDA APIs CUDA Driver API Ручная инициализация контекста GPU Отсутствуют CUDA-расширения для C++ Код CPU может компилироваться без nvcc CUDA...
Описание слайда:
Виды CUDA APIs CUDA Driver API Ручная инициализация контекста GPU Отсутствуют CUDA-расширения для C++ Код CPU может компилироваться без nvcc CUDA Runtime API Автоматическая инициализация контекста GPU Наличие CUDA-расширений для C++

Слайд 4


Выбор CUDA API CUDA Driver API Больше гибкости ( + ) Сложность кода ( – ) CUDA Runtime API Меньше гибкости ( – ) Простота кода ( + )
Описание слайда:
Выбор CUDA API CUDA Driver API Больше гибкости ( + ) Сложность кода ( – ) CUDA Runtime API Меньше гибкости ( – ) Простота кода ( + )

Слайд 5


Совместимость CUDA API Имеется обратная совместимость версий
Описание слайда:
Совместимость CUDA API Имеется обратная совместимость версий

Слайд 6


Вычислительные возможности GPU Capability – это версия архитектуры CUDA GPU, которая указывает на его вычислительные возможности и особенности
Описание слайда:
Вычислительные возможности GPU Capability – это версия архитектуры CUDA GPU, которая указывает на его вычислительные возможности и особенности

Слайд 7


Оценка производительности Способы оценки эффективности приложений CUDA
Описание слайда:
Оценка производительности Способы оценки эффективности приложений CUDA

Слайд 8


Время выполнения Общее время вычислений на GPU Время выполнения участка кода GPU
Описание слайда:
Время выполнения Общее время вычислений на GPU Время выполнения участка кода GPU

Слайд 9


Таймеры CPU Таймеры CPU позволяют замерять общее время выполнения вычислений на GPU
Описание слайда:
Таймеры CPU Таймеры CPU позволяют замерять общее время выполнения вычислений на GPU

Слайд 10


Таймеры CUDA Таймеры CUDA позволяют замерять время выполнения участка кода GPU
Описание слайда:
Таймеры CUDA Таймеры CUDA позволяют замерять время выполнения участка кода GPU

Слайд 11


Скорость передачи данных Теоретическая пропускная способность FDDRAM * (RDDRAM/8) * sizeof(float), где FDDRAM – частота, RDDRAM – разрядность шины...
Описание слайда:
Скорость передачи данных Теоретическая пропускная способность FDDRAM * (RDDRAM/8) * sizeof(float), где FDDRAM – частота, RDDRAM – разрядность шины Эффективная пропускная способность (BR+ BW) / time, где BR и BW – объем прочитанной/записанной информации Реальная пропускная способность

Слайд 12


Оптимизация работы с памятью Способы оптимизации работы с памятью CUDA GPU
Описание слайда:
Оптимизация работы с памятью Способы оптимизации работы с памятью CUDA GPU

Слайд 13


Архитектура CUDA GPU
Описание слайда:
Архитектура CUDA GPU

Слайд 14


Типы памяти устройства Streaming Multiprocessor Регистровая память Разделяемая память Память констант Texture Processing Cluster Память текстур DDRAM...
Описание слайда:
Типы памяти устройства Streaming Multiprocessor Регистровая память Разделяемая память Память констант Texture Processing Cluster Память текстур DDRAM Локальная память Глобальная память

Слайд 15


Передача данных Host/Device Является дорогостоящей операцией Возможна асинхронная передача
Описание слайда:
Передача данных Host/Device Является дорогостоящей операцией Возможна асинхронная передача

Слайд 16


Асинхронная передача данных Копирование данных и выполнение ядра можно осуществлять параллельно
Описание слайда:
Асинхронная передача данных Копирование данных и выполнение ядра можно осуществлять параллельно

Слайд 17


Возможная оптимизация Синхронная передача данных в GPU
Описание слайда:
Возможная оптимизация Синхронная передача данных в GPU

Слайд 18


Нулевое копирование (Zero Copy) Прямое обращение к памяти Host’а Встроенные видеокарты Использование кэша CPU
Описание слайда:
Нулевое копирование (Zero Copy) Прямое обращение к памяти Host’а Встроенные видеокарты Использование кэша CPU

Слайд 19


Объединенное чтение DDRAM Выравнивание исходных данных по границе слова Потоки warp’а должны осуществлять одновременное чтение DDRAM
Описание слайда:
Объединенное чтение DDRAM Выравнивание исходных данных по границе слова Потоки warp’а должны осуществлять одновременное чтение DDRAM

Слайд 20


Разделяемая память и конфликты Общая для всех потоков блока Распределяется между блоками Разбивается на банки (32-битные слова)
Описание слайда:
Разделяемая память и конфликты Общая для всех потоков блока Распределяется между блоками Разбивается на банки (32-битные слова)

Слайд 21


Регистровое давление Регистры жестко распределяются между потоками мультипроцессора При большом количестве потоков возникает конфликт доступа к...
Описание слайда:
Регистровое давление Регистры жестко распределяются между потоками мультипроцессора При большом количестве потоков возникает конфликт доступа к регистрам

Слайд 22


Выбор оптимальной топологии Методы оценки топологии вычислений CUDA
Описание слайда:
Выбор оптимальной топологии Методы оценки топологии вычислений CUDA

Слайд 23


Степень покрытия Степень покрытия мультипроцессора – это отношение числа активных warp'ов к максимально возможному числу активных warp'ов По...
Описание слайда:
Степень покрытия Степень покрытия мультипроцессора – это отношение числа активных warp'ов к максимально возможному числу активных warp'ов По количеству используемых регистров С учетом топологии вычислений Без учета топологии вычислений По размеру используемой разделяемой памяти

Слайд 24


Определение степени покрытия CUDA GPU: 8192 регистра 768 потоков на мультипроцессор Топология: 12 регистров на ядро 128 потоков в блоке Tmax = 8192...
Описание слайда:
Определение степени покрытия CUDA GPU: 8192 регистра 768 потоков на мультипроцессор Топология: 12 регистров на ядро 128 потоков в блоке Tmax = 8192 регистров / 12 регистров = 682 потока Treal = int(682 / 128) * 128 = 640 потоков С = Тreal / Tmax = 83%

Слайд 25


Оптимизация кода Оптимизация инструкций CUDA
Описание слайда:
Оптимизация кода Оптимизация инструкций CUDA

Слайд 26


Регистровая зависимость Инструкция использует регистр, значение которого было получено при выполнении предыдущей инструкции
Описание слайда:
Регистровая зависимость Инструкция использует регистр, значение которого было получено при выполнении предыдущей инструкции

Слайд 27


Float vs Double Арифметические операции с float-числами осуществляются быстрей, чем с double-числами Рекомендуется использовать суффикс «f» при...
Описание слайда:
Float vs Double Арифметические операции с float-числами осуществляются быстрей, чем с double-числами Рекомендуется использовать суффикс «f» при объявлении числовых констант, например, 3.14f

Слайд 28


Деление чисел При делении чисел на степень двойки рекомендуется использовать оператор сдвига
Описание слайда:
Деление чисел При делении чисел на степень двойки рекомендуется использовать оператор сдвига

Слайд 29


Степень числа Для известных целых значений степеней рекомендуется использовать явное умножение вместо вызова pow()
Описание слайда:
Степень числа Для известных целых значений степеней рекомендуется использовать явное умножение вместо вызова pow()

Слайд 30


Часто используемые функции Обратный квадратный корень rsqrtf() / rsqrt() Прочие арифметические операции expf2() / exp2() – экспонента во 2-й степени...
Описание слайда:
Часто используемые функции Обратный квадратный корень rsqrtf() / rsqrt() Прочие арифметические операции expf2() / exp2() – экспонента во 2-й степени expf10() / exp10() – экспонента в 10-й степени cbrtf() / cart() – экспонента в степени 1/3 rcbrtf() / rebut() – экспонента в степени -1/3

Слайд 31


Точность vs Скорость Аппаратные аналоги функций __sinf() / sinf() __cosf() / cosf() __expf() / expf() Совмещенные функции sincosf() / sincos()
Описание слайда:
Точность vs Скорость Аппаратные аналоги функций __sinf() / sinf() __cosf() / cosf() __expf() / expf() Совмещенные функции sincosf() / sincos()

Слайд 32


Управление потоком команд Общие рекомендации по написанию кода
Описание слайда:
Управление потоком команд Общие рекомендации по написанию кода

Слайд 33


Операторы ветвления Инструкции управления потоком команд (if, switch, for, while, do-while) отрицательно сказываются на производительности В идеале...
Описание слайда:
Операторы ветвления Инструкции управления потоком команд (if, switch, for, while, do-while) отрицательно сказываются на производительности В идеале все потоки warp'а должны идти по одному пути, иначе увеличивается количество выполняемых инструкций и возможно последовательное выполнение

Слайд 34


Предикативная запись
Описание слайда:
Предикативная запись

Слайд 35


Отладка и профилирование Отладка и профилирование приложений CUDA
Описание слайда:
Отладка и профилирование Отладка и профилирование приложений CUDA

Слайд 36


Существующие утилиты Linux CUDA-GDB Windows Vista & Windows 7 NVIDIA Parallel Nsight
Описание слайда:
Существующие утилиты Linux CUDA-GDB Windows Vista & Windows 7 NVIDIA Parallel Nsight

Слайд 37


АППАРАТНЫЕ Особенности GPU Краткий обзор архитектурных особенностей GPU
Описание слайда:
АППАРАТНЫЕ Особенности GPU Краткий обзор архитектурных особенностей GPU

Слайд 38


Причины рассогласования Основные причины рассогласования результатов вычислений на GPU и CPU Усечение double чисел до float при отсутствии аппаратной...
Описание слайда:
Причины рассогласования Основные причины рассогласования результатов вычислений на GPU и CPU Усечение double чисел до float при отсутствии аппаратной поддержки double Неассоциативность арифметических операций с дробными числами Небольшие отклонения от стандарта IEEE 754 Особенности архитектуры процессоров x86

Слайд 39


Литература NVIDIA Developer Zone NVIDIA Parallel Nsight CUDA C Best Practices Guide
Описание слайда:
Литература NVIDIA Developer Zone NVIDIA Parallel Nsight CUDA C Best Practices Guide

Слайд 40


Вопросы?
Описание слайда:
Вопросы?



Похожие презентации
Mypresentation.ru
Загрузить презентацию