GH GambleHub

GPU-ноды и ML-вычисления

Краткое резюме

Успешный ML-стек на GPU — это совокупность решений по железу, софту, планированию, данным и наблюдаемости. Кластер должен уметь одинаково хорошо:

1. обучать модели (высокая утилизация, быстрые чекпойнты, устойчивость к прерываниям),

2. обслуживать инференс (низкая p95-латентность при высокой конверсии),

3. стоить предсказуемых денег (FinOps, квоты, мульти-тенантность),

4. быть безопасным (изоляция, supply chain, контроль весов/датасетов).

Железо и топологии

ГПУ и память

HBM-объем и полоса важнее «сырых TFLOPS» для LLM/RecSys.
Для инференса множества мелких запросов — приоритет встроенной памяти (KV-cache) и высокий clocks/power limit.

Связности

NVLink/NVSwitch — внутри узла для быстрых all-reduce.
InfiniBand/RoCE — межузловой обмен для DDP/FSDP (≥ 100–200 Gb/s).
PCIe-дерево: старайтесь, чтобы NIC и GPU сидели на одном NUMA-узле; избегайте «горячих» PCIe-switch bottleneck.

Базовый тюнинг BIOS/узла

Режимы Performance, отключение C-states (или повышенные минимальные), NUMA awareness, ASPM off на критичных PCIe.
Питание: стабильные профили, не агрессивный power-save — иначе «дрожит» p99.

Базовый софт-стек

Драйверы NVIDIA + CUDA + cuDNN/TensorRT, согласованные по матрице совместимости.
NVIDIA Container Toolkit для GPU внутри контейнеров.
NCCL (коллективки), UCX (транспорт), Apex/xFormers/Flash-Attention — для скорости.
Опционально GDS (GPUDirect Storage) на быстрых NVMe/IB — ускоряет поток данных.

Kubernetes для GPU

Ключевые компоненты

NVIDIA GPU Operator (драйверы, DCGM, device-plugin).
NVIDIA Device Plugin — экспорт ресурсов `nvidia.com/gpu`.
MIG (A100/H100) — деление одного физического GPU на изолированные профили (например, `1g.10gb`).
Time-slicing — логическое дробление GPU по времени для мелких задач инференса.
Node Feature Discovery — метки по типам GPU/топологии.

Планирование и изоляция

Taints/Tolerations/NodeSelectors для разделения тренинга/инференса/экспериментов.
Topology Manager и CPU Manager (static) для NUMA-выравнивания.
Volcano / Slurm on K8s / Ray — очереди, приоритеты, preemption для больших джоб.

Пример запроса GPU в Pod:
yaml resources:
limits:
nvidia. com/gpu: 1 # or MIG profile: nvidia. com/mig-1g. 10gb: 1 requests:
nvidia. com/gpu: 1
Пример taint/affinity для выделенного пула тренировок:
yaml tolerations:
- key: "gpu-train"
operator: "Exists"
effect: "NoSchedule"
nodeSelector:
gpu. pool: "train"

Обучение: масштаб и устойчивость

Параллелизм

DDP — стандартный дата-параллелизм.
FSDP/ZeRO — шардирование параметров/градов/оптимайзеров, снижает память.
Tensor/Pipeline Parallel — для очень крупных LLM; требует NVLink/IB.
Gradient Accumulation — увеличивает эффективный batch без роста пиков памяти.

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

AMP (bf16/fp16) + loss scaling; для H100/новых — FP8 где возможно.
Activation/Gradient Checkpointing, Flash-Attention для длинных последовательностей.
Paged/Chunked KV-cache для подготовки к инференсу.

Чекпойнты и отказоустойчивость

Частые инкрементальные чекпойнты на быстрые NVMe/объектку с ретеншном.
Идемпотентные джобы (повторяемые ран-идентификаторы).
Spot-устойчивость: ловим SIGTERM, быстро сливаем state; планировщик возвращает джобу в очередь.

