Параллельное программирование для графических ускорителей

Лектор профессор

Продолжительность 1/2 года


Программа курса

«Параллельное программирование для графических ускорителей»

1.

Введение в предмет. Архитектура центрального процессора (ЦП) в сравнении с архитектурой графических процессоров (ГП). Основы архитектуры ЦП. Основы многоядерности и многопроцессорности.  Поддерживаемые языки и ОС. Основы архитектуры  ГП.

2

2.

Связь ГП с центральным процессором. Отличие параллельного программирования для ГП от программирования для многоядерного процессора. Специальные переменные. Потоки на  ГП и их реализация. Получение информации о ГП, установленном в компьютере.

2

3.

Низкоуровневое программирование для CUDA. Передача данных на ГП. Запуск программы на выполнение на ГП. Типы параллелизма  для  ГП. Программная модель  CUDA.

2

4.

Программирование на CUDA Фортране. Программа для ГП. Выделение памяти, запуск и контроль программы для ГП. Потоки, warp’ы, блоки, грид (grid). Примеры программ для графического процессора.

2

5.

Типы памяти. Распределение и эффективная работа с памятью. Пересылка данных из ЦП на ГП и обратно. Асинхронная передача данных.

2

6.

Операторы CUDA Фортрана. Атрибуты host. Глобальные процедуры.  Атрибуты переменных.

2

7.

Потоковые блоки. Подпрограммы и функции. Обработка ошибок.

2

8.

Переменные спецификаторы. Предопределенные переменные в подпрограммах ГП.

2

9.

Конфигурация выполнения. Параллельное (concurrent) выполнение потоков. Оптимизация фортрановских программ для CUDA.

2

10.

Типы памяти.  Специальные виды памяти. Регистровая, shared и pinned память.  Выделение памяти и обмен информацией между ЦП и ГП. Распределение и эффективная работа с памятью. Пересылка данных из ЦП на ГП и обратно. Асинхронная передача данных.

2

11.

Функции времени выполнения. Управление ГП. Управление нитями и памятью.

2

12.

Программный акселератор. Построение программ с помощью акселератора.

2

13.

Управление потоками и событиями. Функция обработки ошибок. Калькулятор загруженности CUDA.

2

14.

Разработка программ для решения задач вычислительной гидродинамики для графических процессоров.

2

ВСЕГО ЛЕКЦИЙ:

28

Практические

1.

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

4

2.

Программные компоненты. Модуль, оператор функция, подпрограмма функция, подпрограмма процедура Организация ввода – вывода. Операторы ввода-вывода. Встроенные функции для работы с массивами. Создание библиотек. Примеры структур, ссылок, указателей.

4

3.

Примеры построения программ для решения простейших задач газодинамики на Фортране.

4

4.

Настройка компилятора. Первая программа на CUDA Фортран. Запуск программы на выполнение на ГП. Использование потоков, блоков, гридов. Примеры программ для графического процессора.

4

5.

Операторы CUDA Фортрана. Атрибуты host. Глобальные процедуры.  Атрибуты переменных. Подпрограммы и функции. Обработка ошибок. Параллельное (concurrent) выполнение потоков. Оптимизация фортрановских программ для CUDA.

4

6.

Использование специальных видов памяти.  Функции времени выполнения. Управление ГП. Управление нитями и памятью.

4

7.

Программный акселератор. Построение программ с помощью акселератора. Управление потоками и событиями.

4

8.

Сравнение результатов работы программ, написанных с помощью директив акселератора, без директив акселератора и на CUDA.

4

9.

Написание программ для решения дифференциальных уравнений в частных производных на ГП.

4

10.

Написание программ для решения дифференциальных уравнений в частных производных на ГП.

11.

Разработка программ для решения задач вычислительной гидродинамики на ГП.

4

12.

Разработка программ для решения задач вычислительной гидродинамики на ГП.

4