GPU-erőforrásokat használó tárolópéldányok üzembe helyezése

Fontos

Ezt a terméket 2025. július 14-től kivonjuk.

Ha az Azure Container Instancesben bizonyos nagy számítási feladatokat szeretne futtatni, helyezze üzembe a tárolócsoportokatgrafikus feldolgozási egység (GPU) erőforrásokkal. A csoport tárolópéldányai hozzáférhetnek egy vagy több NVIDIA Tesla GPU-hoz, miközben tárolóterheléseket futtatnak, például számítási egyesített eszközarchitektúrát (CUDA) és mélytanulási alkalmazásokat.

Ez a cikk bemutatja, hogyan adhat hozzá GPU-erőforrásokat a tárolócsoportok YAML-fájl vagy Azure Resource Manager-sablon (ARM-sablon) használatával történő üzembe helyezésekor. A tárolópéldányok üzembe helyezésekor gpu-erőforrásokat is megadhat az Azure Portal használatával.

Előfeltételek

Néhány jelenlegi korlátozás miatt előfordulhat, hogy az összes korlátnövelési kérés nem lesz jóváhagyva.

Amennyiben ezt a verziót szeretné használni termelési tárolók üzembe helyezéséhez, hozzon létre egy Azure támogatási kérést a korlát növeléséhez.

Előzetes verzióra vonatkozó korlátozások

Előzetes verzióban a következő korlátozások érvényesek, ha GPU-erőforrásokat használ tárolócsoportokban.

Régió rendelkezésre állása

Régiók Operációs rendszer Elérhető GPU-termékváltozatok
USA keleti régiója, Nyugat-Európa, USA 2. nyugati régiója, Délkelet-Ázsia, Közép-India Linux V100

Idővel több régióhoz is hozzá lesz adva támogatás.

Támogatott operációsrendszer-típusok: csak Linux.

Egyéb korlátozások: Nem használhat GPU-erőforrásokat, ha tárolócsoportot helyez üzembe egy virtuális hálózaton.

A GPU-erőforrások ismertetése

Darabszám és verzió

A GPU-k tárolópéldányban való használatához adjon meg egy GPU-erőforrást a következő információkkal:

  • Darabszám: A GPU-k száma egy, kettő vagy négy.

  • Verzió: A GPU-verzió V100. Minden verzió az NVIDIA Tesla GPU-hoz lesz leképezett az alábbi Azure GPU-kompatibilis virtuálisgép-családok egyikében:

    verzió Virtuálisgép-család
    V100 NCv3

Termékváltozatonkénti erőforrások maximális száma

Operációs rendszer GPU-termékváltozat GPU-k száma Max. CPU Maximális memória (GB) Tárolóhely (GB)
Linux V100 1 6 112 50
Linux V100 2 12 224 50
Linux V100 4 24 448 50

GPU-erőforrások telepítésekor állítsa be a számítási feladatnak megfelelő CPU- és memóriaerőforrásokat az előző táblázatban látható maximális értékekig. Ezek az értékek jelenleg nagyobbak, mint a GPU-erőforrások nélküli tárolócsoportokban elérhető PROCESSZOR- és memóriaerőforrások.

Fontos

A GPU-erőforrások alapértelmezett előfizetési korlátai (kvótái) verziónként eltérnek. A V100-verziók alapértelmezett CPU-korlátai kezdetben 0-ra vannak állítva. Ha növelni szeretne egy elérhető régiót, küldjön egy Azure-támogatási kérelmet.

