2026/2027





GPU
ID 1149523
Статус:
Маго-лего
Где читается:
Факультет компьютерных наук
Когда читается:
3 модуль
Охват аудитории:
для своего кампуса
Язык:
русский
Кредиты:
3
Контактные часы:
20
Программа дисциплины
Аннотация
Курс посвящён тому, как устроены вычисления на графических процессорах и от чего зависит их скорость. В первом блоке студенты изучают архитектуру GPU и модель выполнения CUDA, пишут собственные CUDA-кернелы, оптимизируют работу с памятью на примере матричного умножения, реализуют параллельные алгоритмы на уровне варпов и встраивают свои кернелы в PyTorch. Во втором блоке разбирается внутреннее устройство GPU с точки зрения производительности и профилирование моделей с помощью PyTorch Profiler. Третий блок посвящён эффективному использованию GPU для больших моделей: сравнению видеокарт и поддерживаемых ими форматов чисел, низкобитной квантизации, дистилляции моделей, размещению большой модели на одной видеокарте по частям и работе с большими объёмами данных. Каждый блок сопровождается практическим домашним заданием.
Цель освоения дисциплины
- сформировать понимание того, как устроены вычисления на GPU и от чего зависит их скорость, а также практические навыки написания и профилирования GPU-кода и оптимизации обучения и инференса нейросетевых моделей на GPU.
Планируемые результаты обучения
- объясняет архитектуру GPU, модель выполнения CUDA и иерархию памяти;
- пишет и запускает CUDA-кернелы, организуя потоки в блоки и сетки;
- ускоряет вычисления за счёт работы с shared memory и тайлинга (на примере матричного умножения);
- реализует параллельные алгоритмы с использованием примитивов уровня варпа (на примере редукции);
- встраивает собственные CUDA-кернелы в PyTorch и управляет асинхронным выполнением с помощью CUDA streams;
- профилирует модели PyTorch, находит узкие места и устраняет их;
- выбирает GPU и числовой формат под задачу и применяет низкобитную квантизацию моделей;
- применяет дистилляцию для получения компактных моделей;
- размещает большую модель на одной видеокарте по частям и обрабатывает большие объёмы данных на GPU.
Содержание учебной дисциплины
- Введение в CUDA
- Память GPU и матричные вычисления
- Параллельные алгоритмы на CUDA
- CUDA-кернелы в Python и асинхронное выполнение
- Внутреннее устройство GPU и производительность
- Профилирование моделей в PyTorch
- Практика оптимизации по результатам профилирования
- Видеокарты и низкобитная квантизация
- Эффективная дистилляция моделей
- Большие модели и большие данные на GPU
Элементы контроля
- Домашнее задание 1Практическое задание по блоку «Программирование на CUDA» (темы 1–4). Решение сдаётся в виде кода и короткого отчёта с замерами производительности. Планируемые результаты: Студент пишет, отлаживает и ускоряет CUDA-кернелы. Проведение — синхронно по видеосвязи.
- Домашнее задание 2Практическое задание по блоку «Устройство GPU и профилирование» (темы 5–7). Решение сдаётся в виде кода и отчёта с результатами профилирования. Планируемые результаты: Студент профилирует модели PyTorch и устраняет узкие места. Проведение — синхронно по видеосвязи.
- Домашнее задание 3Практическое задание по блоку «Большие модели на GPU» (темы 8–10). Решение сдаётся в виде кода и отчёта с замерами качества, скорости и потребления памяти. Планируемые результаты: Студент применяет квантизацию и дистилляцию и эффективно размещает модели на GPU. Проведение — синхронно по видеосвязи.
- ЭкзаменУстный экзамен по всем темам курса. Сдаётся по желанию студента (см. формулу оценивания). Планируемые результаты: Студент объясняет, как устроены вычисления на GPU и от чего зависит их скорость, и применяет эти знания к оптимизации моделей. Проведение — синхронно по видеосвязи.
Промежуточная аттестация
- 2026/2027 3rd moduleФормула оценивания: Итог = 0,2 · ДЗ + max(0,5 · ДЗ; 0,8 · Э), где ДЗ = (ДЗ1 + ДЗ2 + ДЗ3) / 3 — средняя оценка за домашние задания, Э — оценка за экзамен. Все оценки выставляются по 10-балльной шкале, промежуточные оценки не округляются, итоговая оценка округляется арифметически. Экзамен не является обязательным: студент, не сдававший экзамен, получает итоговую оценку 0,7 · ДЗ (не более 7 баллов). Для получения оценок 8–10 необходимо сдать экзамен. Блокирующих элементов контроля нет.
Список литературы
Рекомендуемая основная литература
- Основы работы с технологией CUDA - Боресков А.В., Харламов А.А. - Издательство "ДМК Пресс" - 978-5-94074-578-5 - 2010 - русский - https://e.lanbook.com/book/1260 - ЛАНЬ - 1260
- Совершенствование параллельного программирования на CUDA C для GPU - Ерохин В. В., Горин Д. С., Бунина Л. В. - МИРЭА - Российский технологический университет - 978-5-7339-2565-3 - 2025 - русский - https://e.lanbook.com/book/504826 - ЛАНЬ - 504826
- Технология CUDA в примерах : введение в программирование графических процессоров, Сандерс, Дж., 2011
- Технология CUDA в примерах: введение в программирование графических процессоров - Сандерс Дж., Кэндрот Э. - Издательство "ДМК Пресс" - 978-5-94074-504-4 - 2011 - русский - https://e.lanbook.com/book/3029 - ЛАНЬ - 3029
Рекомендуемая дополнительная литература
- Технология программирования CUDA - Тумаков Д. Н., Чикрин Д. Е., Егорчев А. А., Голоусов С. В. - Казанский (Приволжский) федеральный университет - 978-5-00019-913-8 - 2017 - русский - https://e.lanbook.com/book/130543 - ЛАНЬ - 130543