Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come creare un'app contenitore che usa GPU serverless per supportare un'applicazione di intelligenza artificiale.
Con le GPU serverless, è possibile accedere direttamente alle risorse di calcolo della GPU senza dover eseguire la configurazione manuale dell'infrastruttura, ad esempio l'installazione dei driver. È necessario solo distribuire l'immagine del modello di intelligenza artificiale.
In questa esercitazione:
- Creare una nuova app contenitore e un nuovo ambiente
- Configurare l'ambiente per l'uso di GPU serverless
- Distribuire l'app in App Azure Container
- Usare la nuova applicazione di abilitazione della GPU serverless
- Abilitare lo streaming degli artefatti per ridurre l'avvio a freddo della GPU
Prerequisiti
| Risorsa | Descrizione |
|---|---|
| Account Azure | È necessario un account Azure con una sottoscrizione attiva. Se non è disponibile una, è possibile crearne una gratuitamente. |
| Accesso a GPU serverless | L'accesso alle GPU è disponibile solo dopo aver richiesto quote GPU. È possibile inviare la richiesta di quote GPU tramite un caso di assistenza clienti. |
| Risorsa | Descrizione |
|---|---|
| Account Azure | È necessario un account Azure con una sottoscrizione attiva. Se non è disponibile una, è possibile crearne una gratuitamente. |
| Accesso a GPU serverless | L'accesso alle GPU è disponibile solo dopo aver richiesto quote GPU. È possibile inviare la richiesta di quote GPU tramite un caso di assistenza clienti. |
| CLI di Azure | Installare l'interfaccia della riga di comando di Azure o eseguire l'aggiornamento alla versione più recente. |
Creare l'app contenitore
Passare al portale di Azure e cercare e selezionare App contenitore.
Selezionare Crea e quindi App contenitore.
Nella finestra Informazioni di base, immettere i valori seguenti in ogni sezione.
In Dettagli progetto, immettere i valori seguenti:
Impostazione valore Subscription Selezionare la sottoscrizione di Azure. Gruppo di risorse Seleziona Crea nuovo e immetti my-gpu-demo-group. Nome app contenitore Immettere my-gpu-demo-app. Origine distribuzione Selezionare Immagine del contenitore. Nell'ambiente App contenitore, immettere i valori seguenti:
Impostazione valore Region Selezionare Svezia centrale.
Per altre aree supportate, vedere Uso di GPU serverless in Azure.Ambiente app contenitore Selezionare Crea nuovo. Nella finestra Crea ambiente app contenitore, immettere i valori seguenti:
Impostazione valore Nome ambiente Immettere my-gpu-demo-env. Selezionare Crea.
Selezionare Avanti: Contenitore >.
Nella finestra Contenitore, immettere i valori seguenti:
Impostazione valore Nome Immettere my-gpu-demo-container. Origine immagine Selezionare Docker Hub o altri registri. Tipo di immagine Selezionare Pubblica. Server di accesso del Registro di sistema Immettere mcr.microsoft.com. Immagine e tag Immettere k8se/gpu-quickstart:latest. Profilo del carico di lavoro Selezionare Consumo - Fino a 4 vCPU, 8 GiB di memoria. GPU Selezionare la casella di controllo. Tipo di GPU Selezionare Consumption-GPU-NC8as-T4 - Fino a 8 vCPU, 56 GiB memoria e selezionare il collegamento per aggiungere il profilo all'ambiente. Selezionare Avanti: In ingresso >.
Nella finestra Ingresso, immettere i valori seguenti:
Impostazione valore Dati in ingresso Selezionare la casella di controllo Abilitato. Traffico in ingresso Selezionare il pulsante di opzione Accetta traffico da qualsiasi posizione. Porta di destinazione Immettere 80. Selezionare Rivedi e crea.
Selezionare Crea.
Attendere alcuni istanti per il completamento della distribuzione e quindi selezionare Vai alla risorsa.
Il completamento di questo processo può richiedere fino a cinque minuti.
Usare l'app GPU
Nella finestra Panoramica, selezionare il collegamento URL applicazione per aprire il front-end dell'app Web nel browser e usare l'applicazione GPU.
Note
- Per ottenere le migliori prestazioni delle app GPU, segui i passaggi per migliorare l'avvio a freddo per le GPU serverless.
- Quando sono presenti più contenitori nell'applicazione, il primo contenitore ottiene l'accesso alla GPU.
Creare variabili di ambiente
Definire le variabili di ambiente seguenti. Prima di eseguire questo comando, sostituire i valori con <PLACEHOLDERS>.
RESOURCE_GROUP="<RESOURCE_GROUP>"
ENVIRONMENT_NAME="<ENVIRONMENT_NAME>"
LOCATION="swedencentral"
CONTAINER_APP_NAME="<CONTAINER_APP_NAME>"
CONTAINER_IMAGE="mcr.microsoft.com/k8se/gpu-quickstart:latest"
WORKLOAD_PROFILE_NAME="NC8as-T4"
WORKLOAD_PROFILE_TYPE="Consumption-GPU-NC8as-T4"
Creare l'app contenitore
Creare il gruppo di risorse per contenere le risorse create in questa esercitazione. Questo comando deve restituire
Succeeded.az group create \ --name $RESOURCE_GROUP \ --location $LOCATION \ --query "properties.provisioningState"Crea un ambiente di App di contenitori per ospitare la tua applicazione contenitore. Questo comando deve restituire
Succeeded.az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --location "$LOCATION" \ --query "properties.provisioningState"Aggiungere un profilo di carico di lavoro all'ambiente.
az containerapp env workload-profile add \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --workload-profile-name $WORKLOAD_PROFILE_NAME \ --workload-profile-type $WORKLOAD_PROFILE_TYPECreare l'applicazione contenitore.
az containerapp create \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --environment $ENVIRONMENT_NAME \ --image $CONTAINER_IMAGE \ --target-port 80 \ --ingress external \ --cpu 8.0 \ --memory 56.0Gi \ --workload-profile-name $WORKLOAD_PROFILE_NAME \ --query properties.configuration.ingress.fqdnQuesto comando restituisce l'URL dell'applicazione per l'app contenitore.
Usare l'app GPU
Aprire l'URL dell'applicazione per l'app contenitore nel browser. Si noti che l'avvio dell'app contenitore può richiedere fino a cinque minuti.
L'applicazione Azure Container Apps con GPU serverless consente di inserire un prompt per generare un'immagine. È anche possibile selezionare Generate Image semplicemente per usare il prompt predefinito. Nel passaggio successivo vengono visualizzati i risultati dell'elaborazione gpu.
Note
- Per ottenere le migliori prestazioni delle app GPU, segui i passaggi per migliorare l'avvio a freddo per le GPU serverless.
- Quando sono presenti più contenitori nell'applicazione, il primo contenitore ottiene l'accesso alla GPU.
Monitorare la GPU
Dopo aver generato un'immagine, seguire questa procedura per visualizzare i risultati dell'elaborazione gpu:
Aprire l'app contenitore nel portale di Azure.
Nella sezione Monitoraggio, selezionare Console.
Selezionare la replica.
Selezionare il contenitore.
Selezionare Riconnetti.
Nella finestra Scegli comandi di avvio, selezionare/bin/bash e quindi Connetti.
Dopo aver configurato la shell, immettere il comando nvidia-smi per esaminare lo stato e l'output della GPU.
Pulire le risorse
Le risorse create in questa esercitazione hanno effetto sulla fattura di Azure.
Se non si intende usare questi servizi a lungo termine, seguire la procedura per rimuovere tutti gli elementi creati in questa esercitazione.
Nel portale di Azure, cercare e selezionare Gruppi di risorse.
Selezionare my-gpu-demo-group.
Selezionare Elimina gruppo di risorse.
Nella casella di conferma immettere my-gpu-demo-group.
Selezionare Elimina.
Esegui il comando seguente:
az group delete --name $RESOURCE_GROUP