Osvědčené postupy GPU pro Službu Azure Kubernetes Service (AKS)

Platí pro: ✔️ AKS Automatic ✔️ AKS Standard

Spouštění úloh GPU v AKS vyžaduje správné nastavení a průběžné ověřování, aby se zajistilo, že výpočetní prostředky jsou přístupné, zabezpečené a optimálně využívané. Tento článek popisuje osvědčené postupy pro správu uzlů s podporou GPU, ověřování konfigurací a snížení přerušení úloh.

Pro většinu produkčních úloh AKS je AKS Automatic doporučenou výchozí volbou. AKS Automatic poskytuje základ připravený pro produkční prostředí s předkonfigurovanými provozními postupy, bezpečnostními ochrannými mechanismy a připraveností podů garantovanou smlouvou SLA, což týmům pomáhá snižovat provozní režii platformy ve fázi day-2.

Volba automatického zpracování AKS nebo AKS Standard pro úlohy GPU

Jako výchozí bod použijte následující doprovodné materiály:

Scénář Doporučená cesta Proč
Většina produkčních úloh GPU AKS automatické Výchozí nastavení připravená pro produkční prostředí, integrovaná bezpečnostní opatření a nižší režijní náklady na provoz clusteru
Rychlejší cesta z nasazení do stabilního produkčního prostředí AKS automatické Předem nakonfigurované operace clusteru a předvídatelné chování při spuštění prostřednictvím smlouvy SLA pro připravenost podů
Pokročilé přizpůsobení platformy a explicitní provozní řízení AKS Standard Větší flexibilita pro životní cyklus vlastního fondu uzlů a ladění platformy.
Specializované, jiné než výchozí požadavky na architekturu platformy AKS Standard Větší ruční kontrola nad chováním a konfigurací infrastruktury.

Další informace najdete v článku Úvod do Azure Kubernetes Service (AKS) Automatic.

Co služba AKS Automaticky poskytuje pro produkční úlohy GPU

AKS Automatic pomáhá vytvořit silný provozní směrný plán pro produkční úlohy GPU tím, že poskytuje:

  • Výchozí nastavení konfigurace clusteru připravené pro produkční nasazení.
  • Integrované osvědčené postupy a záruky
  • Připravenost podů garantovaná smlouvou SLA pro předvídatelné chování při spouštění.
  • Operace spravovaného clusteru, které snižují ruční každodenní 2 úlohy.

Výchozí nastavení této platformy nenahrazuje osvědčené postupy na úrovni úloh, jako jsou ovládací prvky umístění, kontroly ověření a zásady izolace popsané v tomto článku.

Úlohy GPU, jako je trénování modelů AI, odvozování v reálném čase, simulace a zpracování videa, často závisejí na:

  • Opravte kompatibilitu ovladače GPU a modulu runtime.
  • Přesné plánování prostředků GPU
  • Přístup k hardwarovým zařízením GPU v kontejnerech

Chybné konfigurace můžou vést k vysokým nákladům, neočekávaným selháním úloh nebo nedostatečnému využití GPU.

Vynucení umístění úloh GPU

Ve výchozím nastavení plánovač AKS umístí pody do libovolného dostupného uzlu s dostatečným využitím procesoru a paměti. Bez ovládacích prvků pro umísťování úloh může dojít ke dvěma problémům:

  • Plánovač může umístit úlohy využívající GPU na uzly bez GPU, takže se tyto úlohy nepodaří spustit.
  • Úlohy pro obecné účely můžou zabírat uzly GPU a můžou zabírat nákladné prostředky.

Pro vynucení správného umístění:

  • Opatřete uzly GPU taintem pomocí klíče, jako je [gpu-vendor].com/gpu: NoSchedule (například nvidia.com/gpu: NoSchedule). Tento taint brání tomu, aby na těchto uzlech byly naplánovány úlohy nevyžadující GPU.

  • Do specifikace podu úloh GPU přidejte odpovídající tolerance, aby bylo možné ji naplánovat na uzlech GPU s taintem.

  • Definujte požadavky na prostředky GPU a omezení v podu, abyste zajistili, že plánovač rezervuje kapacitu GPU. Příklad:

    resources:
      limits:
        [gpu-vendor].com/gpu: 1
    
  • Pomocí zásad ověřování nebo kontrolerů přístupu vynucujte, aby úlohy GPU zahrnovaly požadované tolerance a limity prostředků.

