Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Kubernetes Service (AKS) stöder NVIDIA GPU-aktiverade nodpooler för att köra beräkningsintensiva arbetsbelastningar, inklusive AI/ML-träning, realtidsinferens och storskalig dataanalys. Traditionellt allokeras GPU:er i en en-till-en-modell, där en enskild Kubernetes-podd förbrukar en hel GPU-enhet i en Azure virtuell dator (VM). Även om den här modellen ger enkelhet och stark isolering kan den leda till underutnyttjande i scenarier där arbetsbelastningar inte helt förbrukar tillgängliga GPU-resurser i klustret.
För att förbättra användningen och stödja samtidiga arbetsbelastningar kan kunderna integrera olika strategier för GPU-partitionering i sina nodpooler. Med de här metoderna kan flera arbetsbelastningar dela en enda fysisk GPU genom att dela upp den i mindre logiska enheter eller genom att utöka åtkomsten på programvaru- eller GPU-drivrutinsnivå.
I den här artikeln får du lära dig mer om de tre primära nodpartitioneringsstrategierna för NVIDIA-GPU:er i AKS: Multi-Instance GPU (MIG), tidsslicering och MPS (Multi-Process Service).
Översikt över strategier för partitionering av GPU-noder i AKS
De tre primära strategierna som är tillgängliga i AKS-miljöer är Multi-Instance GPU (MIG), time-slicing och Multi-Process Service (MPS). Varje metod skiljer sig åt när det gäller AKS-plattformshantering, typ av isolering och användningsfall för distribution.
| Strategy | Hanteras eller är tillåten på AKS | GPU-delningstyp | Rekommenderas för |
|---|---|---|---|
| Multi-Instance GPU (MIG) | Hanterad (eller hanteras av användaren via GPU Operator) | Maskinvarupartitionering | Produktionsarbetsbelastningar |
| Tidsslicering (via NVIDIA GPU-operatör) | Användarhanterad, AKS tillåten | Schemaläggning av programvara | Experiment med varierande GPU-belastning |
| Multi-Process Service (MPS, NVIDIA GPU-operatör) | Användarhanterat, AKS tillåts | processmultiplexering på CUDA-nivå | Arbetsbelastningar med låg svarstid och högt dataflöde |
Hanterad GPU för flera instanser (MIG) på AKS
Multi-Instance GPU (MIG) är en maskinvarubaserad partitioneringsfunktion som är tillgänglig för utvalda NVIDIA GPU-arkitekturer, till exempel A100-, H100- och H200-serien. MIG gör att en enda fysisk GPU kan delas in i flera isolerade instanser, var och en med dedikerade beräkningskärnor, minne och cacheminne. Detta säkerställer stark arbetsbelastningsisolering och förutsägbara prestandaegenskaper, vilket gör MIG lämpligt för produktionsmiljöer.
I AKS är MIG en hanterad funktion. När en MIG-aktiverad nodpool etableras konfigurerar Azure GPU-maskinvaran, installerar och underhåller den nödvändiga drivrutinsstacken och integrerar MIG-instanser med Kubernetes via plugin-programmet för NVIDIA-enheten. Varje MIG-segment exponeras för Kubernetes-schemaläggaren som en separat allokerbar resurs, vilket gör det möjligt för poddar att begära GPU-kapacitet med fin granularitet och på ett deterministiskt sätt.
Den här metoden erbjuder flera fördelar för företagsdistributioner. Det ger isolering i produktionsklass genom partitionering på maskinvarunivå och minskar driftkostnaderna genom att delegera livscykelhantering, inklusive drivrutinsuppdateringar och konfiguration, till AKS. Dessutom fungerar MIG-instanser som oberoende GPU-enheter ur schemaläggarens perspektiv, vilket möjliggör förutsägbar placering och resursallokering.
Mig introducerar dock även vissa begränsningar: partitioneringskonfigurationer är statiska på nodpoolsnivå, vilket innebär att ändringar kräver nodrevision. Flexibiliteten är begränsad till fördefinierade MIG-profiler som stöds av den underliggande GPU-maskinvaran.
Tidsdelning med NVIDIA GPU Operator (användarhanterad)
Tidsdelning är en programvarubaserad mekanism för GPU-delning som gör att flera Kubernetes-poddar kan dela en enda GPU genom att varva körningen över tid. Den här metoden implementeras via NVIDIA GPU-operatorn, som hanterar GPU-drivrutiner, Kubernetes-enhets-plugin-programmet och konfiguration av containerkörning.
Tidsslicering kan konfigureras på AKS-nodpooler men hanteras inte av plattformen. Klusteroperatörer ansvarar för att driftsätta och konfigurera NVIDIA GPU Operator, vanligtvis via Helm, samt att aktivera tidsdelning genom inställningar i enhetspluginet. När detta har konfigurerats kan flera poddar begära åtkomst till samma GPU-resurs, och deras arbetslaster schemaläggs med tidsdelning.
Tidsslicering ger flexibilitet och bred kompatibilitet eftersom den inte är beroende av specifika GPU-maskinvarufunktioner och kan användas med de flesta NVIDIA GPU:er som stöds av CUDA. Det är användbart för utveckling, testning eller arbetsbelastningar med högintensiva eller varierande GPU-användningsmönster.
Trots flexibiliteten ger tidsslicering inte isolering på maskinvarunivå. Alla arbetsbelastningar delar samma GPU-minne och beräkningsresurser, vilket kan resultera i konkurrens och oförutsägbara prestanda. Eftersom konfigurations- och livscykelhantering är användardrivna måste operatörerna även hantera drivrutinsuppdateringar, kompatibilitet och justering. Därför rekommenderas tidsdelning vanligtvis inte för produktionsarbetsbelastningar som kräver strikta servicenivåavtal (SLA:er).
Multi-Process Service (MPS) med NVIDIA GPU-operatör (användarhanterad)
NVIDIA Multi-Process Service (MPS) är en funktion på drivrutinsnivå som gör att flera CUDA-program kan köras samtidigt på en enda GPU. Till skillnad från tidsslicering, som växlar körning mellan arbetsbelastningar, tillåter MPS att kernels från olika processer körs samtidigt, vilket förbättrar den övergripande GPU-användningen och minskar svarstiden för kompatibla arbetsbelastningar.
I AKS kan MPS konfigureras via användarhanterad distribution av NVIDIA GPU-operatorn. Operatorer måste konfigurera GPU-drivrutinsmiljön för att aktivera MPS och hantera livscykeln för MPS-kontrolldaemonen. Arbetsbelastningar som ansluter till samma MPS-server kan dela GPU:n och dra nytta av samtidig kernelkörning.
MPS är användbart för scenarier med högt dataflöde och låg svarstid, till exempel batchjobb eller nära kopplade parallella arbetsbelastningar. Det ger detaljerad kontroll över GPU-delning och kan avsevärt förbättra användningen när arbetsbelastningar är utformade för att dra nytta av samtidig körning.
MPS medför dock ytterligare driftskomplexitet. Konfigurationen är manuell och felsökning kan vara mer involverad jämfört med andra metoder. I likhet med tidsslicering ger MPS inte stark isolering eftersom alla processer delar GPU-minne och beräkningsresurser. Därför rekommenderas mps vanligtvis inte för produktionsarbetsbelastningar som kräver strikta serviceavtal (SLA).
Så här väljer du en GPU-partitioneringsstrategi
Valet av lämplig GPU-partitioneringsstrategi i AKS beror på arbetsbelastningskrav, driftsinställningar och prestandaförväntningar. MIG är den rekommenderade metoden för produktionsmiljöer som kräver stark isolering och förutsägbara prestanda. Som funktion för AKS-nodpool förenklar MIG åtgärder och minskar administrativa kostnader.
Tidsdelning är användbar i miljöer utanför produktion eller för arbetsbelastningar med varierande GPU-efterfrågan, där det är viktigare att maximera resursutnyttjandet än att upprätthålla konsekvent prestanda. Den tillhandahåller en maskinvaruagnostisk lösning men kräver noggrann hantering och garanterar inte prestandaisolering.
MPS är perfekt för specialiserade arbetsbelastningar som drar nytta av samtidig GPU-körning och låg svarstid. Det erbjuder högsta möjliga användningseffektivitet men har ökad komplexitet och minimal isolering, vilket gör det lämpligast för avancerade användare med CUDA-medvetna program.
I praktiken kan organisationer använda olika strategier i olika miljöer, använda MIG för produktionskluster och samtidigt utnyttja tidsslicering eller MPS i utvecklings- eller experimentella scenarier. Noggrann utvärdering av GPU-arbetsbelastningens egenskaper och driftbegränsningar är avgörande för att välja den mest effektiva långsiktiga partitioneringsmetoden.
Relaterat innehåll
- Kom igång med GPU-nodpooler med flera instanser i AKS.
- Lär dig mer om metodtips för livscykelhantering med GPU-aktiverade noder.
- Optimera GPU-nodens användning och prestanda genom att konfigurera packning av nodlager i klustret.