Solicitar Cloud TPUs usando o Flex-start

O Flex-start para Cloud TPU, com o Dynamic Workload Scheduler, oferece uma maneira flexível e econômica de acessar recursos de TPU para cargas de trabalho de IA. O Flex-start permite provisionar TPUs dinamicamente conforme necessário, por até sete dias, sem reservas de longo prazo ou gerenciamento de cota complexo. Com o Flex-start, você envia uma solicitação de provisionamento de TPU que persiste até que a capacidade fique disponível. Quando disponível, o Flex-start provisiona as VMs de TPU para execução pelo período especificado na solicitação.

O início flexível é uma boa opção para experimentos rápidos, testes em pequena escala, provisionamento dinâmico de TPUs para cargas de trabalho de inferência, ajustes finos de modelos e execuções de carga de trabalho que levam menos de sete dias. Para mais informações sobre outras opções de consumo de TPU, consulte Opções de consumo de Cloud TPU.

Você pode excluir seus recursos de TPU a qualquer momento para interromper a cobrança. Para mais informações sobre os preços da TPU, consulte Preços da Cloud TPU.

Limitações

Os Cloud TPUs com início flexível têm as seguintes limitações:

  • É possível solicitar recursos com início flexível por até sete dias.
  • Só é possível solicitar a TPU v6e e v5e com início flexível nas zonas especificadas:
    • TPU v6e para treinamento e veiculação: asia-northeast1-b, us-east5-a
    • TPU v5e para treinamento: us-west4-a
    • TPU v5e para veiculação: us-central1-a
  • É necessário usar a API de recursos em fila para usar o Flex-start com o Cloud TPU.

Antes de começar

Antes de solicitar TPUs com início flexível, você precisa:

  • Instalar a CLI do Google Cloud
  • Criar um Google Cloud projeto
  • Ativar a API Cloud TPU

Para mais informações, consulte Configurar o ambiente do Cloud TPU.

Você também precisa ter cota preemptiva suficiente para usar o início flexível. A cota preemptiva padrão para TPU v5e e v6e é de 64 núcleos. Se você precisar de mais núcleos de TPU do que o valor concedido pela cota padrão, solicite uma alocação de cota maior. Para mais informações, consulte Cotas do Cloud TPU.

Solicitar TPUs com início flexível

O Flex-start usa a API de recursos enfileirados do TPU para solicitar recursos do TPU de maneira enfileirada. Quando o recurso solicitado fica disponível, ele é atribuído ao projeto Google Cloud para uso imediato e exclusivo. Após a duração de execução solicitada, as VMs de TPU são excluídas, e o recurso na fila é movido para o estado SUSPENDED. Para mais informações sobre recursos em fila, consulte Gerenciar recursos em fila.

Para solicitar TPUs com início flexível, use o comando gcloud alpha compute tpus queued-resources create com a flag --provisioning-model definida como flex-start e a flag --max-run-duration definida como a duração que você quer que as TPUs sejam executadas.

gcloud alpha compute tpus queued-resources create QUEUED_RESOURCE_ID
    --zone=ZONE \
    --accelerator-type=ACCELERATOR_TYPE \
    --runtime-version=RUNTIME_VERSION \
    --node-id=NODE_ID \
    --provisioning-model=flex-start \
    --max-run-duration=RUN_DURATION

Substitua os seguintes marcadores de posição:

  • QUEUED_RESOURCE_ID: um ID atribuído pelo usuário para a solicitação de recurso em fila.
  • ZONE: a zona em que a VM do TPU será criada.
  • ACCELERATOR_TYPE: especifica a versão e o tamanho da Cloud TPU a ser criada. Para mais informações sobre os tipos de aceleradores compatíveis com cada versão de TPU, consulte Versões de TPU.
  • RUNTIME_VERSION: a versão do software Cloud TPU.
  • NODE_ID: um ID atribuído pelo usuário ao TPU que é criado quando a solicitação de recurso em fila é alocada.
  • RUN_DURATION: o tempo de execução das TPUs. Formate a duração como o número de dias, horas, minutos e segundos, seguido por d, h, m e s, respectivamente. Por exemplo, especifique 72h para uma duração de 72 horas ou 1d2h3m4s para uma duração de um dia, duas horas, três minutos e quatro segundos. O máximo é de 7 dias.

