Strategie dělení uzlů GPU v Azure Kubernetes Service (AKS)

Azure Kubernetes Service (AKS) podporuje fondy uzlů s podporou NVIDIA GPU ke spouštění úloh náročných na výpočetní výkon, včetně trénování AI/ML, odvozování v reálném čase a rozsáhlých analýz dat. Gpu se tradičně přidělují v modelu 1:1, kde jeden pod Kubernetes využívá celé zařízení GPU v rámci virtuálního počítače Azure. I když tento model poskytuje jednoduchost a silnou izolaci, může vést k nedostatečnému využití ve scénářích, kdy úlohy plně nevyužívají dostupné prostředky GPU v clusteru.

Aby zákazníci mohli zlepšit využití a podporovat souběžné úlohy, můžou do svých fondů uzlů integrovat různé strategie dělení GPU. Tyto přístupy umožňují více úlohm sdílet jeden fyzický GPU tím, že ho rozdělí na menší logické jednotky nebo rozšíří přístup na úrovni ovladače softwaru nebo GPU.

V tomto článku se dozvíte o třech strategiích dělení primárních uzlů pro grafické procesory NVIDIA v AKS: GPU s více instancemi (MIG),časové řezy a službu MPS (Multi-Process Service).

Přehled strategií dělení uzlů GPU v AKS

Tři hlavní strategie dostupné v prostředích AKS jsou Multi-Instance GPU (MIG), sdílení v čase a Multi-Process Service (MPS). Každý přístup se liší z hlediska správy platformy AKS, typu izolace a scénářů nasazení.

Strategy Spravované nebo povolené v AKS Typ sdílení GPU Doporučeno pro:
GPU s více instancemi (MIG) Spravováno (nebo spravováno uživatelem prostřednictvím operátoru GPU) Dělení hardwaru Produkční úlohy
Časové dělení (prostřednictvím NVIDIA GPU Operator) Spravováno uživatelem, AKS povoleno Plánování softwaru Experimenty s proměnlivým zatížením GPU
Multi-Process Service (MPS, NVIDIA GPU – operátor) Spravované uživatelem, AKS povoleno Multiplexování procesu na úrovni CUDA Úlohy s nízkou latencí a vysokou propustností

Spravované GPU s více instancemi (MIG) v AKS

Více instancí GPU (MIG) je hardwarově založená funkce dělení, která je dostupná u vybraných architektur NVIDIA GPU, jako jsou A100, H100 a řada H200. MIG umožňuje rozdělení jednoho fyzického GPU do několika izolovaných instancí, z nichž každá má vyhrazená výpočetní jádra, paměť a mezipaměť. Tím se zajistí silná izolace úloh a předvídatelné charakteristiky výkonu, takže MIG je vhodný pro produkční prostředí.

V AKS je MIG spravovanou funkcí. Když se zřídí fond uzlů s podporou MIG Azure nakonfiguruje hardware GPU, nainstaluje a udržuje požadovaný zásobník ovladačů a integruje instance MIG s Kubernetes prostřednictvím modulu plug-in zařízení NVIDIA. Každý řez MIG je plánovači Kubernetes zpřístupněn jako samostatný alokovatelný prostředek, což podům umožňuje vyžadovat kapacitu GPU jemně odstupňovaným a deterministickým způsobem.

Tento přístup nabízí několik výhod pro podniková nasazení. Poskytuje izolaci na úrovni produkce prostřednictvím dělení na úrovni hardwaru a snižuje provozní režii delegováním správy životního cyklu, včetně aktualizací a konfigurace ovladačů, do AKS. Kromě toho se instance MIG chovají jako nezávislá zařízení GPU z pohledu plánovače a umožňují předvídatelné umístění a přidělení prostředků.

MIG však také přináší určitá omezení: konfigurace rozdělení jsou statické na úrovni skupiny uzlů, což znamená, že změny vyžadují opětovné vytvoření uzlů. Flexibilita je omezená na předdefinované profily MIG podporované základním hardwarem GPU.

Sdílení času s operátorem NVIDIA GPU (spravovaný uživatelem)

Časové dělení je softwarový mechanismus sdílení GPU, který umožňuje více podům v Kubernetes sdílet jednu GPU střídáním jejich běhu v čase. Tento přístup se implementuje prostřednictvím operátora NVIDIA GPU, který spravuje ovladače GPU, modul plug-in zařízení Kubernetes a konfiguraci modulu runtime kontejneru.