Важные переменные NCCL/сети (пример)

bash
NCCL_IB_HCA=mlx5_0
NCCL_SOCKET_IFNAME=eth1
NCCL_P2P_LEVEL=NVL
NCCL_MIN_NRINGS=8
NCCL_NET_GDR_LEVEL=SYS

Инференс: низкая латентность, высокая отдача

Сервинг-фреймворки

Triton Inference Server — единый сервер для TensorRT/ONNX/TS/PyTorch.
vLLM / TGI / TensorRT-LLM — LLM-специалисты (paged-attention, эффективный KV-cache, continuous batching).

Приемы ускорения

Quantization: INT8/FP8/квант.-aware (AWQ, GPTQ) — уменьшение VRAM, рост TPS.
Batching/Continuous batching: обслуживать пачки запросов без роста p95.
KV-cache pinning в HBM, уменьшение контекстов; speculative decoding (draft-модель).
Concurrency на GPU: несколько потоков/моделей при MIG/time-slice.

Профили цели (пример SLO)

p95 латентность ответа чат-модели ≤ 300 мс на префикс/токен;

Throughput ≥ 200 ток/с/GPU на целевом профиле;

Хвосты p99 контролируем шедулингом (QoS классы и лимиты контекстов).

Triton deployment (фрагмент)

yaml env:
- name: CUDA_VISIBLE_DEVICES value: "0"
- name: TRITONSERVER_MODEL_CONTROL value: "explicit"
args: ["--backend-config=tensorrt,output_memory_pool_size=1024"]

Данные и пайплайны

Форматы: Parquet/Arrow, webdataset (tar-шарды) для потокового чтения.
Prefetch/Async I/O: DataLoader-ы с pin-memory, prefetch-pipelines, GDS.
Feature Store для онлайн-фич (антифрод/рекомендации).
Версионирование: DVC/LakeFS/MLflow Model Registry; фиксируйте датасеты, код и гиперпараметры.

Наблюдаемость и SLO

DCGM/Prometheus метрики (минимум)

`dcgm_sm_util`, `dcgm_fb_used`, `dcgm_power_usage`, `dcgm_pcie_rx/tx`, `dcgm_dram_bw`

Температуры/частоты и ECC errors (алерт на рост).
Achieved Occupancy и stall reasons (узкий слой ядра).

Сервисные метрики

Генеративные модели: токены/сек, p50/p95/p99, queue depth, отказ по памяти.
Тренинг: шаги/сек, время эпохи, эффективность all-reduce, % времени в I/O.
SLO-панель: комплаенс p95, «бюджет ошибок» (≥ 99.5% «успешных» инференсов).

Алертинг (идеи)

`fb_used / fb_total > 0.95` 5 мин → throttle/scale-out.
Падение TPS на N% при той же утилизации — деградация модели/кода.
Рост ECC/температуры → миграция джоб/инцидент у железа.

Безопасность и изоляция

Мульти-тенантность: MIG-профили или ноды «per-team», namespaces/quotas.
IOMMU/PSP, cgroups, запрет привилегированных контейнеров, ограничение `CAP_`.
MPS (multi-process service) — аккуратно: выше утилизация, но разделение слабее, чем MIG.
Supply chain: подписи контейнеров (cosign), верификация артефактов, контроль выгрузок моделей.
Данные/веса: шифрование на диске, контроль доступа (ABAC/RBAC), «водяные знаки»/хэш-реестры моделей.

FinOps: стоимость, квоты, автоскейл

Пулы узлов: `train` (on-demand/резервы), `infer` (микс on-demand+spot), `exp` (spot-heavy).
Spot-устойчивость: частые чекпойнты, быстрая перезапускная логика, очереди Volcano с приоритетами.
Резервы/RI/Savings Plans на стабильную базу; авто-выключение пустых узлов.
Right-sizing моделей: квантование/LoRA-адаптеры вместо «полной» модели; выбор профилей MIG под SLA.
Контур бюджетов: квоты GPU-часов per-team, «стоимость за 1k запросов/токенов».

