Megosztás a következőn keresztül:


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 a az 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_v4kö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

  1. Hozzon létre egy Azure-erőforráscsoportot a az group create paranccsal.

    az group create --name myResourceGroup --location southcentralus
    
  2. Hozzon létre egy AKS-fürtöt a az aks create paranccsal.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --generate-ssh-keys
    
  3. Konfigurálja kubectl az AKS-fürthöz való csatlakozást a az 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

  1. Á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
    
  2. Adja hozzá az NVIDIA eszköz beépülő modul helm-adattárát a parancsok és helm repo update a helm repo add parancsok használatával.

    helm repo add nvdp https://nvidia.github.io/k8s-device-plugin
    helm repo update
    
  3. 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

  1. Ellenőrizze a kubectl fürthöz való kapcsolatot a parancs használatával a kubectl get fürtcsomópontok listájának visszaadásához.

    kubectl get nodes -o wide
    
  2. 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

  1. 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
    
  2. 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
    
  3. 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

  1. 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
    
  2. 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
    
  3. 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: