Фаза 00 · урок 03
Настройка GPU и облачные вычисления
Цель урока: Большинство уроков фаз 1–3 нормально работает на CPU. Но когда вы начнёте обучать свёрточные нейронные сети, трансформеры или LLM в фазах 4 и далее, понадобится ускорение на GPU. Обучение, занимающее 8 часов на CPU, может занять 10…
Текущий релиз AlexBred.com: первые 100 уроков русскоязычной программы.
Содержание урока
Для обучения подойдёт и CPU. Для настоящих задач обучения нужен GPU.
Тип: Практика Языки: Python Предварительные требования: Фаза 0, урок 01 Время: около 45 минут
Цели обучения
- Проверить наличие локального GPU с помощью
nvidia-smiи CUDA API в PyTorch. - Настроить Google Colab с GPU T4 для бесплатных облачных экспериментов.
- Сравнить умножение матриц на CPU и GPU и измерить ускорение.
- Оценить размер крупнейшей модели, помещающейся в VRAM, с помощью приближённого правила для fp16.
Проблема
Большинство уроков фаз 1–3 нормально работает на CPU. Но когда вы начнёте обучать свёрточные нейронные сети, трансформеры или LLM в фазах 4 и далее, понадобится ускорение на GPU. Обучение, занимающее 8 часов на CPU, может занять 10 минут на GPU.
У вас есть три варианта: локальный GPU, облачный GPU или бесплатный Google Colab.
Концепция
Доступные варианты:
1. Локальный GPU NVIDIA
Стоимость: $0 (он у вас уже есть)
Настройка: установить CUDA + cuDNN
Лучше всего подходит для регулярной работы и больших наборов данных
2. Google Colab (бесплатный тариф)
Стоимость: $0
Настройка: не требуется
Лучше всего подходит для быстрых экспериментов при отсутствии домашнего GPU
3. Облачный GPU (Lambda, RunPod, Vast.ai)
Стоимость: $0,20–2,00 в час
Настройка: SSH + установка ПО
Лучше всего подходит для серьёзного обучения и больших моделей
[!note] Примечание переводчика Цены, бесплатные тарифы и доступные ускорители приведены по состоянию исходной ревизии от 25 июня 2026 года. Перед использованием проверьте текущие условия выбранного сервиса.
Собираем сами
Вариант 1. Локальный GPU NVIDIA
Проверьте, установлен ли он:
nvidia-smi
Установите PyTorch с поддержкой CUDA:
import torch
print(f"CUDA available: {torch.cuda.is_available()}")
print(f"CUDA version: {torch.version.cuda}")
if torch.cuda.is_available():
print(f"GPU: {torch.cuda.get_device_name(0)}")
print(f"Memory: {torch.cuda.get_device_properties(0).total_memory / 1e9:.1f} GB")
Вариант 2. Google Colab
- Перейдите на colab.research.google.com.
- Выберите Runtime → Change runtime type → T4 GPU.
- Для проверки выполните
!nvidia-smi.
Загружайте блокноты из этого курса непосредственно в Colab.
Вариант 3. Облачный GPU
Для Lambda Labs, RunPod или Vast.ai:
ssh user@your-gpu-instance
pip install torch torchvision torchaudio
python -c "import torch; print(torch.cuda.get_device_name(0))"
Нет GPU? Ничего страшного
Большинство уроков работает на CPU. В уроках, которым нужен GPU, это будет указано и будут приведены ссылки на Colab.
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(f"Using: {device}")
Собираем сами: сравнение GPU и CPU
import torch
import time
size = 5000
a_cpu = torch.randn(size, size)
b_cpu = torch.randn(size, size)
start = time.time()
c_cpu = a_cpu @ b_cpu
cpu_time = time.time() - start
print(f"CPU: {cpu_time:.3f}s")
if torch.cuda.is_available():
a_gpu = a_cpu.to("cuda")
b_gpu = b_cpu.to("cuda")
torch.cuda.synchronize()
start = time.time()
c_gpu = a_gpu @ b_gpu
torch.cuda.synchronize()
gpu_time = time.time() - start
print(f"GPU: {gpu_time:.3f}s")
print(f"Speedup: {cpu_time / gpu_time:.0f}x")
Упражнения
- Запустите приведённый выше тест и сравните время работы CPU и GPU.
- Если у вас нет GPU, выполните тест в Google Colab и сравните результаты.
- Узнайте объём памяти своего GPU и оцените размер крупнейшей помещающейся в неё модели. Приближённое правило для fp16: 2 байта на параметр.
Ключевые термины
| Термин | Как обычно говорят | Что это означает на самом деле |
|---|---|---|
| CUDA | «Программирование для GPU» | Платформа параллельных вычислений NVIDIA, позволяющая выполнять код на GPU |
| VRAM | «Память GPU» | Видеопамять GPU, отдельная от системной оперативной памяти; ограничивает размер модели |
| fp16 | «Половинная точность» | 16-битный формат с плавающей точкой; требует вдвое меньше памяти, чем fp32, при минимальной потере точности |
| Tensor Core | «Быстрое матричное оборудование» | Специализированные ядра GPU для умножения матриц, работающие в 4–8 раз быстрее обычных ядер |
Источник: GPU Setup & Cloud — оригинал Навигация: назад: 00.02 — Git и совместная работа · Фаза 0 — Настройка и инструменты · Полный каталог · далее: 00.04 — API и ключи.