Tento přístup zaručuje, že na uzlech GPU budou spuštěny pouze úlohy určené pro GPU a že budou mít přístup ke specializovaným výpočetním prostředkům, které vyžadují.

V AKS Automatic jsou ve výchozím nastavení předkonfigurované mantinely platformy. Stále používáte ovládací prvky umístění na úrovni úloh k vynucení přísného chování plánování GPU.

Ověřte instalaci ovladače GPU a připravenost běhového prostředí

Před nasazením produkčních úloh GPU vždy ověřte, že fondy uzlů GPU jsou:

  • Vybaven kompatibilními ovladači GPU.
  • Provozování zdravého DaemonSetu modulu Device Plugin pro Kubernetes
  • Zpřístupnění [gpu-vendor].com/gpu jako plánovatelného zdroje.

Aktuální verzi ovladače spuštěnou ve fondech uzlů GPU můžete ověřit pomocí rozhraní pro správu systému (SMI) přidruženého k dodavateli GPU.

Následující příkaz spustí nvidia-smi uvnitř podu nasazení pluginu zařízení GPU, abyste ověřili instalaci ovladače a připravenost běhového prostředí ve fondu uzlů s GPU NVIDIA:

kubectl exec -it $"{GPU_DEVICE_PLUGIN_POD}" -n {GPU_NAMESPACE} -- nvidia-smi

Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:

+-----------------------------------------------------------------------------+
|NVIDIA-SMI 570.xx.xx    Driver Version: 570.xx.xx    CUDA Version: 12.x|
...
...

kubectl exec Opakujte příkaz pro každý fond uzlů GPU a potvrďte verzi ovladače nainstalovanou na uzlech.

V poolech uzlů s podporou GPU AMD případně nasaďte komponenty AMD GPU a v podu modulu plug-inu zařízení ROCm spusťte příkaz amd-smi, abyste ověřili nainstalovanou verzi ovladače.

Udržování uzlů s podporou GPU aktualizovaných na nejnovější image operačního systému uzlu

Abyste zajistili výkon, zabezpečení a kompatibilitu úloh GPU v AKS, je nezbytné udržovat fondy uzlů GPU v aktualizovaném stavu s nejnovějšími doporučenými imagemi operačního systému uzlů. Tyto aktualizace jsou důležité, protože:

  • Zahrňte nejnovější produkční ovladače GPU a nahraďte všechny zastaralé nebo již nepodporované verze (EOL).
  • Jsou plně otestovány z hlediska kompatibility s vaší aktuální verzí Kubernetes.
  • Vyřešte známá ohrožení zabezpečení identifikovaná dodavateli GPU.
  • Zahrňte nejnovější vylepšení operačního systému a běhového prostředí kontejnerů pro vyšší stabilitu a efektivitu.

Upgradujte fondy uzlů GPU na nejnovější doporučenou image operačního systému uzlu vydané službou AKS, a to buď nastavením kanálu automatického upgradu , nebo ručním upgradem. Nejnovější verze imagí uzlů můžete sledovat pomocí nástroje AKS release tracker.

Pro většinu produkčních scénářů začněte s AKS Automatic jako s výchozí volbou. Pokud používáte AKS Standard, explicitně nakonfigurujte kanály upgradu a časové období údržby.

Samostatné úlohy GPU při použití sdílených clusterů

Pokud jeden cluster AKS s fondy uzlů GPU používá více typů úloh GPU, jako je trénování modelů, odvozování v reálném čase nebo dávkové zpracování, je důležité oddělit tyto úlohy na:

  • Vyhněte se náhodnému rušení nebo kolizí prostředků mezi různými typy úloh.
  • Zlepšete zabezpečení a udržujte hranice dodržování předpisů.
  • Zjednodušte správu a monitorování využití prostředků GPU na kategorii úloh.

Úlohy GPU můžete izolovat v rámci jednoho clusteru AKS pomocí oborů názvů a zásad sítě. To umožňuje jasnější zásady správného řízení prostřednictvím kvót, limitů a konfigurací protokolování specifických pro úlohy.

Ukázkový scénář

Zvažte cluster AKS, který hostuje dva různé typy úloh GPU, které spolu nemusí vzájemně komunikovat:

  • Trénovací úlohy: Úlohy trénování modelu AI náročné na prostředky
  • Úlohy odvození: Služby odvození v reálném čase citlivé na latenci

