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; для Н100/нових - 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% при тій же утилізації - деградація моделі/коду.
Зростання ЄСС/температури → міграція джоб/інцидент біля заліза.

Безпека та ізоляція

Мульти-тенантність: 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).

Натискаючи кнопку, ви погоджуєтесь на обробку даних.