Noduri GPU și calcule ML
Scurt rezumat
O stivă ML de succes pe un GPU este o colecție de soluții hardware, software, planificare, date și observabilitate. Clusterul ar trebui să se poată descurca la fel de bine:1. Modele de tren (utilizare ridicată, puncte de control rapide, toleranță întreruptă)
2. servi inferență (p95-latență scăzută la conversie ridicată),
3. bani previzibili (FinOps, cote, multi-chirie)
4. fiți în siguranță (izolare, lanț de aprovizionare, controlul scalelor/seturilor de date).
Hardware și topologii
GPU și memorie
Volumul și banda HBM este mai importantă decât „TFLOPS brut” pentru LLM/RecSys.
Pentru deducția multor cereri mici - prioritatea memoriei încorporate (KV-cache) și limita mare de ceasuri/putere.
Conectivitate
NVLink/NVSwitch - în interiorul nodului pentru reducerea completă rapidă.
InfiniBand/RoCE - schimb inter-nod pentru DDP/FSDP (≥ 100-200 Gb/s).
Arborele PCIe: încercați să păstrați NIC și GPU pe același nod NUMA; evitați blocajul PCIe-switch fierbinte.
BIOS de bază/Tuning gazdă
Moduri de performanță, dezactivarea stărilor C (sau creșterea minimă), conștientizarea NUMA, ASPM off pe PCIe critic.
Putere: profile stabile, nu agresiv de economisire a puterii - altfel p99 „tremură”.
Stivă moale de bază
Driverele de compatibilitate NVIDIA + CUDA + cuDNN/TensorRT se potrivesc.
NVIDIA Container Toolkit pentru GPU-uri în interiorul containerelor.
NCCL (colective), UCX (transport), Apex/xFormers/Flash-Atenție - pentru viteză.
GDS opțional (GPUDirect Storage) pe NVMe/IB rapid - accelerează fluxul de date.
Kubernetes pentru GPU
Componente cheie
NVIDIA GPU Operator (drivere, DCGM, dispozitiv-plugin).
NVIDIA Device Plugin - export de resurse "nvidia. com/gpu '.
MIG (A100/H100) - împărțirea unui GPU fizic în profile izolate (de exemplu, '1g. 10gb ').
Tăierea timpului - împărțirea logică a GPU în timp pentru sarcini mici de inferență.
Node Feature Discovery - etichete după tipul GPU/topologie.
Planificarea și izolarea
Tains/Tolerations/NodeSelectors pentru a separa de formare/inferență/experimente.
Topologie Manager și CPU Manager (static) pentru alinierea NUMA.
Vulcan/Slurm pe K8s/Ray - cozi, priorități, preempțiune pentru locuri de muncă mari.
yaml resources:
limits:
nvidia. com/gpu: 1 # or MIG profile: nvidia. com/mig-1g. 10gb: 1 requests:
nvidia. com/gpu: 1
Exemplu de faint/afinitate pentru un bazin de formare dedicat:
yaml tolerations:
- key: "gpu-train"
operator: "Exists"
effect: "NoSchedule"
nodeSelector:
gpu. pool: "train"
Învățare: Scară și durabilitate
Concurență
DDP - concurență standard de date.
FSDP/ZeRO - partajarea parametrilor/grindinei/optimizatorilor, reduce memoria.
Tensor/Pipeline Parallel - pentru LLM-uri foarte mari; necesită NVLink/IB.
Acumularea degradeurilor - Crește lotul eficient fără a crește vârfurile de memorie.
Optimizări de precizie și memorie mixte
AMP (bf16/fp16) + scalarea pierderilor; pentru H100/new - FP8 acolo unde este posibil.
Activare/Gradient Checkpointing, Flash-Atenție pentru secvențe lungi.
Paged/Chunked KV-cache pentru a se pregăti pentru inferență.
Puncte de control și toleranță la erori
Puncte de control incrementale frecvente pentru NVMe rapid/obiect cu retching.
Idempotent jabs (identificatori repetitivi ai rănilor).
Stabilitate la fața locului: prindem SIGTERM, îmbinăm rapid starea; programatorul returnează treaba la coadă.
Importante variabile NCCL/rețea (Exemplu)
bash
NCCL_IB_HCA=mlx5_0
NCCL_SOCKET_IFNAME=eth1
NCCL_P2P_LEVEL=NVL
NCCL_MIN_NRINGS=8
NCCL_NET_GDR_LEVEL=SYS
Deducție: latență scăzută, randament ridicat
Servirea cadrelor
Triton Inference Server este un singur server pentru TensorRT ONNX TS PyTorch.
vLLM/TGI/TensorRT-LLM - specialiști LLM (paged-atenție, KV-cache eficient, lotare continuă).
Tehnici de accelerare
Cantitate: INT8/FP8/quantum. -aware (AWQ, GPTQ) - scăderea VRAM, creșterea TPS.
Batching/Lotare continuă: servi explozii de cereri fără p95 creştere.
KV-cache pinning în HBM, reducerea contextului; decodare speculativă (proiect de model).
Concurență pe GPU: mai multe fire/modele cu MIG/felie de timp.
Profile țintă (exemplu SLO)
p95 latența răspunsului modelului de chat ≤ 300 ms per prefix/token;
Transfer ≥ 200 curent/s/GPU pe profilul țintă;
cozile p99 sunt controlate prin vărsare (clase QoS și limite de context).
Desfășurarea tritonului (fragment)
yaml env:
- name: CUDA_VISIBLE_DEVICES value: "0"
- name: TRITONSERVER_MODEL_CONTROL value: "explicit"
args: ["--backend-config=tensorrt,output_memory_pool_size=1024"]
Date și conducte
Formate: Parchet/Săgeată, webdataset (tar-cioburi) pentru lectură streaming.
Prefetch/Async I/O: DataLoader - ы с pin-memorie, prefetch-conducte, GDS.
Feature Store pentru caracteristici online (anti-fraudă/recomandări).
Versioning: DVC/LakeFS/MLflow Model Registry; captura seturi de date, cod, și hiperparametre.
Observabilitate și SLO
DCGM/Prometheus metrics (minim)
'dcgm _ sm _ util', 'dcgm _ fb _ used', 'dcgm _ power _ usage', 'dcgm _ pcie _ rx/tx', 'dcgm _ dram _ bw'
Temperaturi/frecvențe și erori ECC (alertă pentru creștere).
Atins motive de ocupare și stand (strat îngust de bază).
Măsurători de serviciu
Modele generative: jetoane/sec, p50/p95/p99, adâncimea cozii, defectarea memoriei.
Formare: pași/sec, timp de epocă, eficiență tot-reduce,% timp în I/O.
Panoul SLO: conformitatea p95, „bugetul de eroare” (≥ 99. 5% inferență „de succes”).
Alertare (idei)
'fb _ used/ fb_total> 0. 95 '5 мин → accelerație/scară-out.
TPS scade cu N% cu aceeași eliminare - degradarea modelului/codului.
ECC/creșterea temperaturii → migrația fierului de muncă/incident.
Siguranță și izolare
Multi-chirie: profile MIG sau noduri per echipă, namespaces/cote.
IOMMU/PSP, cgroups, privilegiate container barring, CAP _ constraint.
MPS (serviciu multi-proces) - îngrijit: eliminare mai mare, dar separarea este mai slabă decât MIG.
Lanțul de aprovizionare: semnături container (cosign), verificarea artefactelor, controlul încărcărilor modelului.
Date/greutăți: criptare pe disc, control acces (ABAC/RBAC), filigrane/registre hash ale modelelor.
FinOps: cost, cote, autoscale
Node pools: "tren' (on-demand/reserves)," dedu "(mix on-demand + spot)," exp "(spot-heavy).
Stabilitate la fața locului: puncte de control frecvente, logică de repornire rapidă, cozi vulcanice cu priorități.
Planuri de rezerve/RI/economii la o bază stabilă; dezactivează automat nodurile goale.
Modele de dimensionare dreaptă: adaptoare de cantitate/LoRA în loc de modelul „plin”; Selectați profilurile MIG sub SLA.
Schița bugetului: cote GPU-oră pe echipă, „costul pentru cereri/jetoane 1k”.
Modele și artefacte YAML
1) profil MIG (conceptual)
yaml apiVersion: nvidia. com/v1 kind: MigStrategy metadata: { name: mig-a100-1g10gb }
spec:
deviceFilter: "a100"
mode: single resources:
- profile: "1g. 10gb"
count: 7
2) Coadă de vulcan pentru antrenament
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 pentru autoscala de inferență la adâncime
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"
Lista de verificare a clusterului GPU
- NVLink/IB topologie hartă; NIC/GPU pe un singur NUMA.
- Drivere/CUDA consecvent, Operator/Dispozitiv-plugin instalat.
- MIG/profile de tăiere a timpului și cote pentru spațiile de nume.
- Conductă DDP/FSDP testată pe stadializare; Punctele de control sunt rapide.
- Triton/vLLM с lotare continuă; obiectivele p95 și TPS sunt stabilite.
- DCGM/Prometheus/Grafana + alerte ECC/temperatură/memorie/TPS.
- Politici de securitate (PSP, cosign, obfuscation greutate/control).
- FinOps: spot/ri pools, $/1k tokens report, inactiv auto-shutdown.
Erori comune
Antrenamentul și inferența sunt amestecate pe aceleași noduri fără colțuri → GPU/IO este „tăiat” între ele.
Nu există puncte de control și logica de preemțiune → pierderea progresului la fața locului.
Absența măsurătorilor DCGM → eliminarea „oarbă” și supraîncălzirea.
Ignorarea topologiei NUMA/PCIe → lățime de bandă NCCL scăzută.
MIG/felie de timp incorectă → latența p99 și profilurile „Out of Memory”.
HPA de CPU în loc de TPS/latență → scară târzie.
Specificitatea iGaming/fintech
Antifraudă/scoring: deducere SLA ≤ 50 ms p95 privind căile critice (plăți/concluzii); păstrează lumina modelului „rezervă”.
Recomandări/personalizare: învățare on-policy/off-policy pe timp de noapte, caracteristici online - latență scăzută.
Asistenți de chat/RAG: Cache conținut, Dedeuplicare cerere, Guardrails; ascuţirea indicilor de căutare vectorială.
Vârfuri (meciuri/turnee): modele de pre-încălzire/kv-cache, creșterea minReplicas, clase QoS pentru VIP.
Total
Stiva de calcul GPU devine foarte eficientă atunci când hardware (HBM/NVLink/IB), matrice software (CUDA/NCCL), programare (MIG, coadă, cauciucuri), date (conducte rapide/GDS), observabilitate (DCCGGGS S S S M/SLO) și costul (FinOps/cote) lucrează în concert. Pin acest lucru în IaC și politica de cluster - și veți obține viteze de învățare predictibile, stabil inferență p95-latență scăzută, și o economie transparentă ceas GPU.