Tyto dvě úlohy můžete oddělit pomocí následujících kroků:

  1. Pomocí příkazu kubectl create namespace vytvořte vyhrazené obory názvů pro každý typ pracovní zátěže.

    kubectl create namespace gpu-training
    kubectl create namespace gpu-inference
    
  2. Označte pody úloh GPU podle typu, jak je znázorněno v následujícím příkladu:

    metadata:
      namespace: gpu-training
      labels:
        workload: training
    
  3. Použijte zásady sítě k izolaci provozu mezi typy úloh. Následující manifest blokuje veškerý příchozí a výchozí přenos dat pro gpu-training obor názvů (pokud není explicitně povolený):

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: deny-cross-namespace
      namespace: gpu-training
    spec:
      podSelector: {}
      policyTypes:
      - Ingress
      - Egress
      ingress: []
      egress: []
    

Tato zásada:

  • Platí pro všechny pody ve jmenném prostoru gpu-training.
  • Ve výchozím nastavení zakazuje veškerý příchozí a odchozí provoz, který podporuje silnou izolaci.

Tento model zlepšuje přehlednost, řízení a bezpečnost ve sdílených prostředích GPU, zejména v případě, že typy úloh mají různé profily modulu runtime, úrovně rizik nebo provozní požadavky.

Optimalizace využití prostředků na uzlech GPU pomocí GPU s více instancemi (MIG)

Různé úlohy GPU mají různé požadavky na paměť. Menší nasazení, například NVIDIA A100 40 GB, nemusí potřebovat celé GPU. Jedna úloha ale ve výchozím nastavení monopolizuje prostředek GPU i v případě, že je nevyužitý.

AKS podporuje optimalizaci prostředků na uzlech GPU jejich rozdělením na menší řezy pomocí GPU s více instancemi (MIG), aby týmy mohly efektivněji plánovat menší úlohy. Přečtěte si další informace o podporovaných velikostech GPU a o tom, jak začít s gpu s více instancemi v AKS.

Použití dočasných datových disků NVMe jako vysoce výkonné mezipaměti

Pro úlohy AI běžící na virtuálních počítačích s GPU v AKS je rychlý a spolehlivý přístup k dočasnému úložišti kritický pro maximalizaci výkonu trénování a odvozování. Dočasné datové disky NVMe poskytují úložiště s vysokou propustností, nízkou latencí přímo připojené k hostiteli virtuálního počítače, což je ideální pro scénáře, jako je ukládání datových sad do mezipaměti, ukládání dočasných kontrolních bodů a váhy modelu nebo poskytnutí pomocného místa pro předběžné zpracování a analýzu dat.

Při nasazování fondů uzlů s podporou GPU pro úlohy AI nakonfigurujte dočasné datové disky NVMe tak, aby sloužily jako vysoce výkonná mezipaměť nebo pomocné místo. Tento přístup pomáhá eliminovat kritické body vstupně-výstupních operací, zrychlit operace náročné na data a zajistit, aby vaše prostředky GPU nebyly při čekání na data nečinné.

Azure podporuje dočasné datové disky NVMe napříč širokou škálou Azure rodin virtuálních počítačů GPU. V závislosti na velikosti virtuálního počítače GPU má virtuální počítač až osm dočasných datových disků NVMe s kombinovanou kapacitou až 28 TiB. Podrobné konfigurace velikostí virtuálních počítačů najdete v dokumentaci ŘADY ND H100 v5 nebo dokumentaci k velikosti virtuálního počítače pro vybranou řadu GPU.

Ke zjednodušení zřizování a správy použijte Službu Azure Container Storage, která dokáže automaticky zjišťovat a orchestrovat dočasné disky NVMe pro vaše úlohy Kubernetes.

Mezi doporučené scénáře patří:

  • Ukládání velkých datových sad do mezipaměti a kontrolních bodů modelu pro trénování a odvozování AI
  • Uložení modelových vah do mezipaměti pro AI inferenci. Například model hostování KAITO jako artefaktů OCI na místní NVMe.
  • Poskytuje rychlý dočasný úložný prostor pro dávkové úlohy a datové kanály.

Důležité

Data na dočasných discích NVMe jsou dočasná a při uvolnění nebo opětovném nasazení virtuálního počítače se ztratí. Tyto disky používejte jenom pro méně důležitá, přechodná data a ukládejte důležité informace o trvalých řešeních úložiště Azure.

Další pokyny k dočasným datovým diskům NVMe najdete v tématu Osvědčené postupy pro dočasné datové disky NVMe v AKS.

Další informace o úlohách AKS a GPU najdete v následujících článcích: