Как проверить доступность ускорителя, разложить тензоры по устройствам и понять, куда ушла видеопамять.
Ключевые тезисы
torch.cuda.is_available()отвечает, есть ли рабочая CUDA,torch.cuda.device_count()— сколько видеокарт видно процессу.- Модель и данные должны быть на одном устройстве: несовпадение device — самая частая ошибка новичка.
- Память съедают , а не веса: смотреть нужно
torch.cuda.max_memory_allocated(), а не размер модели.
Подробный разбор
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 — Инфраструктура обучения.
Разбор архитектуры, где эта тема — один из кирпичей: требования, развилки, цифры и режимы отказа.
Глава «Вычислительная инфраструктура» последний раз правилась . Нашли ошибку — напишите.