Você pode personalizar ainda mais a solicitação de recurso em fila para ser executada em horários específicos com outras flags:

  • --valid-after-duration: a duração antes da qual a TPU não pode ser provisionada.
  • --valid-after-time: o tempo antes do qual a TPU não pode ser provisionada.
  • --valid-until-duration: a duração de validade da solicitação. Se a solicitação não for atendida nesse período, ela vai expirar e ser movida para o estado FAILED.
  • --valid-until-time: o tempo em que a solicitação é válida. Se a solicitação não for atendida até esse horário, ela vai expirar e mudar para o estado FAILED.

Para mais informações sobre flags opcionais, consulte a documentação de gcloud alpha compute tpus queued-resources create.

Receber o status de uma solicitação de início flexível

Para monitorar o status da sua solicitação de início flexível, use a API de recursos em fila para conferir o status da solicitação de recurso em fila usando o comando gcloud alpha compute tpus queued-resources describe:

gcloud alpha compute tpus queued-resources describe QUEUED_RESOURCE_ID \
    --zone ZONE

Um recurso em fila pode estar em um dos seguintes estados:

  • WAITING_FOR_RESOURCES: a solicitação passou pela validação inicial e foi adicionada à fila.
  • PROVISIONING: a solicitação foi selecionada da fila, e as VMs da TPU estão sendo criadas.
  • ACTIVE: a solicitação foi atendida e as VMs do TPU estão prontas.
  • FAILED: não foi possível concluir a solicitação. Use o comando describe para mais detalhes.
  • SUSPENDING: os recursos associados à solicitação estão sendo excluídos.
  • SUSPENDED: os recursos associados à solicitação foram excluídos.

Para mais informações, consulte Recuperar estado e informações de diagnóstico sobre uma solicitação de recurso em fila.

Monitorar o tempo de execução das TPUs flexíveis

É possível monitorar o tempo de execução de TPUs flexíveis verificando o carimbo de data/hora de terminação da TPU:

  1. Conferir os detalhes da solicitação de recurso na fila.
  2. Escolha uma das seguintes opções, dependendo se as TPUs foram criadas:

    • Se o recurso na fila estiver aguardando recursos: na saída, consulte o campo maxRunDuration. Esse campo especifica por quanto tempo os TPUs serão executados depois de criados.

    • Se as TPUs associadas ao recurso na fila foram criadas: na saída, confira o campo terminationTimestamp listado para cada nó no recurso na fila. Este campo especifica quando a TPU será encerrada.

Excluir um recurso na fila

É possível excluir uma solicitação de recurso na fila e os TPUs associados a ela excluindo a solicitação de recurso na fila e transmitindo a flag --force para o comando queued-resources delete:

gcloud alpha compute tpus queued-resources delete QUEUED_RESOURCE_ID \
    --force

Se você excluir o TPU diretamente usando o comando gcloud compute tpus tpu-vm delete, também será necessário excluir o recurso em fila, conforme mostrado no exemplo a seguir. Quando você exclui a TPU, a solicitação de recurso enfileirada é transferida para o estado SUSPENDED. Depois disso, é possível excluir a solicitação de recurso enfileirada.

Para excluir uma TPU, use o comando gcloud compute tpus tpu-vm delete:

gcloud compute tpus tpu-vm delete NODE_ID \
    --zone ZONE

Em seguida, para excluir o recurso em fila, use o comando gcloud alpha compute tpus queued-resources delete:

gcloud alpha compute tpus queued-resources delete QUEUED_RESOURCE_ID \
    --zone ZONE

Para mais informações, consulte Excluir uma solicitação de recurso em fila.