گره های GPU و محاسبات ML
خلاصه ای کوتاه
پشته ML موفق در GPU مجموعه ای از سخت افزار، نرم افزار، برنامه ریزی، داده ها و راه حل های قابل مشاهده است. خوشه باید بتواند به همان اندازه خوب عمل کند:1. مدل های قطار (استفاده زیاد، ایست بازرسی سریع، تحمل وقفه)
2. خدمت استنتاج (کم p95 تاخیر در تبدیل بالا)،
3. هزینه پول قابل پیش بینی (FinOps، سهمیه، چند اجاره)،
4. ایمن باشید (جداسازی، زنجیره تامین، کنترل مقیاس/مجموعه داده).
سخت افزار و توپولوژی
GPU و حافظه
حجم و گروه HBM مهم تر از «TFLOPS خام» برای LLM/RecSys است.
برای استنتاج بسیاری از درخواست های کوچک - اولویت ساخته شده در حافظه (KV-کش) و ساعت بالا/حد قدرت.
اتصال
NVLink/NVSwitch - در داخل گره برای کاهش سریع همه.
InfiniBand/RoCE - تبادل بین گره برای DDP/FSDP (≥ 100-200 گیگابایت بر ثانیه).
درخت PCIe: سعی کنید NIC و GPU را در همان گره NUMA نگه دارید ؛ اجتناب از تنگنا PCIe-سوئیچ داغ.
تنظیم پایه BIOS/میزبان
حالت های عملکرد، غیر فعال کردن حالت های C (یا افزایش حداقل)، آگاهی NUMA، ASPM در PCIe بحرانی.
قدرت: پروفایل های پایدار، قدرت صرفه جویی تهاجمی نیست - در غیر این صورت P99 «لرزش».
پشته نرم پایه
NVIDIA + CUDA + cuDNN/TensorRT ماتریس سازگاری درایور همسان.
جعبه ابزار کانتینر NVIDIA برای GPU ها در داخل ظروف.
NCCL (جمعی), UCX (حمل و نقل), راس/xFormers/فلش توجه - برای سرعت.
GDS اختیاری (GPUDirect Storage) در NVMe/IB سریع - سرعت جریان داده را افزایش می دهد.
Kubernetes برای GPU
اجزای کلیدی
اپراتور GPU NVIDIA (رانندگان، DCGM، پلاگین دستگاه).
NVIDIA پلاگین دستگاه - صادرات منابع 'انویدیا. کام/GPU '.
MIG (A100/H100) - تقسیم یک GPU فیزیکی به پروفایل های جدا شده (به عنوان مثال، '1g. 10 گیگابایت).
برش زمان - تقسیم منطقی GPU در زمان برای وظایف استنتاج کوچک.
کشف ویژگی Node - برچسب ها بر اساس نوع/توپولوژی GPU.
برنامه ریزی و جداسازی
Tains/Tolerations/NodeSelectors برای جدا کردن آموزش/استنتاج/آزمایش.
مدیر توپولوژی و مدیر CPU (استاتیک) برای تراز NUMA.
آتشفشان/Slurm در 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 - پارامترهای sharding/تگرگ/بهینه ساز، حافظه را کاهش می دهد.
تنش/خط لوله موازی - برای LLMs بسیار بزرگ ؛ نیاز به NVLink/IB دارد.
تجمع گرادیان - دسته ای موثر بدون افزایش قله حافظه را افزایش می دهد.
دقت مخلوط و بهینه سازی حافظه
AMP (bf16/fp16) + مقیاس از دست دادن ؛ برای H100/new - FP8 در صورت امکان.
فعال سازی/گرادیان Checkpointing، Flash-Attention برای دنباله های طولانی.
Paged/Chunked KV-cache برای آماده شدن برای استنتاج.
نقاط بازرسی و تحمل خطا
نقاط بازرسی افزایشی مکرر برای NVMe/object سریع با retching.
Jabs Idempotent (شناسه های تکراری زخم).
نقطه ثبات: ما گرفتن SIGTERM، به سرعت ادغام دولت ؛ Scheduler کار را به صف باز می گرداند.
متغیرهای مهم NCCL/شبکه (مثال)
bash
NCCL_IB_HCA=mlx5_0
NCCL_SOCKET_IFNAME=eth1
NCCL_P2P_LEVEL=NVL
NCCL_MIN_NRINGS=8
NCCL_NET_GDR_LEVEL=SYS
استنباط: تاخیر کم، بازگشت بالا
چارچوب خدمت
سرور استنتاج تریتون یک سرور واحد برای TensorRT/ONNX/TS/PyTorch است.
vLLM/TGI/TensorRT-LLM - متخصصان LLM (توجه به صفحه، موثر KV-cache، دسته بندی مداوم).
تکنیک های شتاب
کوانتیزاسیون: INT8/FP8/quantum آگاهی (AWQ، GPTQ) - کاهش در VRAM، افزایش در TPS.
دسته بندی/دسته بندی مداوم: خدمت به پشت سر هم از درخواست بدون رشد p95.
پین کردن KV-cache در HBM، کاهش زمینه ؛ رمزگشایی احتمالی (مدل پیش نویس).
همزمانی در GPU: چندین موضوع/مدل با MIG/time-slice.
پروفایل های هدف (مثال SLO)
p95 تاخیر از پاسخ مدل چت ≤ 300 میلی ثانیه در هر پیشوند/رمز;
توان ≥ 200 جریان/ثانیه/GPU در مشخصات هدف ؛
دم p99 توسط sheduling (کلاس های 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 (tar-shards) برای خواندن جریان.
پیش فرض/Async I/O: DataLoader- ы с پین حافظه، خطوط لوله پیش فرض، GDS.
فروشگاه ویژگی برای ویژگی های آنلاین (ضد تقلب/توصیه).
نسخه: DVC/LakeFS/MLflow مدل رجیستری ؛ گرفتن مجموعه داده ها، کد و hyperparameters.
معیارهای DCGM/Prometheus (حداقل)
'dcgm _ sm _ util', 'dcgm _ fb _ used', 'dcgm _ power _ usage', 'dcgm _ pcie _ rx/tx', 'dcgm _ dram _ bw'
دما/فرکانس و خطاهای ECC (هشدار برای رشد).
به دست آمده دلایل اشغال و غرفه (لایه هسته باریک).
معیارهای خدمات
مدل های تولیدی: نشانه ها/ثانیه، p50/p95/p99، عمق صف، شکست حافظه.
آموزش: مراحل/ثانیه، زمان عصر، کاهش بهره وری،٪ زمان در I/O
پانل SLO: انطباق p95، «بودجه خطا» (≥ 99. 5٪ استنتاج «موفق»).
هشدار (ایده ها)
'fb _ used/ fb_total> 0. 95 '5 мин → دریچه گاز/مقیاس کردن.
TPS با N٪ کاهش می یابد با تخریب همان مدل/کد دفع.
ECC/افزایش دما → مهاجرت آهن کار/حادثه.
ایمنی و انزوا
چند اجاره: پروفایل های MIG یا گره های هر تیم، فضای نام/سهمیه.
IOMMU/PSP، cgroups، container barring، CAP _ constraint.
MPS (multi-process service) - شسته و رفته: دفع بالاتر، اما جداسازی ضعیف تر از MIG است.
زنجیره تامین: امضای کانتینر (cosign)، تایید مصنوعات، کنترل آپلود مدل.
داده ها/وزن: رمزگذاری بر روی دیسک، کنترل دسترسی (ABAC/RBAC)، علامت های سفید/هش از مدل ها.
FinOps: هزینه، سهمیه، مقیاس خودکار
استخرهای گره: «قطار» (بر اساس تقاضا/ذخایر)، «استنباط» (مخلوط بر اساس تقاضا + نقطه)، «exp» (نقطه سنگین).
ثبات نقطه: ایستگاه های بازرسی مکرر، منطق راه اندازی مجدد سریع، صف آتشفشان با اولویت.
ذخایر/RI/برنامه های پس انداز به پایه پایدار ؛ غیرفعال کردن خودکار گرههای خالی.
مدل های اندازه گیری راست: آداپتورهای quantization/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/Prometheus/Grafana + هشدار ECC/دما/حافظه/TPS.
- سیاست های امنیتی (PSP، cosign، obfuscation وزن/کنترل).
- FinOps: استخر نقطه/ری, $/1K نشانه گزارش, بیکار خودکار خاموش.
خطاهای رایج
آموزش و استنتاج در گره های مشابه بدون tains مخلوط → GPU/IO «اره» به یکدیگر است.
بدون بازرسی و منطق پیشگیرانه → از دست دادن پیشرفت در نقطه.
عدم وجود DCGM-metrics → دفع «کور» و گرمای بیش از حد.
نادیده گرفتن توپولوژی NUMA/PCIe → پهنای باند NCCL کم.
MIG نادرست/تکه زمان → تاخیر P99 و «خارج از حافظه» پروفایل.
HPA توسط CPU به جای TPS/تاخیر → مقیاس اواخر.
ویژگی iGaming/fintech
Antifraud/scoring: استنتاج SLA ≤ 50 ms p95 در مسیرهای بحرانی (پرداخت/نتیجه گیری) ؛ چراغ مدل «عقب» را نگه دارید.
توصیه ها/شخصی سازی: یادگیری در خط مشی/خارج از خط مشی در شب، ویژگی های آنلاین - تأخیر کم.
چت دستیاران/RAG: محتوا کش، درخواست Dedeuplication، Guardrails ؛ شاخص های جستجوی بردار sharding.
قله (مسابقات/مسابقات): قبل از گرم کردن مدل/KV-کش، افزایش minReplicas، کلاس QoS برای VIP.
مجموع
پشته محاسبات GPU واقعا کارآمد می شود زمانی که سخت افزار (HBM/NVLink/IB)، ماتریس نرم افزار (CUDA/NCCL)، برنامه ریزی (MIG، صف، tains)، داده ها (خط لوله سریع/GDS)، مشاهده پذیری (DCGM/SLO) و هزینه (FinOpL) S/سهمیه) کار در کنسرت. این را به IaC و سیاست خوشه ای پین کنید - و شما سرعت یادگیری قابل پیش بینی، استنباط با تاخیر کم p95 پایدار و یک اقتصاد ساعت GPU شفاف خواهید داشت.