Solicitar Cloud TPUs usando o Flex-start

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

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

Você pode excluir os recursos de TPU a qualquer momento para interromper o faturamento. Para mais informações sobre os preços das TPUs, consulte Preços do Cloud TPU.

Limitações

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

  • É possível solicitar recursos de início flexível por até sete dias.
  • O início flexível é compatível com as seguintes versões e zonas da Cloud TPU:
  • É necessário usar a API de recursos enfileirados para usar o início flexível com o Cloud TPU.

Antes de começar

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

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

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

Verifique também se você tem cota preemptiva suficiente para usar o Flex-start. Se você precisar de mais núcleos de TPU do que a quantidade concedida pela cota padrão, solicite uma alocação de cota maior. Para mais informações sobre os padrões e como solicitar mais cota, consulte Cotas da Cloud TPU.

Solicitar TPUs de início flexível

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

Para solicitar TPUs de 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:

  • 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 da 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 da Cloud TPU.
  • NODE_ID: um ID atribuído pelo usuário para a TPU criada quando a solicitação de recurso enfileirada é alocada.
  • RUN_DURATION: por quanto tempo as TPUs devem ser executadas. Formate a duração como o número de dias, horas, minutos e segundos seguidos 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 1 dia, 2 horas, 3 minutos e 4 segundos. O máximo é de 7 dias.

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

  • --valid-after-duration: o período antes do qual a TPU não pode ser provisionada.
  • --valid-after-time: o horário antes do qual a TPU não pode ser provisionada.
  • --valid-until-duration: a duração da validade da solicitação. Se a solicitação não for atendida até esse período, ela vai expirar e mudar para o estado FAILED.
  • --valid-until-time: o período em que a solicitação é válida. Se a solicitação não for atendida até esse momento, 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 enfileirados para receber o status da solicitação de recurso enfileirado usando o comando gcloud alpha compute tpus queued-resources describe:

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

Um recurso na 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 da 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 informações de estado e diagnóstico sobre uma solicitação de recurso em fila.

Monitorar o tempo de execução das TPUs de início flexível

Para monitorar o tempo de execução das TPUs de início flexível, verifique o carimbo de data/hora de encerramento da TPU:

  1. Confira os detalhes da sua solicitação de recurso na fila.
  2. Escolha uma das seguintes opções, dependendo de as TPUs terem sido criadas:

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

    • Se as TPUs associadas ao recurso na fila já tiverem sido 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 a TPU diretamente usando o comando gcloud compute tpus tpu-vm delete, também será necessário excluir o recurso enfileirado, conforme mostrado no exemplo a seguir. Quando você exclui a TPU, a solicitação de recurso enfileirada passa 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 na 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.