Tudnivalók

  • Üzembe helyezési idő: GPU-erőforrásokat tartalmazó tárolócsoport létrehozása akár 8–10 percet is igénybe vehet. Több időre van szükség egy GPU virtuális gép (VM) üzembe helyezéséhez és konfigurálásához az Azure-ban.

  • Díjszabás: A GPU-erőforrások nélküli tárolócsoportokhoz hasonlóan az Azure a GPU-erőforrásokkal rendelkező tárolócsoportok időtartama alatt felhasznált erőforrásokat számlálja meg. Az időtartam az első tároló lemezképének lekérésétől a tárolócsoport megszűnéséig számítható ki. Nem tartalmazza a tárolócsoport üzembe helyezésének idejét.

    További információkért tekintse meg a díjszabás részleteit.

  • CUDA-illesztőprogramok: A GPU-erőforrásokkal rendelkező tárolópéldányok előre ki vannak építve NVIDIA CUDA-illesztőprogramokkal és tároló-futtatókörnyezetekkel, így a CUDA-számítási feladatokhoz kifejlesztett tárolórendszerképek használhatók.

    Ebben a szakaszban a CUDA 11-en keresztül támogatjuk. Használhatja például a következő alaprendszerképeket a Docker-fájlhoz:

    A Docker Hub nyilvános tárolórendszerképeinek használatakor a megbízhatóság javítása érdekében importálja és kezelje a rendszerképet egy privát Azure-tárolóregisztrációs adatbázisban. Ezután frissítse a Docker-fájlt a privátan felügyelt alaprendszerkép használatára. Tudjon meg többet a nyilvános képekkel való munkáról.

YAML-példa

GPU-erőforrások hozzáadásának egyik módja egy tárolócsoport üzembe helyezése YAML-fájl használatával. Másolja a következő YAML-t egy gpu-deploy-aci.yaml nevű új fájlba, majd mentse a fájlt. Ez a YAML létrehoz egy tárolócsoportot, amely gpucontainergroup egy V100 GPU-val rendelkező tárolópéldányt határoz meg. A példány egy CUDA-mintavektor-összeadási alkalmazást futtat. Az erőforrás-kérelmek elegendőek a számítási feladat futtatásához.

Megjegyzés

Az alábbi példa egy nyilvános tárolórendszerképet használ. A megbízhatóság javítása érdekében importálja és kezelje a rendszerképet egy privát Azure-tárolóregisztrációs adatbázisban. Ezután frissítse a YAML-et a privátan felügyelt alaprendszerkép használatára. Tudjon meg többet a nyilvános képekkel való munkáról.

additional_properties: {}
apiVersion: '2021-09-01'
name: gpucontainergroup
properties:
  containers:
  - name: gpucontainer
    properties:
      image: k8s-gcrio.azureedge.net/cuda-vector-add:v0.1
      resources:
        requests:
          cpu: 1.0
          memoryInGB: 1.5
          gpu:
            count: 1
            sku: V100
  osType: Linux
  restartPolicy: OnFailure

Helyezze üzembe a tárolócsoportot az az container create paranccsal, és adja meg a paraméter YAML-fájlnevét --file . Meg kell adnia egy erőforráscsoport nevét és a tárolócsoport helyét( például eastus), amely támogatja a GPU-erőforrásokat.

az container create --resource-group myResourceGroup --file gpu-deploy-aci.yaml --location eastus

Az üzembe helyezés több percet is igénybe vehet. Ezután a tároló elindít és futtat egy CUDA-vektor-összeadási műveletet. Futtassa az az container logs parancsot a napló kimenetének megtekintéséhez:

az container logs --resource-group myResourceGroup --name gpucontainergroup --container-name gpucontainer

Kimenet:

[Vector addition of 50000 elements]
Copy input data from the host memory to the CUDA device
CUDA kernel launch with 196 blocks of 256 threads
Copy output data from the CUDA device to the host memory
Test PASSED
Done

Példa Erőforráskezelő sablonra

