Condividere una prenotazione Cloud TPU

Questo documento descrive come attivare la condivisione delle prenotazioni. La condivisione delle prenotazioni consente di creare VM TPU in un progetto (un progetto consumer) e di utilizzare una prenotazione di proprietà di un altro progetto (il progetto proprietario). La condivisione della prenotazione consente inoltre di eseguire job di addestramento o previsione personalizzati in Vertex AI utilizzando una prenotazione TPU.

Il progetto proprietario è il progetto in cui hai creato la prenotazione. I progetti consumer sono uno o più progetti che condividono la prenotazione. Puoi creare VM TPU nel progetto proprietario e nei progetti consumer utilizzando la prenotazione nel progetto proprietario.

Per ulteriori informazioni su come ottenere una prenotazione di TPU, consulta Informazioni sulle prenotazioni di Cloud TPU.

Limitazioni

Prima di condividere una prenotazione di TPU, tieni presente quanto segue:

  • Puoi modificare una prenotazione condivisa solo dal progetto del proprietario.

  • Puoi modificare una prenotazione a breve termine in modalità calendario o una prenotazione a lungo termine solo come segue:

    • Puoi modificare la prenotazione solo dopo l'ora di inizio.

    • Puoi modificare la prenotazione solo per consentire o meno l'utilizzo da parte dei job in Vertex AI.

Condividere una prenotazione Cloud TPU

Le sezioni seguenti descrivono i diversi metodi per condividere una prenotazione.

Attivare la condivisione di una prenotazione TPU

Puoi creare VM TPU in un progetto consumer utilizzando una prenotazione di proprietà di un altro progetto. Tutti i progetti che condividono una prenotazione TPU devono appartenere alla stessa organizzazione.

