Почему GPU, а не просто мощный CPU

Центральный процессор хорош для последовательных вычислений. Он берет задачу, решает ее, берет следующую. Обучение нейросети устроено иначе: нужно одновременно перемножить миллиарды матриц. CPU делает это медленно не потому, что слабый, а потому что не для этого создан.

GPU изначально придумывали для рендеринга графики, где тоже нужно параллельно обрабатывать огромные массивы данных. Оказалось, что для нейросетей это подходит идеально. Современный NVIDIA H100 содержит около 80 миллиардов транзисторов и способен выполнять квинтиллион операций с плавающей точкой в секунду. Для сравнения — топовый серверный CPU делает это примерно в 50–100 раз медленнее.

Три поколения ускорителей: в чем разница

NVIDIA A40 — рабочая лошадка

A40 — профессиональный ускоритель, изначально ориентированный на визуализацию и рендеринг. В ML его используют для инференса (запуска уже обученной модели) и дообучения небольших моделей. 48 ГБ видеопамяти GDDR6 — это меньше, чем у A100, но достаточно для большинства практических задач.

Главное преимущество A40 — цена. В российских облаках час работы на A40 обходится в 2–4 раза дешевле, чем на A100. Если вы запускаете модели для инференса или работаете с задачами компьютерного зрения — A40 вполне справится.

NVIDIA A100 — стандарт для обучения

A100 выпускается в двух версиях: с 40 и 80 ГБ HBM2e памяти. HBM — это принципиально другой тип памяти по сравнению с GDDR: она значительно быстрее по пропускной способности (2 ТБ/с против 700 ГБ/с у A40). При обучении больших моделей это ощущается.

A100 с 80 ГБ — это сегодняшний стандарт для обучения языковых моделей среднего размера (7B–70B параметров). Именно на таких конфигурациях дообучают Llama и аналогичные open-source модели. Все крупные российские провайдеры предлагают кластеры на A100.

NVIDIA H100 — для серьезных задач

H100 — флагман текущего поколения. Ключевое отличие от A100 — архитектура Hopper и поддержка формата FP8, что позволяет вдвое увеличить скорость обучения при незначительной потере точности. 80 ГБ HBM3 с пропускной способностью 3.35 ТБ/с.

H100 имеет смысл, когда вы обучаете модели от 70B параметров, работаете с мультимодальными архитектурами или вам критична скорость итерации. Для инференса средних моделей или дообучения — это избыточно и дорого.

⚠️ Важно о доступности: H100 в дефиците по всему миру. Российские провайдеры имеют ограниченное количество таких карт. Уточняйте наличие и очередь до начала работ — иногда ждать приходится несколько недель.

Сколько GPU реально нужно

Это зависит от размера модели и доступной видеопамяти. Грубый ориентир: для загрузки модели нужно примерно 2 байта на параметр в fp16. Модель на 7B параметров занимает около 14 ГБ видеопамяти — влезает в одну A100 или H100. Модель на 70B — уже 140 ГБ, нужно минимум два A100 с 80 ГБ.

При обучении (не только инференсе) добавляйте к этому градиенты и оптимайзер-стейт — умножайте на 3–4. То есть для обучения 7B-модели с нуля нужно 40–56 ГБ видеопамяти — уже одной карты не хватит.

💡 Практический совет: Начинайте с одной карты на проверку концепции. Если модель не помещается — используйте квантизацию (4-bit или 8-bit через bitsandbytes). Это позволяет запустить модель на 70B даже на одном A100 с 80 ГБ, пусть и медленнее.

On-demand vs Reserved: что дешевле

On-demand — платите за фактические часы работы. Удобно для экспериментов и нерегулярной нагрузки. Reserved (зарезервированные мощности) — вы оплачиваете GPU на месяц или квартал вперед со скидкой 30–50%.

Если GPU загружен более 60% времени в месяц — резервирование выгоднее. Если вы запускаете обучение раз в неделю — on-demand. Считайте конкретно: возьмите свой средний расход часов в месяц, умножьте на почасовую ставку и сравните с ценой резервирования у конкретного провайдера.

Что проверить перед выбором провайдера

Спецификации GPU одинаковы у всех — это железо. Разница в окружении. Уточните у провайдера: какая версия CUDA поддерживается, есть ли NVLink между картами в кластере (критично для распределенного обучения), какова сетевая связность между узлами (InfiniBand или Ethernet), есть ли готовые образы с предустановленным PyTorch и CUDA нужной версии. Последний пункт экономит несколько часов при старте.