Шаблоны YAML и артефакты

1) Профиль MIG (концептуально)

yaml apiVersion: nvidia. com/v1 kind: MigStrategy metadata: { name: mig-a100-1g10gb }
spec:
deviceFilter: "a100"
mode: single resources:
- profile: "1g. 10gb"
count: 7

2) Volcano очередь для тренинга

yaml apiVersion: scheduling. volcano. sh/v1beta1 kind: Queue metadata: { name: train-q }
spec:
weight: 100 reclaimable: true capability:
resources:
- name: nvidia. com/gpu quantity: 64

3) KEDA для автоскейла инференса по глубине очереди

yaml apiVersion: keda. sh/v1alpha1 kind: ScaledObject metadata: { name: llm-infer }
spec:
scaleTargetRef: { name: llm-deploy }
pollingInterval: 5 minReplicaCount: 2 maxReplicaCount: 80 triggers:
- type: rabbitmq metadata:
queueName: infer-queue mode: QueueLength value: "200"

Чек-лист запуска GPU-кластера

  • NVLink/IB карта топологии; NIC/GPU на одном NUMA.
  • Драйверы/CUDA согласованы, Operator/Device-plugin установлены.
  • MIG/time-slicing профили и квоты на неймспейсы.
  • DDP/FSDP pipeline обкатан на стейджинге; чекпойнты быстрые.
  • Triton/vLLM с continuous batching; цели p95 и TPS заданы.
  • DCGM/Prometheus/Grafana + алерты ECC/температура/память/TPS.
  • Политики безопасности (PSP, cosign, обфускация/контроль весов).
  • FinOps: пулы spot/ri, отчет «$/1k токенов», авто-шутдаун idle.

Типичные ошибки

Смешивают тренинг и инференс на одних нодах без taints → «пилят» друг другу GPU/IO.
Нет чекпойнтов и preemption-логики → потеря прогресса на spot.
Отсутствие DCGM-метрик → «слепая» утилизация и перегрев.
Игнор NUMA/PCIe топологии → низкая полоса NCCL.
Неверные профили MIG/time-slice → p99 латентности и «Out of Memory».
HPA по CPU вместо TPS/латентности → поздний скейл.

Специфика iGaming/финтех

Антифрод/скоринг: SLA инференса ≤ 50 мс p95 на критичных путях (платежи/выводы); держите легкую модель «fallback».
Рекомендации/персонализация: on-policy/off-policy обучение ночью, online-features — низкая латентность.
Чат-помощники/RAG: кэш контента, дедеупликация запросов, guardrails; шардирование индексов векторного поиска.
Пики (матчи/турниры): предварительный разогрев моделей/kv-cache, увеличение minReplicas, QoS-классы для VIP.

Итог

Стек GPU-вычислений становится действительно эффективным, когда железо (HBM/NVLink/IB), софтовая матрица (CUDA/NCCL), планирование (MIG, очередь, taints), данные (быстрый пайплайн/GDS), наблюдаемость (DCGM/SLO) и стоимость (FinOps/квоты) работают согласованно. Закрепите это в IaC и политике кластеров — и вы получите предсказуемую скорость обучения, стабильный инференс с низкой p95-латентностью и прозрачную экономику GPU-часов.

Contact

Свяжитесь с нами

Обращайтесь по любым вопросам или за поддержкой.Мы всегда готовы помочь!

Начать интеграцию

Email — обязателен. Telegram или WhatsApp — по желанию.

Ваше имя необязательно
Email необязательно
Тема необязательно
Сообщение необязательно
Telegram необязательно
@
Если укажете Telegram — мы ответим и там, в дополнение к Email.
WhatsApp необязательно
Формат: +код страны и номер (например, +380XXXXXXXXX).

Нажимая кнопку, вы соглашаетесь на обработку данных.