Вычислительная инфраструктура

GPU in PyTorch

GPU в PyTorch

актуальноТекущий рабочий стандарт

Направления: Инженерия ИИ · Распределённый ML

Как проверить доступность ускорителя, разложить тензоры по устройствам и понять, куда ушла видеопамять.

Ключевые тезисы

  • torch.cuda.is_available() отвечает, есть ли рабочая CUDA, torch.cuda.device_count() — сколько видеокарт видно процессу.
  • Модель и данные должны быть на одном устройстве: несовпадение device — самая частая ошибка новичка.
  • Память съедают , а не веса: смотреть нужно torch.cuda.max_memory_allocated(), а не размер модели.

Подробный разбор

1 подтема — объяснения, формулы, примеры и интерактивные графики.

import torch

torch.cuda.is_available()      # есть ли рабочая CUDA
torch.cuda.device_count()      # сколько видеокарт видит процесс
torch.cuda.get_device_name(0)  # какая именно

device = "cuda" if torch.cuda.is_available() else "cpu"
model = model.to(device)
x = x.to(device, non_blocking=True)   # вместе с pin_memory=True в DataLoader
  • Модель и все входные тензоры должны быть на одном устройстве, иначе PyTorch падает с Expected all tensors to be on the same device.
  • CUDA_VISIBLE_DEVICES ограничивает набор карт для процесса — так делят узел между задачами.
  • torch.cuda.max_memory_allocated() показывает пик; torch.cuda.empty_cache() возвращает кеш аллокатора системе, но не освобождает занятые тензоры.
На практике

Out of memory почти никогда не про размер весов: память съедают , которые растут пропорционально размеру и длине последовательности. Первое лекарство — уменьшить батч и включить gradient accumulation.

Видеолекции

Тайм-кода именно на эту тему в записях нет. Но глава «Вычислительная инфраструктура» разобрана в курсах целиком — с той оговоркой, что место в записи придётся искать самому.

Связанные темы

Обучение на GPU

GPU Architecture85%

Архитектура GPU · Вычислительная инфраструктура

Тысячи простых ядер, сгруппированных в мультипроцессоры, и иерархия памяти, в которую упирается почти любое ускорение.

AI Accelerators85%

Ускорители: GPU, TPU, NPU · Вычислительная инфраструктура

Чем специализированный чип отличается от универсальной видеокарты и когда эта разница окупается.

Distributed Training85%

Распределённое обучение · Вычислительная инфраструктура

Как разложить обучение на несколько GPU: копиями модели по данным, шардами состояния или разрезанием самой модели.

Collective Operations85%

Коллективные операции · Вычислительная инфраструктура

AllReduce, Broadcast, AllGather — примитивы, которыми процессы обучения обмениваются тензорами.

Cluster Networking85%

Сеть кластера · Вычислительная инфраструктура

Топология соединений и скорость обмена, которые определяют, доедет ли обучение до линейного ускорения.

Training Throughput85%

Ускорение обучения · Вычислительная инфраструктура

Что делать, когда число GPU фиксировано: снизить точность, накопить градиент, пересчитать активации, разгрузить загрузчик данных.

Mixed Precision85%

Смешанная точность · Оптимизация обучения

Обучение в fp16 или bf16 при накоплении в fp32: двукратная экономия памяти и заметное ускорение.

Batch size85%

Размер батча · Оптимизация обучения

Число объектов на одно обновление весов: влияет на скорость, память и качество обобщения.

Кому эта тема нужна

Профильная компетенция для роли: MLOps-инженер.

Усиливает профиль: ML Engineer, NLP-инженер, LLM-инженер, CV-инженер, Исследователь, Инженер речи.

Спрашивают на собеседовании: YADROИнфраструктура обучения.

Тема в работе целиком

Разбор архитектуры, где эта тема — один из кирпичей: требования, развилки, цифры и режимы отказа.

Следующий шагТема в работе: Обучение, когда данные не влезают в узелСквозной разбор архитектуры, где эта тема — один из кирпичей: требования, бюджет, развилки и режимы отказа.Перейти →

Глава «Вычислительная инфраструктура» последний раз правилась . Нашли ошибку — напишите.