Зачем читать. Видеокарты (GPU) стали «двигателем» современного ИИ. От их памяти, полосы и кёрнелов зависит, будет ли ваш ассистент отвечать за секунды и укладываться в бюджет. Этот материал — практический путеводитель по выбору и эксплуатации GPU для задач инференса и обучения: разберём архитектуру, память и межсоединения, посчитаем, сколько VRAM нужно под LLM, как влияет квантование и батчинг, где «тонкие места» в продакшне, и какие профили оборудования реально работают.
Кому полезно. Руководителям продуктов и инженерам AI/ML, которые планируют закупку или аренду железа, проектируют стек инференса и отвечают за P95/TTFT, а также разработчикам платформ, строящим RAG и оркестрацию поверх GPU-кластеров.
Вводные по сквозной архитектуре см. в AI-стеке, а тонкости исполнения — в материале про стек инференса LLM. Экономику исполнения и как она складывается из токенов/сек и контекста мы обсуждаем в термине «Инференс».
Из чего «сделан» GPU: архитектура простыми словами
GPU — это массив параллельных вычислительных блоков (ядра/SM/Compute Units), объединённых общей памятью (VRAM) и высокоскоростными шинами. Для ИИ важны:
- Tensor/Matrix-ядра — ускоряют матричные умножения (основа трансформеров).
- Память — объём VRAM и её тип (HBM/GDDR) определяют, какой контекст и батч вы потянете.
- Полоса памяти (memory bandwidth) — насколько быстро данные «доезжают» от VRAM к вычислителям.
- Межсоединения — PCIe/NVLink/сеть управляют скоростью между GPU и хостом/соседями.
- Форматы чисел — поддержка FP16/BF16/FP8 и целочисленных INT8/INT4 путей.
Идеальная видеокарта для ИИ — та, что балансирует память и полосу: «супер-FLOPS» бесполезны, если данные «глоткой не пролезают». На практике именно полоса памяти и эффективность кёрнелов внимания ограничивают скорость генерации токенов.
Память: VRAM, типы и почему её всегда мало
VRAM — главный бюджет инференса. В LLM значительная доля уходит на веса и KV-кэш (буфер ключей/значений внимания). Для CV/TTS/ASR задачи профиль другой, но принцип тот же: «модель + промежуточные буферы» должны поместиться.
HBM vs GDDR.
- HBM — высокая полоса, низкие задержки, крупные объёмы (обычно в дата-центровых GPU).
- GDDR — массовые игровые/воркстейшн-карты; ниже полоса, но часто достаточно для компактных моделей.
Ориентиры VRAM для LLM (веса + накладные, без KV-кэша)
| Размер модели (параметров) | FP16/BF16 | INT8 (веса) | INT4 (веса) |
| ~7B | ≈ 14–16 ГБ | ≈ 8–10 ГБ | ≈ 5–6 ГБ |
| ~13B | ≈ 26–28 ГБ | ≈ 14–16 ГБ | ≈ 8–10 ГБ |
| ~33B | ≈ 66–70 ГБ | ≈ 36–40 ГБ | ≈ 20–24 ГБ |
| ~70B | ≈ 140+ ГБ | ≈ 70–80 ГБ | ≈ 40–48 ГБ |
Числа ориентировочные: влияют конкретная архитектура и накладные на кёрнелы.
KV-кэш растёт с длиной контекста и размером батча. На длинных диалогах он доминирует в VRAM. Прямой способ расширить возможности — снизить битность весов и кэша (см. раздел про квантование).
Полоса памяти и «узкие горлышки»
Именно скорость доступа к VRAM определяет, сколько токенов/сек вы получите. Пара важных фактов:
- Внимание (attention) — память-ограниченная операция. Кёрнелы flash-attention сокращают трафик и дают кратный прирост.
- Layout (раскладка тензоров) и «фьюзинг» операторов уменьшают число проходов по памяти.
- Если у GPU мало полосы, мощность Tensor-ядер не раскрывается — «топим в пробке».
Практический тест: измеряйте токены/сек на реальных подсказках/длинах контекста, а не только FLOPS в бенчмарках.
Межсоединения: PCIe, NVLink и сеть
- PCIe — путь между CPU и GPU; важен для загрузки весов, токенизации, I/O. Версии и линии (x16 Gen4/Gen5) задают потолок пропускной способности.
- NVLink/чиплет-связи — шина между GPU; критично для модельного параллелизма (когда веса/активности распилены на несколько карт).
- Сеть — если кластер распределён по узлам, сеть становится очередным узким местом (RDMA/InfiniBand/100G+ Ethernet).
Если вы хотите запускать 70B-модели без агрессивного квантования, готовьтесь к мульти-GPU и грамотной схеме шардирования с быстрыми межсвязями.
Форматы чисел и квантование: как «сжать» без боли
Снижение разрядности — основной способ расширить возможности диапазон задач на тех же картах.
- FP16/BF16 — стандартный «точный» инференс; хороший баланс.
- INT8 — почти «бесплатно» по качеству при правильной калибровке; выигрыши ×2 по памяти для весов и кэша.
- INT4 — радикальная экономия, но требует тонкой настройки и смешанных битностей.
Подробный разбор и чек-лист — в «Квантовании». Вкратце: начните с INT8 весов, потом точечно переводите отдельные слои/кэш в INT4 там, где метрики держатся.
Инференс LLM: как «упирается» в GPU на практике
Инференс — это не только математика, но и планировщик. На «ощущение скорости» влияет TTFT (время до первого токена), а на экономику — токены/сек.
- KV-кэш: основной потребитель VRAM на длинных историях; квантование кэша (INT8/INT4) экономит память и позволяет держать больше сессий.
- Батчинг: сшивание нескольких сессий увеличивает токены/сек, но ухудшает хвостовые задержки (P95). Нужны лимиты по классам задач.
- Спекулятивная декодировка: «лёгкий предсказатель» уменьшает количество «дорогих» итераций на базе модели.
- Кэш ответов и префилла: повторяющиеся запросы «едут бесплатно».
Техническая сторона и анти-паттерны подробно разобраны в стеке инференса LLM.
Обучение и дообучение: когда GPU «заканчиваются»
Обучение/тонкая настройка (включая LoRA) требует:
- Больше VRAM (градиенты/оптимизатор/моменты).
- Стабильную полосу и эффективные коммутации между GPU.
- Чекпоинты на быстрых дисках (NVMe), чтобы переживать сбои.
Если вы не строите полноформатное обучение, а только дообучаете под домен, разумен микс: LoRA/QLoRA + INT8/FP16. В противном случае планируйте NVLink-связки и распределённый тренинг.
Как выбрать GPU под сценарий: профили и компромиссы
| Сценарий | Приоритеты | Минимум по VRAM | Рекомендации |
| Интерактивный чат (7–13B) | TTFT, токены/сек | 10–16 ГБ (INT8 весы) | Одна «свежая» карта среднего класса; акцент на кёрнелы внимания |
| Ассистент с длинной памятью | VRAM под KV-кэш | 20–24 ГБ+ | Квантовать кэш, включить батчинг с лимитами |
| RAG-поиск + генерация | Баланс цена/качество | 12–24 ГБ | Короткий контекст, сжатие выдержек; выигрыш от кэшей |
| Массовая суммаризация | Цена/объект | 12–24 ГБ | Батчинг/микробатч, INT8/INT4, кэш префилла |
| Дообучение (LoRA) | Пропускная/диск | 24–48 ГБ | Быстрые NVMe, аккуратные чекпоинты |
| Полный тренинг | NVLink/сеть | 80 ГБ × N | Мульти-GPU, распределённый оптимизатор |
*Примечание:* в RAG избыток контекста бьёт по TTFT/цене. Урезайте выдержки и сжимайте контекст (см. Инференс).
Расчёт VRAM «на салфетке»
Упрощённая модель для LLM-инференса VRAM ≈ Веса + KV-кэш + Активации/прочее.
- Веса: берём таблицу выше по битности.
- KV-кэш: пропорционален *(число слоёв × размер головы внимания × длина контекста × батч × битность)* с коэффициентом на раскладку. На практике проще измерить на вашей модели/кёрнеле.
- Активации: для авто-регрессии обычно ниже кэша, но держите запас 10–20%.
Правило большого пальца: если вы не измерили — добавьте +20–30% запаса к теории и протестируйте на длине контекста, равной вашему SLA.
Один GPU или несколько: когда и зачем шардировать
Один мощный GPU удобнее: меньше коммуникаций, проще эксплуатация. Но крупные модели вынуждают к модельному параллелизму. Компромиссы:
- Data Parallel (для обучения) — копии модели на разных GPU/узлах.
- Tensor/Model Parallel — распил слоёв по устройствам; нужны быстрые связи (NVLink).
- Pipeline Parallel — слои по стадиям; выравнивайте время этапов.
Для инференса LLM шардируйте неохотно: издержки NVLink и координации съедают выигрыш. Лучше квантовать и сжимать контекст, чем усложнять маршруты между GPU.
Узкие места и как их находить
- Полоса VRAM: кёрнелы внимания «упираются» в память. Лечится flash-attention, правильными лейаутами и сокращением контекста.
- CPU-узкие места: токенизация, загрузка весов, I/O. Переносите токенизацию на GPU/ускоряйте батчем.
- Сеть: при мульти-GPU/многоузловых связках сеть становится P95-ограничителем.
- Диск: холодный старт (перекачка весов) и чекпоинты. Держите веса «тёплыми» на NVMe/в кэше.
Инструменты наблюдаемости должны показывать TTFT, токены/сек, промахи кэша, а также диаграмму времени по шагам (префилл, декод, пост).
Экономика: цена/токен и как её снизить
Рычаги, которые работают почти всегда:
- Сокращайте контекст (RAG-сжатие выдержек, rerank) — меньше префилла.
- Квантование весов и кэша — см. квантование.
- Батчинг/микробатч — аккуратно, с лимитами по P95.
- Маршрутизация по сложности — компактная модель по умолчанию, тяжёлая — по сигналам.
- Кэш ответов — повторяемые запросы «почти бесплатно».
В бизнес-терминах считайте цена/эпизод: токены ввода/вывода + retrieval/сжатие + «скрытые» I/O.
Драйверы, кёрнелы и «магия обновлений»
Новая версия драйвера или фреймворка может сломать скорость. Режим эксплуатации:
- Закрепляйте версии драйверов/библиотек/кёрнелов.
- Готовьте baseline-бенчи на ваших промптах (реалистичная длина, код/текст).
- Канареечные выкладки: один узел — новая версия — неделя — затем весь пул.
- Регресс-набор: если токены/сек упали на >10%, откат.
Безопасность и политика доступа
- Изоляция контейнеров и контроль инструментов/сети.
- Минимизируйте PII и секреты; кэш и логи — без «сырых» данных.
- Гео-локализация исполнения, если требуется регуляторно.
- При аренде у сторонних операторов — проверка телеметрии и отчётов (см. профили в «децентрализованных вычислениях»).
Чек-лист закупки/аренды GPU
- Определите сценарий (чат, суммаризация, RAG, дообучение) и KPI (TTFT, токены/сек, P95, цена/эпизод).
- Рассчитайте VRAM: веса (с учётом битности) + KV-кэш (ваш SLA по контексту) + 20–30% запас.
- Оцените полосу памяти и поддержку кёрнелов внимания.
- Проверьте межсоединения (NVLink?) и сеть, если планируете шардирование.
- Подтвердите диск/кэш для тёплой загрузки весов.
- Заложите профиль квантования (INT8 минимум).
- Обговорите SLA и наблюдаемость: метрики, трейсы, доступ к логам.
- Запланируйте канареечные обновления и регрессионные тесты.
Таблица: влияние решений на скорость и стоимость
| Рычаг | TTFT | Токены/сек | Стоимость | Комментарии |
| Сжатие контекста | ↓ | ↑ косвенно | ↓↓ | Меньше префилла |
| INT8 веса | ≈/↓ | ↑ | ↓ | Хороший «первый шаг» |
| INT4 веса | ≈/↓ | ↑↑ | ↓ | Требует аккуратной калибровки |
| INT8 кэш | ↓ VRAM | ↑ на длинных | ↓ | Стабилен на большинстве задач |
| Батчинг | ↑ P95 | ↑↑ | ↓ | Нужны лимиты по классу |
| Flash-attention | ↓ | ↑ | ≈ | Особенно на длинных контекстах |
| NVLink-шард | ≈ | ≈/↑ | ↑ | Выигрыш зависит от реализации |
Таблица: «какая карта мне нужна?» (ориентиры)
| Цель | Примерная карта | Почему |
| Бюджетный ассистент (7–13B INT8) | 12–16 ГБ VRAM, средняя полоса | Хватает на средние контексты, быстро и дёшево |
| Длинные истории (13B, длинный контекст) | 20–24 ГБ VRAM | Запас под KV-кэш, кэш INT8 |
| Мульти-юзер чат | 24 ГБ+, высокая полоса | Держит несколько сессий с батчингом |
| Дообучение LoRA | 24–48 ГБ, быстрый NVMe | Чекпоинты, стабильный тренинг |
| 33B+ без агрессивного квантования | 48–80 ГБ или 2× NVLink | Иначе не поместится или будет медленно |
*Это не «список моделей», а классы карт по VRAM/полосе и связям.*
Анти-паттерны эксплуатации
- «Купим топовую карту — и всё взлетит». Если не оптимизировать контекст и кёрнелы, прирост будет скромным.
- «Шардируем, потому что можем». Без NVLink и грамотной схемы вы потеряете больше на коммуникациях.
- «Обновим всё до последнего драйвера». Без канареек рискуете скоростью/стабильностью.
- «Батч бесконечно растёт». P95 «стрельнет», UX просядет.
- «Игнорируем кэш». Повторяемые запросы должны ехать из кэша ответов/префилла.
FAQ
Сколько VRAM нужно для 7B-модели? Для весов INT8 достаточно 8–10 ГБ, но учтите KV-кэш и запас: комфортнее 12–16 ГБ, особенно с длинными контекстами.
INT4 «портит» качество? Зависит от калибровки и смешанных битностей. Часто помогает схема «весы INT4, активации FP16, отдельные слои INT8». Подробности — в квантовании.
Что важнее — FLOPS или полоса памяти? Для LLM обычно полоса памяти. Именно она ограничивает внимание, а значит токены/сек.
Нужен ли NVLink для инференса? Только если модель не помещается на один GPU даже с квантованием. Иначе NVLink-сложность не окупается.
Как ускорить TTFT? Короткий префилл (урезайте контекст), тёплые веса на диске/в памяти, спекулятивная декодировка, кэш префилла. Остальное — тонкости рантайма (см. стек инференса LLM).
Почему «вчера было быстро, сегодня медленно»? Сменился контент/длина контекста, промахи кэша, загрузка сети/диска, обновился драйвер/кёрнел. Нужны трейсы, чтобы локализовать регрессию.
Словарь терминов
- VRAM — видеопамять GPU; главный ограничитель больших моделей.
- Полоса памяти — скорость чтения/записи VRAM.
- KV-кэш — ключи/значения внимания для уже сгенерированных токенов.
- TTFT — время до первого токена; чувствуется пользователем.
- Батчинг/микробатч — выполнение нескольких запросов одномоментно.
- Flash-attention — кёрнел внимания с уменьшенным трафиком памяти.
- NVLink — высокоскоростная шина между GPU.
- INT8/INT4 — квантизованные форматы для ускорения и снижения памяти.
