Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Některé grafické procesory NVIDIA je možné rozdělit až do sedmi nezávislých instancí. Každá instance má svůj vlastní multiprocesor Stream (SM), který je zodpovědný za paralelní spouštění instrukcí a paměti GPU. Další informace o dělení GPU naleznete v tématu NVIDIA MIG.
Tento článek vás provede procesem vytvoření fondu uzlů GPU s více instancemi pomocí velikosti virtuálního počítače kompatibilního s MIG v clusteru Azure Kubernetes Service (AKS).
Předpoklady a omezení
- Účet Azure s aktivním předplatným. Pokud ho nemáte, můžete si zdarma vytvořit účet.
- Azure CLI verze 2.2.0 nebo novější je nainstalovaná a nakonfigurovaná. Verzi zjistíte spuštěním příkazu
az --version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI. - Klient příkazového řádku Kubernetes, kubectl, nainstalovaný a nakonfigurovaný. Pokud používáte Azure Cloud Shell,
kubectlje už nainstalovaný. Pokud ho chcete nainstalovat místně, můžete použítaz aks install-clipříkaz. - Helm v3 je nainstalovaný a nakonfigurovaný. Další informace naleznete v dokumentaci Instalace Helmu.
- Fondy uzlů GPU s více instancemi se v současné době v Azure Linuxu nepodporují.
- GPU s více instancemi je v současné době podporována na velikostech virtuálních počítačů GPU
Standard_NC40ads_H100_v5,Standard_ND96isr_H100_v5a A100 na AKS.
Profily instancí GPU
Profily instancí GPU definují způsob dělení gpu. Následující tabulka ukazuje dostupný profil instance GPU pro Standard_ND96asr_v4:
| Název profilu | Zlomek SM | Zlomek paměti | Počet vytvořených instancí |
|---|---|---|---|
| MIG 1g.5gb | 1/7 | 1/8 | 7 |
| MIG 2G.10GB | 2/7 | 2/8 | 3 |
| MIG 3g.20gb | 3/7 | 4/8 | 2 |
| MIG 4G.20GB | 4. 7. | 4/8 | 1 |
| MIG 7g.40gb | 7/7 | 8/8 | 1 |
Například profil MIG 1g.5gb instance GPU označuje, že každá instance GPU má 1g SM (streamování multiprocesorů) a 5 GB paměti. V tomto případě je GPU rozděleno do sedmi instancí.
Dostupné profily instancí GPU pro tuto velikost virtuálního počítače zahrnují MIG1g, MIG2g, MIG3g, MIG4g a MIG7g.
Důležité
Po vytvoření fondu uzlů nemůžete změnit použitý profil instance GPU.
Vytvoření clusteru AKS
Pomocí příkazu vytvořte skupinu
az group createprostředků Azure.az group create --name myResourceGroup --location southcentralusVytvořte cluster AKS pomocí příkazu
az aks create.az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --generate-ssh-keysNakonfigurujte
kubectlpro připojení ke clusteru AKS pomocí příkazuaz aks get-credentials.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Vytvoření fondu uzlů GPU s více instancemi
K vytvoření fondu uzlů můžete použít azure CLI nebo požadavek HTTP na rozhraní API ARM.
Pomocí příkazu vytvořte fond
az aks nodepool adduzlů GPU s více instancemi a zadejte profil instance GPU. Následující příklad vytvoří fond uzlů s velikostí virtuálního počítače typu GPUStandard_ND96asr_v4, který je kompatibilní s MIG.az aks nodepool add \ --name aksMigNode \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --node-vm-size Standard_ND96asr_v4 \ --node-count 1 \ --gpu-instance-profile MIG1g
Určení strategie GPU (MIG) s více instancemi
Před instalací modulů plug-in NVIDIA musíte určit, jakou strategii GPU (MIG) s více instancemi se má použít pro dělení GPU: jedna strategie nebo smíšená strategie. Tyto dvě strategie neovlivňují způsob spouštění úloh procesoru, ale způsob zobrazení prostředků GPU.
-
Jedna strategie: Jedna strategie zpracovává každou instanci GPU jako GPU. Pokud použijete tuto strategii, zobrazí se prostředky GPU jako
nvidia.com/gpu: 1. -
Smíšená strategie: Smíšená strategie zveřejňuje instance GPU a profil instance GPU. Pokud použijete tuto strategii, prostředky GPU se zobrazí jako
nvidia.com/mig1g.5gb: 1.
Nainstalujte komponenty modulu plug-in pro zařízení NVIDIA a pro zjišťování funkcí GPU (GFD)
Nastavte strategii MIG jako proměnnou prostředí. Můžete použít jednu nebo smíšenou strategii.
# Single strategy export MIG_STRATEGY=single # Mixed strategy export MIG_STRATEGY=mixedPřidejte úložiště Helm modulu plug-in zařízení NVIDIA pomocí
helm repo addpříkazů ahelm repo updatepříkazů.helm repo add nvdp https://nvidia.github.io/k8s-device-plugin helm repo updateNainstalujte modul plug-in zařízení NVIDIA pomocí
helm installpříkazu.helm install nvdp nvdp/nvidia-device-plugin \ --version=0.17.0 \ --set migStrategy=${MIG_STRATEGY} \ --set gfd.enabled=true \ --namespace nvidia-device-plugin \ --create-namespace
Poznámka:
Instalace modulu plug-in zařízení NVIDIA helm konsoliduje modul plug-in zařízení Kubernetes a úložiště GFD. Samostatná instalace helmu softwarové komponenty GFD se nedoporučuje při použití GPU spravovaného službou AKS.
Potvrzení schopnosti GPU s více instancemi
kubectlPomocí příkazu ověřte připojení ke clusterukubectl geta vraťte seznam uzlů clusteru.kubectl get nodes -o widePomocí příkazu
kubectl describe nodese ujistěte, že uzel má schopnost multi-instance GPU. Následující příklad příkaz popisuje uzel s názvem aksMigNode, který používá MIG1g jako profil instance GPU.kubectl describe node aksMigNodeVýstup by měl vypadat podobně jako v následujícím příkladu výstupu:
# Single strategy output Allocatable: nvidia.com/gpu: 56 # Mixed strategy output Allocatable: nvidia.com/mig-1g.5gb: 56
Plánování práce
Následující příklady jsou založené na základní imagi CUDA verze 12.1.1 pro Ubuntu 22.04, označené jako 12.1.1-base-ubuntu22.04.
Jedna strategie
Vytvořte soubor s názvem
single-strategy-example.yamla zkopírujte ho v následujícím manifestu.apiVersion: v1 kind: Pod metadata: name: nvidia-single spec: containers: - name: nvidia-single image: nvidia/cuda:12.1.1-base-ubuntu22.04 command: ["/bin/sh"] args: ["-c","sleep 1000"] resources: limits: "nvidia.com/gpu": 1Nasaďte aplikaci pomocí
kubectl applypříkazu a zadejte název manifestu YAML.kubectl apply -f single-strategy-example.yamlPomocí příkazu ověřte přidělená zařízení
kubectl execGPU. Tento příkaz vrátí seznam uzlů clusteru.kubectl exec nvidia-single -- nvidia-smi -LNásledující příklad vypadá podobně jako výstup zobrazující úspěšně vytvořená nasazení a služby:
GPU 0: NVIDIA A100 40GB PCIe (UUID: GPU-48aeb943-9458-4282-da24-e5f49e0db44b) MIG 1g.5gb Device 0: (UUID: MIG-fb42055e-9e53-5764-9278-438605a3014c) MIG 1g.5gb Device 1: (UUID: MIG-3d4db13e-c42d-5555-98f4-8b50389791bc) MIG 1g.5gb Device 2: (UUID: MIG-de819d17-9382-56a2-b9ca-aec36c88014f) MIG 1g.5gb Device 3: (UUID: MIG-50ab4b32-92db-5567-bf6d-fac646fe29f2) MIG 1g.5gb Device 4: (UUID: MIG-7b6b1b6e-5101-58a4-b5f5-21563789e62e) MIG 1g.5gb Device 5: (UUID: MIG-14549027-dd49-5cc0-bca4-55e67011bd85) MIG 1g.5gb Device 6: (UUID: MIG-37e055e8-8890-567f-a646-ebf9fde3ce7a)
Smíšená strategie
Vytvořte soubor s názvem
mixed-strategy-example.yamla zkopírujte ho v následujícím manifestu.apiVersion: v1 kind: Pod metadata: name: nvidia-mixed spec: containers: - name: nvidia-mixed image: nvidia/cuda:12.1.1-base-ubuntu22.04 command: ["/bin/sh"] args: ["-c","sleep 100"] resources: limits: "nvidia.com/mig-1g.5gb": 1Nasaďte aplikaci pomocí
kubectl applypříkazu a zadejte název manifestu YAML.kubectl apply -f mixed-strategy-example.yamlPomocí příkazu ověřte přidělená zařízení
kubectl execGPU. Tento příkaz vrátí seznam uzlů clusteru.kubectl exec nvidia-mixed -- nvidia-smi -LNásledující příklad vypadá podobně jako výstup zobrazující úspěšně vytvořená nasazení a služby:
GPU 0: NVIDIA A100 40GB PCIe (UUID: GPU-48aeb943-9458-4282-da24-e5f49e0db44b) MIG 1g.5gb Device 0: (UUID: MIG-fb42055e-9e53-5764-9278-438605a3014c)
Důležité
Značka latest imagí CUDA je v Docker Hubu zastaralá. Nejnovější obrázky a odpovídající značky najdete v úložišti NVIDIA.
Řešení problému
Pokud po vytvoření fondu uzlů nevidíte funkci GPU s více instancemi, ověřte, že verze rozhraní API není starší než 2021-08-01.
Další kroky
Další informace o GPU ve službě Azure Kubernetes Service najdete tady:
- Vytvořte ve službě AKS fond uzlů s podporou GPU s Linuxem.
- Vytvoření fondu uzlů s podporou GPU s Windows v AKS
- Informace o případech použití úloh GPU v AKS