Per attivare la condivisione di una prenotazione TPU:

  1. Concedi al progetto proprietario l'autorizzazione per creare e modificare le prenotazioni condivise utilizzando il gcloud resource-manager org-policies allow comando:

    gcloud resource-manager org-policies allow \
        compute.sharedReservationsOwnerProjects \
        projects/OWNER_PROJECT_NUMBER --organization=ORGANIZATION_ID

    Sostituisci quanto segue:

    • OWNER_PROJECT_NUMBER: il numero di progetto (non l'ID progetto) di un progetto della tua organizzazione per cui vuoi consentire di creare e modificare le prenotazioni condivise.
    • ORGANIZATION_ID: l'ID risorsa dell'organizzazione della tua organizzazione.
  2. Attiva la condivisione del CUD tramite la Google Cloud console. Per istruzioni, consulta Attivare la condivisione CUD per gli impegni basati sulle risorse.

  3. Per attivare la condivisione, utilizza il comando gcloud beta compute reservations update con i flag --share-setting=projects e --share-with:

    gcloud beta compute reservations update RESERVATION_NAME \
        --project=OWNER_PROJECT_ID \
        --share-setting=projects \
        --share-with=CONSUMER_PROJECT_IDS \
        --zone=ZONE

    Sostituisci quanto segue:

    • RESERVATION_NAME: il nome della prenotazione.
    • OWNER_PROJECT_ID: l'ID del progetto che contiene la prenotazione.
    • CONSUMER_PROJECT_IDS: un elenco separato da virgole di ID dei progetti che possono utilizzare questa prenotazione. Ad esempio, project-1,project-2. Puoi includere fino a 100 progetti per consumatori. Questi progetti devono trovarsi nella stessa organizzazione del progetto proprietario. Non includere il progetto del proprietario. Per impostazione predefinita, il progetto proprietario è già autorizzato a utilizzare la prenotazione.
    • ZONE: la zona in cui si trova la prenotazione.

Disattivare la condivisione di una prenotazione TPU

Per disattivare la condivisione di una prenotazione TPU con un elenco di progetti consumer, utilizza il comando gcloud beta compute reservations update con i flag --share-setting=projects e --remove-share-with:

gcloud compute reservations update RESERVATION_NAME \
    --project=OWNER_PROJECT_ID \
    --share-setting=projects \
    --remove-share-with=CONSUMER_PROJECT_IDS \
    --zone=ZONE

Sostituisci quanto segue:

  • RESERVATION_NAME: il nome della prenotazione.
  • OWNER_PROJECT_ID: l'ID del progetto che contiene la prenotazione.
  • CONSUMER_PROJECT_IDS: un elenco separato da virgole di ID dei progetti con cui non vuoi più condividere la prenotazione. Ad esempio, project-1,project-2.
  • ZONE: la zona in cui si trova la prenotazione.

Per disattivare la condivisione di una prenotazione TPU con tutti i progetti consumer, impostala come prenotazione locale utilizzando il comando gcloud beta compute reservations update con il flag --share-setting=local:

gcloud beta compute reservations update RESERVATION_NAME \
    --project=OWNER_PROJECT_ID \
    --share-setting=local \
    --zone=ZONE

Sostituisci quanto segue:

  • RESERVATION_NAME: il nome della prenotazione.
  • OWNER_PROJECT_ID: l'ID del progetto che contiene la prenotazione.
  • ZONE: la zona in cui si trova la prenotazione.

Consenti a Vertex AI di utilizzare una prenotazione TPU

Puoi consentire ai job di addestramento o ai job di previsione in Vertex AI di utilizzare una prenotazione a breve termine in modalità calendario o una prenotazione a lungo termine solo dopo la relativa ora di inizio.

Per consentire a Vertex AI di utilizzare una prenotazione TPU, utilizza il gcloud beta compute reservations update comando con il --reservation-sharing-policy=ALLOW_ALL flag:

gcloud beta compute reservations update RESERVATION_NAME \
    --project=OWNER_PROJECT_ID \
    --zone=ZONE \
    --reservation-sharing-policy=ALLOW_ALL

Sostituisci quanto segue:

  • RESERVATION_NAME: il nome della prenotazione.
  • OWNER_PROJECT_ID: l'ID del progetto che contiene la prenotazione.
  • ZONE: la zona della prenotazione.

Non consentire a Vertex AI di utilizzare una prenotazione TPU

Prima di impedire a Vertex AI di utilizzare una prenotazione TPU, interrompi tutti i job Vertex AI che la utilizzano. In caso contrario, riscontrerai errori.

Per impedire a Vertex AI di utilizzare una prenotazione TPU, utilizza il comando gcloud beta compute reservations update con il flag --reservation-sharing-policy=DISALLOW_ALL:

gcloud beta compute reservations update RESERVATION_NAME \
    --project=OWNER_PROJECT_ID \
    --zone=ZONE \
    --reservation-sharing-policy=DISALLOW_ALL

Sostituisci quanto segue:

  • RESERVATION_NAME: il nome della prenotazione.
  • OWNER_PROJECT_ID: l'ID del progetto che contiene la prenotazione.
  • ZONE: la zona della prenotazione.

Visualizzare le informazioni su una prenotazione condivisa

Puoi ottenere informazioni su una prenotazione condivisa solo dal progetto del proprietario.

Per ottenere informazioni su una prenotazione condivisa, utilizza il comando gcloud compute reservations describe:

gcloud compute reservations describe RESERVATION_NAME \
    --project=OWNER_PROJECT_ID \
    --zone=ZONE

Sostituisci quanto segue:

  • RESERVATION_NAME: il nome della prenotazione.
  • OWNER_PROJECT_ID: l'ID del progetto che contiene la prenotazione.
  • ZONE: la zona della prenotazione.

La risposta è simile alla seguente:

aggregateReservation:
[...]
name: RESERVATION_NAME
reservationSharingPolicy:
  serviceShareType: ALLOW_ALL
resourceStatus: {}
selfLink: https://www.googleapis.com/compute/v1/projects/OWNER_PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME
shareSettings:
  projectMap:
    'CONSUMER_PROJECT_1':
      projectId: 'CONSUMER_PROJECT_1'
    'CONSUMER_PROJECT_2':
      projectId: 'CONSUMER_PROJECT_2'
  shareType: SPECIFIC_PROJECTS
specificReservationRequired: true
status: READY
zone: https://www.googleapis.com/compute/v1/projects/OWNER_PROJECT_ID/zones/ZONE

Passaggi successivi