Węzły GPU i obliczenia ML
Krótkie podsumowanie
Udany stos ML na GPU to zbiór rozwiązań sprzętowych, oprogramowania, planowania, danych i obserwowalności. Klaster powinien być w stanie radzić sobie równie dobrze:1. Modele pociągów (wysokie wykorzystanie, szybkie punkty kontrolne, tolerancja przerw)
2. służyć wnioskowi (niskie opóźnienie p95 przy wysokiej konwersji),
3. przewidywane koszty (FinOp, kwoty, wielopłatowość),
4. być bezpieczne (izolacja, łańcuch dostaw, kontrola skali/zbiorów danych).
Sprzęt i topologie
GPU i pamięć
Objętość i pasmo HBM są ważniejsze niż "surowe TFLOPS' dla LLM/RecSys.
Na wniosek wielu małych zapytań - priorytet pamięci wbudowanej (KV-cache) i wysoki limit zegarów/mocy.
Łączność
NVLink/NVSwitch - wewnątrz węzła do szybkiej redukcji.
InfiniBand/RoCE - wymiana między węzłami dla DDP/FSDP (≥ 100-200 Gb/s).
PCIe drzewo: spróbuj utrzymać NIC i GPU na tym samym węźle NUMA; unikać gorącego wąskiego gardła przełącznika PCIe.
Podstawowe BIOS/Tuning Host
Tryby działania, wyłączanie stanów C (lub zwiększone minimum), świadomość NUMA, ASPM wyłączone na krytycznym PCIe.
Moc: stabilne profile, nie agresywne oszczędzanie mocy - inaczej p99 „drżenie”.
Podstawowy miękki stos
NVIDIA + CUDA + cuDNN/TensorRT matrycy kompatybilności dopasowane sterowniki.
Zestaw narzędzi do pojemników NVIDIA do GPU wewnątrz pojemników.
NCCL (kolektory), UCX (transport), Apex/xFormers/Flash-Attention - dla prędkości.
Opcjonalny GDS (GPUDirect Storage) na szybkim NVMe/IB - przyspiesza przepływ danych.
Kubernetes dla GPU
Kluczowe komponenty
NVIDIA GPU Operator (sterowniki, DCGM, urządzenie-wtyczka).
Wtyczka urządzenia NVIDIA - eksport zasobów 'nvidia. com/gpu '.
MIG (A100/H100) - podział jednego fizycznego GPU na izolowane profile (na przykład, '1g. 10gb ').
Krojenie czasowe - logiczne dzielenie GPU w czasie dla małych zadań wnioskowych.
Odkrycie funkcji węzła - etykiety według typu/topologii GPU.
Planowanie i izolacja
Tains/Tolerances/NodeSelectors to separate training/inference/experiments.
Topology Manager i CPU Manager (statyczny) do dostosowania NUMA.
Wulkan/Slurm na K8s/Ray - kolejki, priorytety, preempcja do dużych miejsc pracy.
yaml resources:
limits:
nvidia. com/gpu: 1 # or MIG profile: nvidia. com/mig-1g. 10gb: 1 requests:
nvidia. com/gpu: 1
Przykład skażenia/powinowactwa dla specjalnej puli szkoleniowej:
yaml tolerations:
- key: "gpu-train"
operator: "Exists"
effect: "NoSchedule"
nodeSelector:
gpu. pool: "train"
Uczenie się: skala i zrównoważony rozwój
Równoczesność
DDP - standardowa współistnienie danych.
FSDP/ZeRO - shading parameters/grail/optimizers, redukuje pamięć.
Równoległy tensor/rurociąg - dla bardzo dużych LLM; wymaga NVLink/IB.
Gradient Accumulation - Zwiększa efektywną partię bez zwiększania szczytów pamięci.
Mieszana dokładność i optymalizacja pamięci
AMP (bf16/fp16) + skalowanie strat; dla H100/new - FP8 w miarę możliwości.
Aktywacja/Gradient Checkpointing, Flash-Attention dla długich sekwencji.
Paged/Chunked KV-cache do przygotowania do wniosku.
Punkty kontrolne i tolerancja błędów
Częste przyrostowe punkty kontrolne dla szybkiego NVMe/obiektu z odchyleniem.
Idempotent jabs (powtarzalne identyfikatory ran).
Stabilność na miejscu: łapiemy SIGTERM, szybko łączy stan; harmonogram zwraca zadanie do kolejki.
Ważne zmienne NCCL/Network (przykład)
bash
NCCL_IB_HCA=mlx5_0
NCCL_SOCKET_IFNAME=eth1
NCCL_P2P_LEVEL=NVL
NCCL_MIN_NRINGS=8
NCCL_NET_GDR_LEVEL=SYS
Wniosek: niskie opóźnienie, wysoki zwrot
Obsługa ram
Triton Inference Server jest jednym serwerem dla TensorRT/ONNX/TS/PyTorch.
vLLM/TGI/TensorRT-LLM - specjaliści LLM (przystawka-uwaga, skuteczna pamięć podręczna KV, ciągłe dozowanie).
Techniki przyspieszania
Kwantyzacja: INT8/FP8/quantum. -aware (AWQ, GPTQ) - spadek VRAM, wzrost TPS.
Dozowanie/ciągłe dozowanie: podawać wybuchy żądań bez wzrostu p95.
KV-cache szpilki w HBM, redukcja kontekstu; dekodowanie spekulacyjne (projekt modelu).
Równoczesność na GPU: wiele wątków/modeli z MIG/time-slice.
Profile docelowe (przykład SLO)
p95 opóźnienie odpowiedzi modelu czatu ≤ 300 ms na przedrostek/token;
przepustowość ≥ 200 prądów/s/GPU na profilu docelowym;
p99 ogony są kontrolowane przez sheduling (klasy QoS i limity kontekstowe).
Rozmieszczenie trytonu (fragment)
yaml env:
- name: CUDA_VISIBLE_DEVICES value: "0"
- name: TRITONSERVER_MODEL_CONTROL value: "explicit"
args: ["--backend-config=tensorrt,output_memory_pool_size=1024"]
Dane i rurociągi
Formaty: Parkiet/strzałka, webdataset (tar-shards) do odczytu strumieniowego.
Prefetch/Async I/O: Pin-memory, prefetch-pipelines, GDS.
Funkcja Sklep dla funkcji online (przeciwdziałanie oszustwom/zalecenia).
Wersioning: rejestr modeli DVC/L, FS/MLFlow; przechwytywanie zbiorów danych, kodu i hiperparametrów.
Obserwowalność i SLO
DCGM/Prometheus metrics (minimum)
'dcgm _ sm _ util', 'dcgm _ fb _ used', 'dcgm _ power _ use', 'dcgm _ pcie _ rx/tx', 'dcgm _ dram _ bw'
Temperatury/częstotliwości i błędy ECC (uwaga na wzrost).
Osiągnięty Obłożenie i powody straganu (wąska warstwa rdzenia).
Mierniki usług
Modele generacyjne: żetony/sec, p50/p95/p99, głębokość kolejki, awaria pamięci.
Trening: kroki/s, czas ery, wydajność redukcyjna, czas% w I/O.
Panel SLO: zgodność p95, „budżet błędu” (≥ 99. 5% „udanych” wniosków).
Ostrzeganie (pomysły)
"fb _ used/ fb_total> 0. 95 '5 мила → przepustnica/skala-out.
Spadek TPS o N% przy tej samej utylizacji - degradacja modelu/kodu.
ECC/wzrost temperatury → migracja żelaza w pracy/incydent.
Bezpieczeństwo i izolacja
Wielopoziomowość: profile MIG lub węzły zespołu, obszary nazw/kontyngenty.
IOMMU/PSP, cgroups, uprzywilejowany kontener barring, CAP _ constraint.
MPS (multi-process service) - schludny: wyższa dyspozycja, ale separacja jest słabsza niż MIG.
Łańcuch dostaw: podpisy kontenerów (cosign), weryfikacja artefaktów, kontrola przesyłania modeli.
Dane/wagi: szyfrowanie na dysku, kontrola dostępu (ABAC/RBAC), znaki wodne/rejestry skrótów modeli.
FinOps: koszty, kwoty, autoskale
Puli węzłów: „pociąg” (na żądanie/rezerwy), „infer” (mieszanka na żądanie + miejsce), „exp” (miejsce ciężkie).
Stabilność spotu: częste punkty kontrolne, szybka logika ponownego uruchomienia, kolejki wulkanu z priorytetami.
Rezerwy/RI/plany oszczędności do stabilnej bazy; automatycznie wyłączyć puste węzły.
Modele prawej wielkości: adaptery kwantyzacyjne/LoRA zamiast „pełnego” modelu; Wybierz profile MIG w SLA.
Zarys budżetu: kontyngenty godzinowe GPU na zespół, „koszt 1k wniosków/żetonów”.
Wzory i artefakty YAML
1) profil MIG (koncepcyjny)
yaml apiVersion: nvidia. com/v1 kind: MigStrategy metadata: { name: mig-a100-1g10gb }
spec:
deviceFilter: "a100"
mode: single resources:
- profile: "1g. 10gb"
count: 7
2) Kolejka wulkanu do treningu
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 dla autoskali inferencji głębokości skrętu
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 kontrolna startowa klastra GPU
- Mapa topologii NVLink/IB; NIC/GPU na jednym NUMERA.
- Sterowniki/CUDA spójne, zainstalowany operator/wtyczka urządzenia.
- Profile i kwoty MIG/krojenia czasowego dla obszarów nazw.
- Rurociąg DDP/FSDP testowany na etapie postoju; punkty kontrolne są szybkie.
- Tryton/vLLM - ciągła partia; Wyznaczono cele p95 i TPS.
- DCGM/Prometheus/Grafana + alerty ECC/temperatura/pamięć/TPS.
- Polityka bezpieczeństwa (PSP, cosign, waga obfuscation/control).
- FinOps: baseny spot/ri, raport tokenów $/1k, bezczynne automatyczne wyłączenie.
Częste błędy
Trening i wnioskowanie są mieszane na tych samych węzłach bez pasów → GPU/IO jest „piłowane” do siebie.
Brak punktów kontrolnych i logika preempcji → utrata postępu na miejscu.
Brak DCGM-metrics → „ślepa” utylizacja i przegrzanie.
Ignorowanie topologii NUMA/PCIe → niska przepustowość NCCL.
Niepoprawne profile MIG/time-slice → p99 latency i „Out of Memory”.
HPA przez procesor zamiast TPS/latency → późna skala.
iGaming/specyfika fintechu
Antyfraud/punktacja: wnioskowanie SLA ≤ 50 ms p95 na ścieżkach krytycznych (płatności/wnioski); Zachowaj światło modelu „fallback”.
Zalecenia/personalizacja: uczenie się nocą w ramach polityki/poza polityką, funkcje online - niskie opóźnienia.
Asystenci czatu/RAG: pamięć podręczna treści, dedykowanie zapytania, szyny ochronne; indeksy wyszukiwania wektorów.
Szczyty (mecze/turnieje): wstępnie rozgrzać modele/kv-cache, zwiększyć minReplicas, klasy QoS dla VIP.
Razem
Stos obliczeniowy GPU staje się naprawdę wydajny, gdy sprzęt (HBM/NVLink/IB), matryca oprogramowania (CUDA/NCCL), harmonogram (MIG, kolejka, tains), dane (szybki rurociąg/GDS), obserwowalność (DCGM/SLO) i koszty (FinOps/kwoty) pracują w ramach koncertu. Wrzuć to do polityki IaC i klastra - i dostajesz przewidywalne prędkości uczenia się, stabilne niskie p95-latency i przejrzystą gospodarkę zegarową GPU.