Compartir una reserva de TPU de Cloud

En este documento se describe cómo habilitar la función de compartir reservas. La función de compartir reservas te permite crear VMs de TPU en un proyecto (un proyecto de consumidor) y usar una reserva que pertenece a otro proyecto (el proyecto propietario). La función de compartir reservas también te permite ejecutar tareas de entrenamiento o predicción personalizadas en Vertex AI mediante una reserva de TPU.

El proyecto propietario es el proyecto en el que has creado la reserva. Los proyectos de consumidor son uno o varios proyectos que comparten la reserva. Puedes crear VMs de TPU en el proyecto propietario y en los proyectos de consumidor mediante la reserva del proyecto propietario.

Para obtener más información sobre cómo conseguir una reserva de TPU, consulta Acerca de las reservas de TPU de Cloud.

Limitaciones

Antes de compartir una reserva de TPU, ten en cuenta lo siguiente:

  • Solo puedes modificar una reserva compartida desde el proyecto de su propietario.

  • Puedes modificar una reserva a corto plazo en el modo Calendario o una reserva a largo plazo de las siguientes formas:

    • Solo puedes modificar la reserva después de la hora de inicio.

    • Solo puedes modificar la reserva para permitir o denegar que los trabajos de Vertex AI la consuman.

Compartir una reserva de TPU de Cloud

En las siguientes secciones se describen los diferentes métodos para compartir una reserva.

Habilitar el uso compartido de una reserva de TPU

Puedes crear VMs de TPU en un proyecto de consumidor mediante una reserva que sea propiedad de otro proyecto. Todos los proyectos que compartan una reserva de TPU deben formar parte de la misma organización.

Para habilitar el uso compartido de una reserva de TPU, sigue estos pasos:

  1. Concede permiso al proyecto propietario para crear y modificar reservas compartidas mediante el comando gcloud resource-manager org-policies allow:

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

    Haz los cambios siguientes:

  2. Habilita la opción de compartir CUDs a través de la consola Google Cloud . Para obtener instrucciones, consulta Habilitar el uso compartido de CUDs para compromisos basados en recursos.

  3. Para habilitar la opción de compartir, usa el comando gcloud beta compute reservations update con las marcas --share-setting=projects y --share-with:

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

    Haz los cambios siguientes:

    • RESERVATION_NAME: el nombre de la reserva.
    • OWNER_PROJECT_ID: ID del proyecto que contiene la reserva.
    • CONSUMER_PROJECT_IDS: lista separada por comas de los IDs de los proyectos que pueden usar esta reserva. Por ejemplo, project-1,project-2. Puedes incluir hasta 100 proyectos de consumidor. Estos proyectos deben pertenecer a la misma organización que el proyecto propietario. No incluyas el proyecto propietario. De forma predeterminada, el proyecto propietario ya tiene permiso para usar la reserva.
    • ZONE: la zona en la que se encuentra la reserva.

Inhabilitar el uso compartido de una reserva de TPU

Para inhabilitar el uso compartido de una reserva de TPU con una lista de proyectos de consumidor, usa el comando gcloud beta compute reservations update con las marcas --share-setting=projects y --remove-share-with:

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

Haz los cambios siguientes:

  • RESERVATION_NAME: el nombre de la reserva.
  • OWNER_PROJECT_ID: ID del proyecto que contiene la reserva.
  • CONSUMER_PROJECT_IDS: lista separada por comas de los IDs de los proyectos con los que quieres dejar de compartir la reserva. Por ejemplo, project-1,project-2.
  • ZONE: la zona en la que se encuentra la reserva.

Para inhabilitar el uso compartido de una reserva de TPU con todos los proyectos de consumidor, cambia la reserva a una reserva local con el comando gcloud beta compute reservations update y la marca --share-setting=local:

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

Haz los cambios siguientes:

  • RESERVATION_NAME: el nombre de la reserva.
  • OWNER_PROJECT_ID: ID del proyecto que contiene la reserva.
  • ZONE: la zona en la que se encuentra la reserva.

Permitir que Vertex AI use una reserva de TPU

Puedes permitir que las tareas de entrenamiento o las tareas de predicción de Vertex AI consuman una reserva a corto plazo en modo calendario o una reserva a largo plazo solo después de su hora de inicio.

Para permitir que Vertex AI use una reserva de TPU, usa el comando gcloud beta compute reservations update con la marca --reservation-sharing-policy=ALLOW_ALL:

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

Haz los cambios siguientes:

  • RESERVATION_NAME: el nombre de la reserva.
  • OWNER_PROJECT_ID: ID del proyecto que contiene la reserva.
  • ZONE: la zona de la reserva.

No permitir que Vertex AI use una reserva de TPU

Antes de impedir que Vertex AI use una reserva de TPU, detén cualquier tarea de Vertex AI que la utilice. De lo contrario, se producirán errores.

Para impedir que Vertex AI consuma una reserva de TPU, usa el comando gcloud beta compute reservations update con la marca --reservation-sharing-policy=DISALLOW_ALL:

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

Haz los cambios siguientes:

  • RESERVATION_NAME: el nombre de la reserva.
  • OWNER_PROJECT_ID: ID del proyecto que contiene la reserva.
  • ZONE: la zona de la reserva.

Obtener información sobre una reserva compartida

Solo puedes obtener información sobre una reserva compartida desde el proyecto propietario.

Para obtener información sobre una reserva compartida, usa el comando gcloud compute reservations describe:

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

Haz los cambios siguientes:

  • RESERVATION_NAME: el nombre de la reserva.
  • OWNER_PROJECT_ID: ID del proyecto que contiene la reserva.
  • ZONE: la zona de la reserva.

La respuesta es similar a la siguiente:

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

Siguientes pasos