• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
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

Авторы

  • Ахмедова Гюнай Интигам кызы