Sdílení časových úseků lze konfigurovat ve fondech uzlů služby AKS, ale není spravováno platformou. Provozovatelé clusteru odpovídají za nasazení a konfiguraci nástroje NVIDIA GPU Operator, obvykle pomocí Helm, a za povolení časového sdílení prostřednictvím nastavení device pluginu. Po nakonfigurování může více podů požádat o přístup ke stejnému prostředku GPU a jejich úlohy se plánují časově sdíleným způsobem.

Sdílení času nabízí flexibilitu a širokou kompatibilitu, protože nevyžaduje specifické hardwarové funkce GPU a lze je použít s většinou grafických procesorů NVIDIA podporovaných platformou CUDA. Je užitečné pro vývoj, testování nebo úlohy se vzory nárazového nebo proměnného využití GPU.

Navzdory své flexibilitě časové sdílení neposkytuje izolaci na hardwarové úrovni. Všechny úlohy sdílejí stejnou paměť a výpočetní prostředky GPU, což může vést k kolizím a nepředvídatelným výkonu. Vzhledem k tomu, že konfigurace a správa životního cyklu jsou řízené uživatelem, musí operátory také zpracovávat aktualizace ovladačů, kompatibilitu a ladění. Proto se časové sdílení obecně nedoporučuje pro produkční úlohy, které vyžadují přísné dohody o úrovni služeb (SLA).

Multi-Process Service (MPS) s operátorem NVIDIA GPU (spravovaná uživatelem)

NVIDIA Multi-Process Service (MPS) je funkce na úrovni ovladače, která umožňuje souběžnému spouštění více aplikací CUDA na jednom GPU. Na rozdíl od dělení času, při němž se vykonávání střídá mezi úlohami, umožňuje MPS, aby jádra z různých procesů běžela současně, čímž se zlepšuje celkové využití GPU a snižuje latence u kompatibilních úloh.

V AKS lze MPS nakonfigurovat prostřednictvím uživatelem spravovaného nasazení operátora NVIDIA GPU. Operátoři musí nakonfigurovat prostředí ovladače GPU tak, aby umožňovalo MPS a spravovali životní cyklus démona řízení MPS. Úlohy, které se připojují ke stejnému serveru MPS, můžou sdílet GPU a využívat výhod souběžného spuštění jádra.

Služba MPS je užitečná pro scénáře s vysokou propustností a nízkou latencí, jako jsou dávkové úlohy nebo úzce propojené paralelní úlohy. Poskytuje jemně odstupňovanou kontrolu nad sdílením GPU a může výrazně zlepšit využití, když jsou úlohy navržené tak, aby využívaly výhod souběžného spouštění.

MpS ale přináší další provozní složitost. Konfigurace je ruční a řešení potíží může být ve srovnání s jinými přístupy složitější. Podobně jako při časovém dělení MPS neposkytuje silnou izolaci, protože všechny procesy sdílejí paměť GPU a výpočetní prostředky. MpS se proto obecně nedoporučuje pro produkční úlohy, které vyžadují striktní smlouvy o úrovni služeb (SLA).

Jak zvolit strategii dělení GPU

Volba vhodné strategie dělení GPU v AKS závisí na požadavcích na úlohy, provozních preferencích a očekáváních výkonu. MIG je doporučený přístup pro produkční prostředí, která vyžadují silnou izolaci a předvídatelný výkon. Jako funkce fondu uzlů AKS miG zjednodušuje operace a snižuje režijní náklady na správu.

Časové sdílení je užitečné pro neprodukční prostředí nebo úlohy s kolísající poptávkou po GPU, kde je maximalizace využití důležitější než stálost. Poskytuje hardwarově nezávislé řešení, ale vyžaduje pečlivou správu a nezaručuje izolaci výkonu.

MPS je ideální pro specializované úlohy, které využívají souběžné spouštění GPU a nízkou latenci. Nabízí nejvyšší možnou efektivitu využití, ale přináší zvýšenou složitost a minimální izolaci, takže je nejvhodnější pro pokročilé uživatele s aplikacemi podporujícími CUDA.

V praxi můžou organizace používat různé strategie napříč prostředími a využívat MIG pro produkční clustery a současně využívat časové řezy nebo MPS ve vývojových nebo experimentálních scénářích. Pečlivé vyhodnocení charakteristik úloh GPU a provozních omezení je nezbytné pro výběr nejúčinnějšího dlouhodobého přístupu k dělení.