A tárolócsoportok GPU-erőforrásokkal való üzembe helyezésének másik módja egy ARM-sablon használata. Először hozzon létre egy nevű fájlt gpudeploy.json. Ezután másolja be a következő JSON-t. Ez a példa egy olyan V100 GPU-val rendelkező tárolópéldányt helyez üzembe, amely TensorFlow betanítási feladatot futtat az MNIST-adathalmazon. Az erőforrás-kérelmek elegendőek a számítási feladat futtatásához.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
      "containerGroupName": {
        "type": "string",
        "defaultValue": "gpucontainergrouprm",
        "metadata": {
          "description": "Container Group name."
        }
      }
    },
    "variables": {
      "containername": "gpucontainer",
      "containerimage": "mcr.microsoft.com/azuredocs/samples-tf-mnist-demo:gpu"
    },
    "resources": [
      {
        "name": "[parameters('containerGroupName')]",
        "type": "Microsoft.ContainerInstance/containerGroups",
        "apiVersion": "2021-09-01",
        "location": "[resourceGroup().location]",
        "properties": {
            "containers": [
            {
              "name": "[variables('containername')]",
              "properties": {
                "image": "[variables('containerimage')]",
                "resources": {
                  "requests": {
                    "cpu": 4.0,
                    "memoryInGb": 12.0,
                    "gpu": {
                        "count": 1,
                        "sku": "V100"
                  }
                }
              }
            }
          }
        ],
        "osType": "Linux",
        "restartPolicy": "OnFailure"
        }
      }
    ]
}

Helyezze üzembe a sablont az az deployment group create paranccsal. Meg kell adnia egy olyan régióban létrehozott erőforráscsoport nevét, mint például az eastus , amely támogatja a GPU-erőforrásokat.

az deployment group create --resource-group myResourceGroup --template-file gpudeploy.json

Az üzembe helyezés több percet is igénybe vehet. Ezután a tároló elindítja és futtatja a TensorFlow-feladatot. Futtassa az az container logs parancsot a napló kimenetének megtekintéséhez:

az container logs --resource-group myResourceGroup --name gpucontainergrouprm --container-name gpucontainer

Kimenet:

2018-10-25 18:31:10.155010: I tensorflow/core/platform/cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
2018-10-25 18:31:10.305937: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Found device 0 with properties:
name: Tesla V100 major: 3 minor: 7 memoryClockRate(GHz): 0.8235
pciBusID: ccb6:00:00.0
totalMemory: 11.92GiB freeMemory: 11.85GiB
2018-10-25 18:31:10.305981: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1120] Creating TensorFlow device (/device:GPU:0) -> (device: 0, name: Tesla V100, pci bus id: ccb6:00:00.0, compute capability: 3.7)
2018-10-25 18:31:14.941723: I tensorflow/stream_executor/dso_loader.cc:139] successfully opened CUDA library libcupti.so.8.0 locally
Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.
Extracting /tmp/tensorflow/input_data/train-images-idx3-ubyte.gz
Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.
Extracting /tmp/tensorflow/input_data/train-labels-idx1-ubyte.gz
Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.
Extracting /tmp/tensorflow/input_data/t10k-images-idx3-ubyte.gz
Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.
Extracting /tmp/tensorflow/input_data/t10k-labels-idx1-ubyte.gz
Accuracy at step 0: 0.097
Accuracy at step 10: 0.6993
Accuracy at step 20: 0.8208
Accuracy at step 30: 0.8594
...
Accuracy at step 990: 0.969
Adding run metadata for 999

Erőforrások tisztítása

Mivel a GPU-erőforrások használata költséges lehet, győződjön meg arról, hogy a tárolók hosszú ideig nem futnak váratlanul. A tárolók monitorozása az Azure Portalon. A tárolócsoportok állapotát az az container show paranccsal is ellenőrizheti. Például:

az container show --resource-group myResourceGroup --name gpucontainergroup --output table

Ha befejezte a létrehozott tárolópéldányok használatát, törölje őket a következő parancsokkal:

az container delete --resource-group myResourceGroup --name gpucontainergroup -y
az container delete --resource-group myResourceGroup --name gpucontainergrouprm -y