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á svou vlastní paměť a Stream Multiprocessor (SM). Další informace o Nvidia A100 naleznete v tématu Nvidia A100 GPU.
Tento článek vás provede procesem vytvoření fondu uzlů GPU s více instancemi 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.
- Automatické škálování clusteru nemůžete použít s fondy uzlů 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 značí, že každá instance GPU má 1g prostředků SM (výpočetní prostředek) a 5 GB paměti. V tomto případě je GPU rozděleno do sedmi instancí.
Dostupné profily instancí GPU pro tuto velikost instance 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 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\ --node-count 1 \ --generate-ssh-keys
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.az aks nodepool add \ --name mignode \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --node-vm-size Standard_ND96asr_v4 \ --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 modulu plug-in zařízení NVIDIA a zjišťování funkcí GPU
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 modul plug-in zařízení Nvidia a úložiště Helm pro zjišťování funkcí GPU pomocí příkazů
helm repo add
ahelm repo update
příkazů.helm repo add nvdp https://nvidia.github.io/k8s-device-plugin helm repo add nvgfd https://nvidia.github.io/gpu-feature-discovery helm repo update
Nainstalujte modul plug-in zařízení Nvidia pomocí
helm install
příkazu.helm install \ --version=0.14.0 \ --generate-name \ --set migStrategy=${MIG_STRATEGY} \ nvdp/nvidia-device-plugin
Pomocí příkazu nainstalujte zjišťování
helm install
funkcí GPU.helm install \ --version=0.2.0 \ --generate-name \ --set migStrategy=${MIG_STRATEGY} \ nvgfd/gpu-feature-discovery
Potvrzení schopnosti GPU s více instancemi
Nakonfigurujte
kubectl
připojení ke clusteru AKS pomocíaz aks get-credentials
příkazu.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Pomocí příkazu ověřte připojení ke clusteru
kubectl 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 mignode, který jako profil instance GPU používá MIG1g.kubectl describe node 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 cuda základní image verze 12.1.1 pro Ubuntu22.04, označeno 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 fondech uzlů AKS najdete v tématu Správa fondů uzlů pro cluster v AKS.
Azure Kubernetes Service