Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
Tento produkt je vyřazen od 14. července 2025.
Pokud chcete ve službě Azure Container Instances spouštět určité výpočetní úlohy, nasaďte skupiny kontejnerů s prostředky grafických procesorů (GPU). Instance kontejnerů ve skupině mají přístup k jednomu nebo několika grafickým procesorům NVIDIA Tesla při spouštění úloh kontejnerů, jako je architektura CUDA (Compute Unified Device Architecture) a aplikace hlubokého učení.
Tento článek ukazuje, jak přidat prostředky GPU při nasazení skupiny kontejnerů pomocí souboru YAML nebo šablony Azure Resource Manageru (šablona ARM). Prostředky GPU můžete také zadat při nasazování instance kontejneru pomocí webu Azure Portal.
Požadavky
Z důvodu některých aktuálních omezení nemusí být všechny žádosti o zvýšení limitu schváleny.
Pokud chcete použít tuto verzi pro nasazení produkčního kontejneru, vytvořte žádost o podporu Azure , která zvýší limit.
Omezení verze Preview
Ve verzi Preview platí následující omezení při použití prostředků GPU ve skupinách kontejnerů.
Dostupnost oblastí
| Oblasti | Operační systém | Dostupné skladové položky GPU |
|---|---|---|
| USA – východ, Západní Evropa, USA – západ 2, Jihovýchodní Asie, Indie – střed | Linux | V100 |
Podpora bude přidána pro další oblasti v průběhu času.
Podporované typy operačního systému: pouze Linux.
Další omezení: Při nasazování skupiny kontejnerů do virtuální sítě nemůžete používat prostředky GPU.
O prostředcích GPU
Počet a verze
Pokud chcete použít GPU v instanci kontejneru, zadejte prostředek GPU s následujícími informacemi:
Počet: Počet GPU je jeden, dva nebo čtyři.
Verze: Verze GPU je V100. Každá verze odpovídá NVIDIA Tesla GPU v jedné z těchto následujících Rodin virtuálních počítačů s podporou GPU Azure:
Version Řada virtuálních počítačů V100 NCv3
Maximální počet prostředků na skladovou položku
| Operační systém | Skladová položka GPU | Počet GPU | Max CPU (maximální využití procesoru) | Maximální paměť (GB) | Úložiště (GB) |
|---|---|---|---|---|---|
| Linux | V100 | 1 | 6 | 112 | 50 |
| Linux | V100 | 2 | 12 | 224 | 50 |
| Linux | V100 | 4 | 24 | 448 | 50 |
Při nasazování prostředků GPU nastavte prostředky procesoru a paměti vhodné pro úlohu až do maximálních hodnot zobrazených v předchozí tabulce. Tyto hodnoty jsou aktuálně větší než prostředky procesoru a paměti dostupné ve skupinách kontejnerů bez prostředků GPU.
Důležité
Výchozí limity předplatného (kvóty) pro prostředky GPU se liší podle verze. Výchozí omezení procesoru pro verze V100 jsou zpočátku nastavená na 0. Pokud chcete požádat o zvýšení dostupné oblasti, odešlete žádost o podporu Azure.
Co je potřeba vědět
Čas nasazení: Vytvoření skupiny kontejnerů obsahující prostředky GPU trvá až 8 až 10 minut. K zřízení a konfiguraci virtuálního počítače s GPU v Azure je potřeba více času.
Ceny: Podobně jako u skupin kontejnerů bez prostředků GPU se Azure účtuje za prostředky, které se spotřebovávají po dobu trvání skupiny kontejnerů s prostředky GPU. Doba trvání se vypočítá od okamžiku, kdy se stáhne image vašeho prvního kontejneru, dokud se skupina kontejnerů neukončí. Nezahrnuje čas nasazení skupiny kontejnerů.
Další informace najdete v podrobnostech o cenách.
Ovladače CUDA: Kontejnerové instance s GPU prostředky jsou předem vybaveny ovladači NVIDIA CUDA a kontejnerovými runtime, což umožňuje použití kontejnerových imagí vyvinutých pro úlohy CUDA.
V této fázi podporujeme až CUDA 11. Například pro soubor Dockeru můžete použít následující základní image:
Pokud chcete zvýšit spolehlivost při použití veřejné image kontejneru z Docker Hubu, naimportujte a spravujte image v privátním registru kontejnerů Azure. Potom aktualizujte soubor Dockeru tak, aby používal privátně spravovaný základní obraz. Přečtěte si další informace o práci s veřejnými imagemi.
Příklad YAML
Jedním ze způsobů, jak přidat prostředky GPU, je nasadit skupinu kontejnerů pomocí souboru YAML. Zkopírujte následující YAML do nového souboru s názvem gpu-deploy-aci.yaml a pak soubor uložte. Tento YAML vytvoří skupinu kontejnerů s názvem gpucontainergroup , která určuje instanci kontejneru s GPU V100. Instance spustí ukázkovou aplikaci sčítání vektorů CUDA. Požadavky na prostředky jsou dostatečné ke spuštění úlohy.
Poznámka:
Následující příklad používá image veřejného kontejneru. Pokud chcete zvýšit spolehlivost, importujte a spravujte image v privátním registru kontejneru Azure. Pak aktualizujte YAML tak, aby používala soukromě spravovanou základní image. Přečtěte si další informace o práci s veřejnými imagemi.
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
Nasaďte skupinu kontejnerů pomocí příkazu az container create a zadejte název souboru YAML pro --file parametr. Musíte zadat název skupiny prostředků a umístění pro skupinu kontejnerů, například eastus, která podporuje prostředky GPU.
az container create --resource-group myResourceGroup --file gpu-deploy-aci.yaml --location eastus
Dokončení nasazení trvá několik minut. Kontejner se pak spustí a provede operaci sčítání vektorů pomocí CUDA. Spuštěním příkazu az container logs zobrazte výstup protokolu:
az container logs --resource-group myResourceGroup --name gpucontainergroup --container-name gpucontainer
Výstup:
[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říklad šablony Resource Manageru
Dalším způsobem, jak nasadit skupinu kontejnerů s prostředky GPU, je použití šablony ARM. Začněte vytvořením souboru s názvem gpudeploy.json. Pak do něj zkopírujte následující KÓD JSON. Tento příklad nasadí instanci kontejneru s GPU V100, která spouští trénovací úlohu TensorFlow pro datovou sadu MNIST. Požadavky na prostředky jsou dostatečné ke spuštění úlohy.
{
"$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"
}
}
]
}
Nasaďte šablonu pomocí příkazu az deployment group create . Musíte zadat název skupiny prostředků, která byla vytvořena v oblasti, například eastus , která podporuje prostředky GPU.
az deployment group create --resource-group myResourceGroup --template-file gpudeploy.json
Dokončení nasazení trvá několik minut. Pak se kontejner spustí a spustí úlohu TensorFlow. Spuštěním příkazu az container logs zobrazte výstup protokolu:
az container logs --resource-group myResourceGroup --name gpucontainergrouprm --container-name gpucontainer
Výstup:
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
Čištění zdrojů
Vzhledem k tomu, že používání prostředků GPU může být nákladné, ujistěte se, že vaše kontejnery neběží neočekávaně dlouho. Monitorujte kontejnery na webu Azure Portal. Stav skupiny kontejnerů můžete také zkontrolovat pomocí příkazu az container show . Například:
az container show --resource-group myResourceGroup --name gpucontainergroup --output table
Po dokončení práce s instancemi kontejneru, které jste vytvořili, je odstraňte pomocí následujících příkazů:
az container delete --resource-group myResourceGroup --name gpucontainergroup -y
az container delete --resource-group myResourceGroup --name gpucontainergrouprm -y
Související obsah
- Přečtěte si další informace o tom, jak nasadit skupinu kontejnerů pomocí souboru YAML nebo šablony ARM.
- Přečtěte si další informace o velikostech virtuálních počítačů optimalizovaných pro GPU v Azure.