Название спецкурса на русском языке
Параллельное программирование для графических ускорителей
Перевод названия курса на английский язык
Parallel programming for graphics accelerators
Авторы курса
Рыбакин Борис Петрович
Целевая аудитория
2 курс
3 курс
4 курс
5 курс
6 курс
Подразделение
[Кафедра газовой и волновой динамики]
Семестр
Полгода (весна)
Тип курса
Спецкурс по выбору студента
Учебный год
2023/24
День недели
по согласованию
Время
По согласованию
Формат проведения
В аудитории
Аудитория
Внешняя площадка
Аннотация
Введение в предмет. Архитектура центрального процессора (ЦП) в сравнении с архитектурой графических процессоров (ГП). Основы архитектуры ЦП. Основы многоядерности и многопроцессорности. Поддерживаемые языки и ОС. Основы архитектуры ГП.
Связь ГП с центральным процессором. Отличие параллельного программирования для ГП от программирования для многоядерного процессора. Специальные переменные. Потоки на ГП и их реализация. Получение информации о ГП, установленном в компьютере.
Низкоуровневое программирование для CUDA. Передача данных на ГП. Запуск программы на выполнение на ГП. Типы параллелизма для ГП. Программная модель CUDA.
Программирование на CUDA Фортране. Программа для ГП. Выделение памяти, запуск и контроль программы для ГП. Потоки, warp’ы, блоки, грид (grid). Примеры программ для графического процессора.
Типы памяти. Распределение и эффективная работа с памятью. Пересылка данных из ЦП на ГП и обратно. Асинхронная передача данных.
Операторы CUDA Фортрана. Атрибуты host. Глобальные процедуры. Атрибуты переменных.
Потоковые блоки. Подпрограммы и функции. Обработка ошибок.
Переменные спецификаторы. Предопределенные переменные в подпрограммах ГП.
Конфигурация выполнения. Параллельное (concurrent) выполнение потоков. Оптимизация фортрановских программ для CUDA.
Типы памяти. Специальные виды памяти. Регистровая, shared и pinned память. Выделение памяти и обмен информацией между ЦП и ГП. Распределение и эффективная работа с памятью. Пересылка данных из ЦП на ГП и обратно. Асинхронная передача данных.
Функции времени выполнения. Управление ГП. Управление нитями и памятью.
Программный акселератор. Построение программ с помощью акселератора.
Управление потоками и событиями. Функция обработки ошибок. Калькулятор загруженности CUDA.
Разработка программ для решения задач вычислительной гидродинамики для графических процессоров.
Дополнительная информация

Для записи отправить письмо на почту rybakin1@mail.ru