Többpéldányos GPU-csomópontkészlet létrehozása az Azure Kubernetes Service-ben (AKS)
Az NVIDIA A100 GPU-ja legfeljebb hét független példányra osztható. Minden példány saját Stream Multiprocessor (SM) szolgáltatással rendelkezik, amely az utasítások párhuzamos végrehajtásáért és a GPU-memóriáért felelős. Az NVIDIA A100-ről az NVIDIA A100 GPU-val kapcsolatos további információkért lásd : NVIDIA A100 GPU.
Ez a cikk bemutatja, hogyan hozhat létre többpéldányos GPU-csomópontkészletet egy MIG-kompatibilis virtuálisgép-méret használatával egy Azure Kubernetes Service-fürtön (AKS).
Előfeltételek és korlátozások
- Egy Azure-fiók, aktív előfizetéssel. Ha nem rendelkezik ilyen fiókkal, ingyenesen létrehozhat fiókot.
- Az Azure CLI 2.2.0-s vagy újabb verziója telepítve és konfigurálva van. A verzió azonosításához futtassa a következőt:
az --version
. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése. - A Kubernetes parancssori ügyfele, a kubectl, telepítve és konfigurálva van. Ha az Azure Cloud Shellt használja,
kubectl
már telepítve van. Ha helyileg szeretné telepíteni, használhatja aaz aks install-cli
parancsot. - A Helm v3 telepítve és konfigurálva van. További információ: A Helm telepítése.
- A többpéldányos GPU-csomópontkészletek jelenleg nem támogatottak az Azure Linuxon.
- A Fürt automatikus skálázása nem használható többpéldányos GPU-csomópontkészletekkel.
GPU-példányprofilok
A GPU-példányprofilok határozzák meg a GPU-k particionálásának módját. Az alábbi táblázat a rendelkezésre álló GPU-példányprofilt mutatja be a Standard_ND96asr_v4
következőhöz:
Profilnév | Sm törtrésze | Memória töredéke | Létrehozott példányok száma |
---|---|---|---|
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 | 0 |
MIG 7g.40gb | 7/7 | 8/8 | 0 |
A GPU-példány profilja MIG 1g.5gb
például azt jelzi, hogy minden GPU-példány 1g SM-sel (többprocesszoros streameléssel) és 5 GB memóriával rendelkezik. Ebben az esetben a GPU hét példányra van particionálva.
Az ehhez a virtuálisgép-mérethez elérhető GPU-példányprofilok a következők: MIG1g
, MIG2g
, MIG3g
, MIG4g
és MIG7g
.
Fontos
A csomópontkészlet létrehozása után nem módosíthatja az alkalmazott GPU-példányprofilt.
AKS-fürt létrehozása
Hozzon létre egy Azure-erőforráscsoportot a
az group create
paranccsal.az group create --name myResourceGroup --location southcentralus
Hozzon létre egy AKS-fürtöt a
az aks create
paranccsal.az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --generate-ssh-keys
Konfigurálja
kubectl
az AKS-fürthöz való csatlakozást aaz aks get-credentials
paranccsal.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Többpéldányos GPU-csomópontkészlet létrehozása
A csomópontkészlet létrehozásához használhatja az Azure CLI-t vagy egy HTTP-kérést az ARM API-hoz.
Hozzon létre egy többpéldányos GPU-csomópontkészletet a
az aks nodepool add
parancs használatával, és adja meg a GPU-példány profilját. Az alábbi példa egy MIG-kompatibilis GPU virtuálisgép-mérettel rendelkezőStandard_ND96asr_v4
csomópontkészletet hoz létre.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
Többpéldányos GPU-stratégia (MIG) meghatározása
Az NVIDIA beépülő modulok telepítése előtt meg kell adnia, hogy melyik többpéldányos GPU-stratégiát (MIG) használja a GPU particionálásához: egyetlen stratégia vagy vegyes stratégia. A két stratégia nem befolyásolja a processzorterhelések végrehajtását, hanem a GPU-erőforrások megjelenítését.
- Egyetlen stratégia: Az egyetlen stratégia minden GPU-példányt GPU-ként kezel. Ha ezt a stratégiát használja, a GPU-erőforrások a következőképpen jelennek meg
nvidia.com/gpu: 1
: . - Vegyes stratégia: A vegyes stratégia a GPU-példányokat és a GPU-példány profilját teszi elérhetővé. Ha ezt a stratégiát használja, a GPU-erőforrás a következőképpen jelenik meg
nvidia.com/mig1g.5gb: 1
: .
Az NVIDIA eszköz beépülő moduljának és GPU-funkciófelderítési (GFD) összetevőinek telepítése
Állítsa be a MIG-stratégiát környezeti változóként. Használhat egyetlen vagy vegyes stratégiát is.
# Single strategy export MIG_STRATEGY=single # Mixed strategy export MIG_STRATEGY=mixed
Adja hozzá az NVIDIA eszköz beépülő modul helm-adattárát a parancsok és
helm repo update
ahelm repo add
parancsok használatával.helm repo add nvdp https://nvidia.github.io/k8s-device-plugin helm repo update
Telepítse az NVIDIA eszköz beépülő modult a
helm install
paranccsal.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
Feljegyzés
Az NVIDIA eszköz beépülő modul 0.15.0-s és újabb verziójának Helm-telepítése összevonja az eszköz beépülő modulját és GFD-adattárait. Ebben az oktatóanyagban nem ajánlott külön telepíteni a GFD szoftverösszetevőt.
Többpéldányos GPU-képesség megerősítése
Ellenőrizze a
kubectl
fürthöz való kapcsolatot a parancs használatával akubectl get
fürtcsomópontok listájának visszaadásához.kubectl get nodes -o wide
Győződjön meg arról, hogy a csomópont többpéldányos GPU-képességgel rendelkezik a
kubectl describe node
parancs használatával. Az alábbi példaparancs az aks-mignode nevű csomópontot írja le, amely A MIG1g-t használja GPU-példányprofilként.kubectl describe node aks-mignode
A kimenetnek a következő példakimenethez kell hasonlítania:
# Single strategy output Allocatable: nvidia.com/gpu: 56 # Mixed strategy output Allocatable: nvidia.com/mig-1g.5gb: 56
Munka ütemezése
Az alábbi példák az Ubuntu 22.04 12.1.1-es alaprendszerképének 12.1.1-es verzióján alapulnak, címkézve így12.1.1-base-ubuntu22.04
: .
Egyetlen stratégia
Hozzon létre egy fájlt,
single-strategy-example.yaml
és másolja a következő jegyzékbe.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
Telepítse az alkalmazást a
kubectl apply
paranccsal, és adja meg a YAML-jegyzék nevét.kubectl apply -f single-strategy-example.yaml
Ellenőrizze a lefoglalt GPU-eszközöket a
kubectl exec
paranccsal. Ez a parancs a fürtcsomópontok listáját adja vissza.kubectl exec nvidia-single -- nvidia-smi -L
Az alábbi példa a sikeresen létrehozott üzembe helyezéseket és szolgáltatásokat megjelenítő kimenethez hasonlít:
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)
Vegyes stratégia
Hozzon létre egy fájlt,
mixed-strategy-example.yaml
és másolja a következő jegyzékbe.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
Telepítse az alkalmazást a
kubectl apply
paranccsal, és adja meg a YAML-jegyzék nevét.kubectl apply -f mixed-strategy-example.yaml
Ellenőrizze a lefoglalt GPU-eszközöket a
kubectl exec
paranccsal. Ez a parancs a fürtcsomópontok listáját adja vissza.kubectl exec nvidia-mixed -- nvidia-smi -L
Az alábbi példa a sikeresen létrehozott üzembe helyezéseket és szolgáltatásokat megjelenítő kimenethez hasonlít:
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)
Fontos
A latest
CUDA-képek címkéje elavult a Docker Hubon. Tekintse meg az NVIDIA adattárát a legújabb képekhez és a hozzájuk tartozó címkékhez.
Hibaelhárítás
Ha a csomópontkészlet létrehozása után nem látja a többpéldányos GPU-képességet, ellenőrizze, hogy az API-verzió nem régebbi-e 2021-08-01-nél.
Következő lépések
Az Azure Kubernetes Service GPU-kkal kapcsolatos további információkért lásd:
Azure Kubernetes Service