Параллельное программирование для графических ускорителей
Лектор профессор
Продолжительность 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 |


