Vytvoření fondu uzlů GPU s více instancemi ve službě Azure Kubernetes Service (AKS)
GPU NVIDIA A100 lze 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 NVIDIA A100 naleznete v GPU NVIDIA A100.
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,
kubectl
je už nainstalovaný. Pokud ho chcete nainstalovat místně, můžete použítaz aks install-cli
příkaz. - Helm v3 je nainstalovaný a nakonfigurovaný. Další informace naleznete v tématu Instalace Nástroje Helm.
- Fondy uzlů GPU s více instancemi se v současné době v Azure Linuxu nepodporují.
- Automatické škálování clusteru nemůžete použít s fondy uzlů GPU s více instancemi.
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 | 7. 4. | 4/8 | 0 |
MIG 7g.40gb | 7/7 | 8/8 | 0 |
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 dostupné pro tuto velikost virtuálního počítače zahrnují , , , , MIG4g
a MIG7g
. MIG3g
MIG2g
MIG1g
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 create
prostředků Azure.az group create --name myResourceGroup --location southcentralus
Pomocí příkazu vytvořte cluster
az aks create
AKS.az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --generate-ssh-keys
Nakonfigurujte
kubectl
připojení ke clusteru AKS pomocíaz aks get-credentials
příkazu.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 add
uzlů 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 GPU kompatibilníhoStandard_ND96asr_v4
s MIG.az aks nodepool add \ --name aks-mignode \ --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ředek GPU se zobrazí jako
nvidia.com/mig1g.5gb: 1
.
Instalace komponent modulu plug-in zařízení NVIDIA a 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=mixed
Přidejte úložiště Helm modulu plug-in zařízení NVIDIA pomocí
helm repo add
příkazů ahelm repo update
příkazů.helm repo add nvdp https://nvidia.github.io/k8s-device-plugin helm repo update
Nainstalujte modul plug-in zařízení NVIDIA pomocí
helm install
příkazu.helm install nvdp nvdp/nvidia-device-plugin \ --version=0.15.0 \ --generate-name \ --set migStrategy=${MIG_STRATEGY} \ --set gfd.enabled=true \ --namespace nvidia-device-plugin \ --create-namespace
Poznámka:
Instalace modulu plug-in zařízení NVIDIA verze 0.15.0 a vyšší konsoliduje modul plug-in zařízení a úložiště GFD. Samostatná instalace nástroje Helm softwarové komponenty GFD se v tomto kurzu nedoporučuje.
Potvrzení schopnosti GPU s více instancemi
kubectl
Pomocí příkazu ověřte připojení ke clusterukubectl get
a vraťte seznam uzlů clusteru.kubectl get nodes -o wide
Pomocí příkazu ověřte, že uzel má funkci GPU s více instancemi
kubectl describe node
. Následující ukázkový příkaz popisuje uzel s názvem aks-mignode, který jako profil instance GPU používá MIG1g.kubectl describe node aks-mignode
Vý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.yaml
a 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": 1
Nasaďte aplikaci pomocí
kubectl apply
příkazu a zadejte název manifestu YAML.kubectl apply -f single-strategy-example.yaml
Pomocí příkazu ověřte přidělená zařízení
kubectl exec
GPU. Tento příkaz vrátí seznam uzlů clusteru.kubectl exec nvidia-single -- nvidia-smi -L
Ná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.yaml
a 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": 1
Nasaďte aplikaci pomocí
kubectl apply
příkazu a zadejte název manifestu YAML.kubectl apply -f mixed-strategy-example.yaml
Pomocí příkazu ověřte přidělená zařízení
kubectl exec
GPU. Tento příkaz vrátí seznam uzlů clusteru.kubectl exec nvidia-mixed -- nvidia-smi -L
Ná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
Azure Kubernetes Service