Partilhe uma reserva de Cloud TPU

Este documento descreve como ativar a partilha de reservas. A partilha de reservas permite-lhe criar VMs de TPU num projeto (um projeto consumidor) e usar uma reserva que outro projeto (o projeto proprietário) detém. A partilha de reservas também lhe permite executar tarefas de preparação ou previsão personalizadas no Vertex AI através de uma reserva de TPU.

O projeto proprietário é o projeto onde criou a reserva. Os projetos de consumo são um ou mais projetos que partilham a reserva. Pode criar VMs de TPU no projeto proprietário e nos projetos consumidores através da reserva no projeto proprietário.

Para mais informações sobre como obter uma reserva de TPU, consulte o artigo Acerca das reservas de Cloud TPU.

posteriores da TPU.

Limitações

Antes de partilhar uma reserva de TPU, considere o seguinte:

  • Só pode modificar uma reserva partilhada a partir do projeto proprietário.

  • Pode modificar uma reserva de curta duração no modo de calendário ou uma reserva de longa duração apenas da seguinte forma:

    • Só pode modificar a reserva após a hora de início.

    • Só pode modificar a reserva para permitir ou não permitir que as tarefas na Vertex AI a consumam.

Partilhe uma reserva de Cloud TPU

As secções seguintes descrevem os diferentes métodos para partilhar uma reserva.

Ative a partilha de uma reserva de TPU

Pode criar VMs de TPU num projeto de consumidor usando uma reserva pertencente a outro projeto. Todos os projetos que partilham uma reserva de TPU têm de fazer parte da mesma organização.

Para ativar a partilha de uma reserva de TPU:

  1. Conceda autorização ao projeto proprietário para criar e modificar reservas partilhadas usando o comando gcloud resource-manager org-policies allow:

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

    Substitua o seguinte:

  2. Ative a partilha de CUD através da consola Google Cloud . Para ver instruções, consulte o artigo Ative a partilha de CUD para compromissos baseados em recursos.

  3. Para ativar a partilha, use o comando gcloud beta compute reservations update com as flags --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

    Substitua o seguinte:

    • RESERVATION_NAME: o nome da reserva.
    • OWNER_PROJECT_ID: o ID do projeto que contém a reserva.
    • CONSUMER_PROJECT_IDS: uma lista de IDs separados por vírgulas de projetos que podem consumir esta reserva. Por exemplo, project-1,project-2. Pode incluir até 100 projetos de consumo. Estes projetos têm de estar na mesma organização que o projeto proprietário. Não inclua o projeto proprietário. Por predefinição, o projeto proprietário já tem autorização para consumir a reserva.
    • ZONE: a zona onde a reserva está localizada.

Desative a partilha de uma reserva de TPU

Para desativar a partilha de uma reserva de TPU com uma lista de projetos de consumidor, use o comando gcloud beta compute reservations update com os flags --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

Substitua o seguinte:

  • RESERVATION_NAME: o nome da reserva.
  • OWNER_PROJECT_ID: o ID do projeto que contém a reserva.
  • CONSUMER_PROJECT_IDS: uma lista de IDs de projetos separados por vírgulas com os quais quer deixar de partilhar a reserva. Por exemplo, project-1,project-2.
  • ZONE: a zona onde a reserva está localizada.

Para desativar a partilha de uma reserva de TPU com todos os projetos de consumidor, altere a reserva para uma reserva local através do comando gcloud beta compute reservations update com a flag --share-setting=local:

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

Substitua o seguinte:

  • RESERVATION_NAME: o nome da reserva.
  • OWNER_PROJECT_ID: o ID do projeto que contém a reserva.
  • ZONE: a zona onde a reserva está localizada.

Permita que o Vertex AI use uma reserva de TPU

Pode permitir que as tarefas de preparação ou de previsão no Vertex AI consumam uma reserva de curto prazo no modo de calendário ou uma reserva de longo prazo apenas após a respetiva hora de início.

Para permitir que o Vertex AI consuma uma reserva de TPU, use o comando gcloud beta compute reservations update com a flag --reservation-sharing-policy=ALLOW_ALL:

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

Substitua o seguinte:

  • RESERVATION_NAME: o nome da reserva.
  • OWNER_PROJECT_ID: o ID do projeto que contém a reserva.
  • ZONE: a zona da reserva.

Não permitir que o Vertex AI use uma reserva de TPU

Antes de impedir que o Vertex AI consuma uma reserva de TPU, pare todas as tarefas do Vertex AI que a usam. Caso contrário, ocorrem erros.

Para não permitir que o Vertex AI consuma uma reserva de TPU, use o comando gcloud beta compute reservations update com a flag --reservation-sharing-policy=DISALLOW_ALL:

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

Substitua o seguinte:

  • RESERVATION_NAME: o nome da reserva.
  • OWNER_PROJECT_ID: o ID do projeto que contém a reserva.
  • ZONE: a zona da reserva.

Receba informações sobre uma reserva partilhada

Só pode obter informações sobre uma reserva partilhada a partir do projeto proprietário.

Para obter informações sobre uma reserva partilhada, use o gcloud compute reservations describe comando:

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

Substitua o seguinte:

  • RESERVATION_NAME: o nome da reserva.
  • OWNER_PROJECT_ID: o ID do projeto que contém a reserva.
  • ZONE: a zona da reserva.

A resposta é semelhante à seguinte:

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

O que se segue?