Condividi tramite


Esercitazione: Generare immagini usando GPU serverless nelle applicazioni container di Azure

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

  1. Passare al portale di Azure e cercare e selezionare App contenitore.

  2. Selezionare Crea e quindi App contenitore.

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

  4. 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 >.

  5. 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.
  6. Selezionare Rivedi e crea.

  7. Selezionare Crea.

  8. 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

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

  1. 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"
    
  2. 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"
    
  3. 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_TYPE
    
  4. Creare 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.fqdn
    

    Questo 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

Monitorare la GPU

Dopo aver generato un'immagine, seguire questa procedura per visualizzare i risultati dell'elaborazione gpu:

  1. Aprire l'app contenitore nel portale di Azure.

  2. Nella sezione Monitoraggio, selezionare Console.

  3. Selezionare la replica.

  4. Selezionare il contenitore.

  5. Selezionare Riconnetti.

  6. Nella finestra Scegli comandi di avvio, selezionare/bin/bash e quindi Connetti.

  7. 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.

  1. Nel portale di Azure, cercare e selezionare Gruppi di risorse.

  2. Selezionare my-gpu-demo-group.

  3. Selezionare Elimina gruppo di risorse.

  4. Nella casella di conferma immettere my-gpu-demo-group.

  5. Selezionare Elimina.

Esegui il comando seguente:

az group delete --name $RESOURCE_GROUP

Passaggi successivi