Υπολογισμοί GPU και ML
Σύντομη Περίληψη
Μια επιτυχημένη στοίβα ML σε μια GPU είναι μια συλλογή από λύσεις υλικού, λογισμικού, σχεδιασμού, δεδομένων και παρατηρησιμότητας. Η ομάδα θα πρέπει να είναι σε θέση να κάνει εξίσου καλά:1. Μοντέλα αμαξοστοιχίας (υψηλή χρήση, γρήγορα σημεία ελέγχου, ανοχή διακοπής)
2. εξυπηρετεί το συμπέρασμα (χαμηλή καθυστέρηση σε υψηλή μετατροπή),
3. προβλέψιμα από άποψη κόστους χρήματα (FinOps, ποσοστώσεις, πολυπλοκότητα),
4. να είναι ασφαλής (απομόνωση, αλυσίδα εφοδιασμού, έλεγχος κλίμακας/συνόλων δεδομένων).
Υλικό και τοπολογίες
GPU και μνήμη
Ο όγκος και η ζώνη HBM είναι πιο σημαντικά από το «raw TFLOPS» για LLM/RecSys.
Για το συμπέρασμα πολλών μικρών αιτημάτων - η προτεραιότητα της ενσωματωμένης μνήμης (KV-cache) και τα υψηλά ρολόγια/όριο ισχύος.
Συνδεσιμότητα
NVLink/NVSwitch - μέσα στον κόμβο για γρήγορη πλήρη μείωση.
InfiniBand/RoCE - ανταλλαγή μεταξύ κόμβων για DDP/FSDP (≥ 100-200 Gb/s).
Δένδρο PCie: προσπαθήστε να κρατήσετε το ΕΔΤ και το GPU στον ίδιο κόμβο NUMA. να αποφεύγεται η έντονη συμφόρηση του διακόπτη PCIe.
Basic BIOS/Host Tuning
Τρόποι απόδοσης, απενεργοποίηση C-καταστάσεις (ή αυξημένη ελάχιστη), NUMA επίγνωση, ASPM εκτός σε κρίσιμη PCIe.
Ισχύς: σταθερά προφίλ, όχι επιθετική εξοικονόμηση ισχύος - αλλιώς p99 «τρέμουλοι».
Βασική μαλακή στοίβα
NVIDIA + CUDA + cuDNN/TensorRT μηχανοδηγοί συνδυασμένης συμβατότητας.
Εργαλειοθήκη εμπορευματοκιβωτίων NVIDIA για GPU μέσα σε εμπορευματοκιβώτια.
NCCL (κολεκτίβες), UCX (μεταφορές), Apex/xFormers/Flash-Προσοχή - για ταχύτητα.
Προαιρετικό GDS (GPUDirect Storage) σε γρήγορη NVMe/IB - επιταχύνει τη ροή δεδομένων.
Kubernetes για GPU
Βασικά στοιχεία
NVIDIA GPU Operator (οδηγοί, DCGM, πρόσθετο συσκευής).
Πρόσθετο συσκευής NVIDIA - εξαγωγή πόρων 'nvidia. com/gpu '.
MIG (A100/H100) - διαίρεση μιας φυσικής GPU σε μεμονωμένα προφίλ (για παράδειγμα, '1g. 10gb ').
Διαχωρισμός χρόνου - λογικός διαχωρισμός της GPU εγκαίρως για εργασίες μικρών συμπερασμάτων.
Node Feature Discovery - ετικέτες τύπου GPU/τοπολογίας.
Σχεδιασμός και απομόνωση
Tains/Ανοχές/NodeSelectors για διαχωρισμό εκπαίδευσης/συμπερασμάτων/πειραμάτων.
Διαχειριστής τοπολογίας και διαχειριστής ΚΜΕ (στατικός) για την ευθυγράμμιση NUMA.
Ηφαίστειο/Slurm on K8s/Ray - ουρές αναμονής, προτεραιότητες, πρόληψη για μεγάλες θέσεις εργασίας.
yaml resources:
limits:
nvidia. com/gpu: 1 # or MIG profile: nvidia. com/mig-1g. 10gb: 1 requests:
nvidia. com/gpu: 1
Παράδειγμα μόλυνσης/συγγένειας για ειδική ομάδα κατάρτισης:
yaml tolerations:
- key: "gpu-train"
operator: "Exists"
effect: "NoSchedule"
nodeSelector:
gpu. pool: "train"
Μάθηση: Κλίμακα και βιωσιμότητα
Νόμισμα
DDP - τυποποιημένο νόμισμα δεδομένων.
FSDP/ZeRO - παράμετροι κοπής/χαλάζι/βελτιστοποιητές, μειώνει τη μνήμη.
Tensor/Pipeline Parallel - για πολύ μεγάλα LLM, απαιτεί NVLink/IB.
Βαθμιδωτή συσσώρευση - Αυξάνει την αποτελεσματική παρτίδα χωρίς να αυξάνει τις κορυφές μνήμης.
Μικτή ακρίβεια και βελτιστοποίηση μνήμης
AMP (bf16/fp16) + κλιμάκωση ζημιών· για H100/new - FP8 όπου είναι δυνατόν.
Ενεργοποίηση/Σημείο ελέγχου διαβάθμισης, Flash-Προσοχή για μεγάλες ακολουθίες.
Paged/Chunked KV-cache για προετοιμασία συμπερασμάτων.
Σημεία ελέγχου και ανοχή βλάβης
Συχνά στοιχειώδη σημεία ελέγχου για γρήγορο NVMe/αντικείμενο με retching.
Idempotent jabs (επαναλαμβανόμενα αναγνωριστικά τραύματος).
Spot-stability: πιάνουμε SIGTERM, γρήγορα συγχωνεύουμε κατάσταση? ο προγραμματιστής επιστρέφει την εργασία στην ουρά αναμονής.
Σημαντικές μεταβλητές 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 (εστίαση, αποτελεσματική μνήμη KV, συνεχής παρτίδα).
Τεχνικές επιτάχυνσης
Ποσοτικοποίηση: INT8/FP8/quantum. - aware (AWQ, GPTQ) - μείωση της VRAM, αύξηση της TPS.
Παρτίδα/Συνεχής παρτίδα: εξυπηρετεί εκρήξεις αιτημάτων χωρίς ανάπτυξη p95.
KV-cache pinning in HBM, μείωση πλαισίου· κερδοσκοπική αποκωδικοποίηση (σχέδιο μοντέλου).
Νόμισμα σε GPU: πολλαπλά νήματα/μοντέλα με MIG/time-slice.
Προφίλ στόχου (παράδειγμα SLO)
p95 καθυστέρηση της απόκρισης του μοντέλου συνομιλίας ≤ 300 ms ανά πρόθεμα/μάρκα·
Διακίνηση ≥ 200 ρεύμα/s/GPU στο προφίλ-στόχο·
Οι ουρές p99 ελέγχονται με εκχύλιση (τάξεις QoS και όρια πλαισίου).
Εγκατάσταση τρίτων (θραύσμα)
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 (πίσσα-θραύσματα) για ανάγνωση ροής.
Prefetch/Async I/O: DataLoader- ы с pin-memory, prefetch-pipelines, GDS.
Feature Store για επιγραμμικά χαρακτηριστικά (καταπολέμηση της απάτης/συστάσεις).
Έκδοση: DVC/LakeFS/MIflow Model Registry; λήψη συνόλων δεδομένων, κωδικών και υπερπαραμέτρων.
Παρατηρησιμότητα και SLO
DCGM/Prometheus metrics (ελάχιστες)
'dcgm _ sm _ util', 'dcgm _ fb _ used', 'dcgm _ power _ usage', 'dcgm _ pcie _ rx/tx', 'dcgm _ dram _ bw'
Θερμοκρασίες/συχνότητες και σφάλματα ECC (συναγερμός για ανάπτυξη).
Επιτυγχάνονται λόγοι επιβράδυνσης και επιβράδυνσης (στενό επίπεδο πυρήνα).
Μετρικές υπηρεσίας
Εκφυλιστικά μοντέλα: μάρκες/sec, p50/p95/p99, βάθος αναμονής, βλάβη μνήμης.
Κατάρτιση: βήματα/δευτερόλεπτα, εποχή, πλήρης μείωση της αποτελεσματικότητας,% χρόνος σε I/O.
Ομάδα SLO: συμμόρφωση p95, «προϋπολογισμός σφάλματος» (≥ 99. 5% «επιτυχές» συμπέρασμα).
Προειδοποίηση (ιδέες)
'fb _ used/ fb_total> 0. 95 '5 мин → γκάζι/κλίμακα.
Μείωση TPS κατά N% με την ίδια διάθεση - αποδόμηση μοντέλου/κωδικού.
ECC/αύξηση θερμοκρασίας → εργασία/περιστατικό μετανάστευσης σιδήρου.
Ασφάλεια και απομόνωση
Πολυπλοκότητα: προφίλ MIG ή κόμβοι ανά ομάδα, χώροι ονομάτων/ποσοστώσεις.
IOMMU/PSP, cgroups, προνομιούχος απαγόρευση εμπορευματοκιβωτίων, CAP _ περιορισμός.
MPS (υπηρεσία πολλαπλών επεξεργασιών) - τακτοποιημένη: υψηλότερη διάθεση, αλλά ο διαχωρισμός είναι ασθενέστερος από MIG.
Αλυσίδα εφοδιασμού: υπογραφές εμπορευματοκιβωτίων (συνημμένα), επαλήθευση τεχνουργημάτων, έλεγχος μεταφορτώσεων μοντέλων.
Δεδομένα/βάρη: κρυπτογράφηση σε δίσκο, έλεγχος πρόσβασης (ABAC/RBAC), υδατογραφήματα/μητρώα hash μοντέλων.
FinOps: κόστος, ποσοστώσεις, αυτόματη κλιμάκωση
Κοινοπραξίες κόμβων: «αμαξοστοιχία» (κατά παραγγελία/εφεδρεία), «συνάγεται» (μείγμα κατά παραγγελία + spot), «exp» (spot-heavy).
Σταθερότητα σημείου: συχνά σημεία ελέγχου, γρήγορη επανεκκίνηση της λογικής, ουρές ηφαιστείου με προτεραιότητες.
Αποθεματικά/RI/Σχέδια αποταμίευσης σε σταθερή βάση· αυτόματη απενεργοποίηση κενών κόμβων.
Μοντέλα δεξιού μεγέθους: ποσοτικοποίηση/προσαρμογείς LoRA αντί του «πλήρους» μοντέλου. Επιλογή προφίλ MIG υπό SLA.
Σχέδιο προϋπολογισμού: ποσοστώσεις ανά ομάδα GPU, «κόστος για αιτήσεις/μάρκες 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) Ουρά αναμονής ηφαιστείου για εκπαίδευση
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, εγκατεστημένο πρόσθετο χειριστή/συσκευής.
- MIG/προφίλ τεμαχισμού χρόνου και ποσοστώσεις για χώρους ονομάτων.
- αγωγός DDP/FSDP που δοκιμάστηκε κατά τη στάθμευση· τα σημεία ελέγχου είναι γρήγορα.
- Triton/vLLM с συνεχής παρτίδα· τίθενται στόχοι p95 και TPS.
- Συναγερμοί DCGM/Προμηθέα/Grafana + ECC/θερμοκρασία/μνήμη/TPS.
- Πολιτικές ασφαλείας (ΠΥΠ, συνυπολογισμός, ασάφεια/έλεγχος βάρους).
- FinOps: spot/ri pools, $/1k mockens report, αδρανής αυτόματη διακοπή λειτουργίας.
Κοινά σφάλματα
Η εκπαίδευση και τα συμπεράσματα αναμειγνύονται στους ίδιους κόμβους χωρίς κηλίδες → η GPU/IO είναι «πριονισμένη» μεταξύ τους.
Δεν υπάρχουν σημεία ελέγχου και λογική προφύλαξης → απώλεια προόδου επί τόπου.
Απουσία DCGM-μετρήσεων → «τυφλή» διάθεση και υπερθέρμανση.
Αγνοώντας την τοπολογία NUMA/PCIe → χαμηλό εύρος ζώνης NCCL.
Εσφαλμένα προφίλ MIG/time-slice → p99 και προφίλ «Out of Memory».
HPA από CPU αντί για TPS/καθυστέρηση → καθυστερημένη κλίμακα.
ιδιαιτερότητα iGaming/fintech
Αντι-απάτη/βαθμολόγηση: συμπέρασμα SLA ≤ 50 ms p95 σχετικά με τις κρίσιμες διαδρομές (πληρωμές/συμπεράσματα)· διατηρεί το «εφεδρικό» φως του μοντέλου.
Συστάσεις/εξατομίκευση: επί της πολιτικής/εκτός πολιτικής μάθηση τη νύχτα, επιγραμμικά χαρακτηριστικά - χαμηλή καθυστέρηση.
Chat Assistants/RAG: Content Cache, Request Dedeuplication, Guardrails δείκτες αναζήτησης διανυσματικών φορέων.
Κορυφές (αγώνες/τουρνουά): προ-προθέρμανση μοντέλα/kv-cache, αύξηση minReplicas, QoS τάξεις για VIP.
Σύνολο
Η στοίβα υπολογιστών GPU γίνεται πραγματικά αποδοτική όταν το υλικό (HBM/NVLink/IB), η μήτρα λογισμικού (CUDA/NCCL), ο προγραμματισμός (MIG, σειρά αναμονής, tains), τα δεδομένα (γρήγορος αγωγός/GDS), παρατηρησιμότητα (DCGGGM M M )/SLO) και το κόστος (FinOps/ποσοστώσεις) εργάζονται σε συνεννόηση. Πιάστε αυτό στην πολιτική IaC και cluster - και μπορείτε να πάρετε προβλέψιμες ταχύτητες μάθησης, σταθερό χαμηλό p95-latency συμπέρασμα, και μια διαφανή GPU οικονομία ρολογιού.