Criar VMs de início flexível do TPU com o Compute Engine

As VMs de início flexível de TPU, com tecnologia do Dynamic Workload Scheduler, oferecem uma maneira flexível e econômica de acessar recursos de TPU para cargas de trabalho de IA por até 7 dias sem reservas de longo prazo. Quando você solicita VMs de início flexível de TPU, sua solicitação permanece em uma fila até que a capacidade esteja disponível. Depois de provisionadas, as VMs de TPU são executadas pelo período especificado.

Essas VMs são adequadas para experimentos rápidos, testes em pequena escala, provisionamento dinâmico de TPUs para cargas de trabalho de inferência, ajuste 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 do Cloud TPU.

Você pode excluir seus 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 VMs de início flexível de TPU têm as seguintes limitações:

  • É possível solicitar essas VMs por até sete dias.
  • É possível solicitar as seguintes versões e zonas do Cloud TPU:
    • TPU7x: us-central1-c
    • TPU v6e: asia-northeast1-b, us-east5-a, us-south1-ai1b
    • TPU v5p: us-east5-a

Os MIGs com TPUs têm as seguintes limitações:

  • Operações de ciclo de vida: não é possível interromper, iniciar, retomar ou suspender instâncias de TPU. Para mudar configurações que exigem uma reinicialização ou parar de gerar custos, exclua as instâncias.

  • Distribuição de zona do MIG regional: defina o formato de distribuição de destino como ANY_SINGLE_ZONE.

  • Atualizações de configuração em um MIG:

    • Não é possível atualizar um MIG que forma uma fatia de TPU de vários hosts devido à topologia de acelerador definida.
    • É possível atualizar um MIG que forma fatias de TPU de host único usando os métodos automático ou seletivo. No entanto, as atualizações para fatias de TPU de host único não oferecem suporte à ação de reinicialização (RESTART). Se uma reinicialização for necessária e a ação mais disruptiva permitida for a substituição (REPLACE), o atualizador vai substituir a instância. Caso contrário, a tentativa de atualização vai falhar com um erro.

  • Para um MIG que forma uma fração de TPU de vários hosts, as seguintes limitações também se aplicam:

    • Política de tamanho do destino: defina o modo da política de tamanho do destino como BULK. Depois de definir esse modo, não será possível mudar.

    • Tamanho desejado: no modo em massa, é possível definir o tamanho desejado como 0 ou o número de instâncias necessárias para formar a topologia do acelerador.

    • Política de carga de trabalho: especifique uma política de carga de trabalho em que a topologia do acelerador está definida. Depois de definir a política de carga de trabalho, não é possível mudar ou remover a política do MIG.

  • Recursos não compatíveis: MIGs com TPUs não são compatíveis com os seguintes recursos:

Antes de começar

Antes de solicitar as VMs de início flexível de TPU, faça o seguinte:

  • Instale a CLI do Google Cloud.
  • Crie um projeto do Google Cloud .
  • Ative a API Compute Engine (compute.googleapis.com)
  • Verifique se você tem as permissões necessárias:
    • roles/compute.instanceAdmin.v1
    • roles/iam.serviceAccountUser

Para mais informações, consulte Configurar um projeto do Google Cloud para TPUs.

Verifique se você tem cota preemptiva suficiente para usar as VMs de início flexível de TPU. Se a carga de trabalho exigir mais núcleos do que a alocação atual, solicite um aumento de cota. Para mais detalhes, consulte Cotas do Cloud TPU.

Criar VMs de início flexível de TPU com MIGs

Para usar VMs de início flexível da TPU, crie um grupo gerenciado de instâncias (MIG) com uma configuração específica de modelo de instância.

Para instruções gerais sobre como criar VMs de início flexível, consulte Criar VMs de início flexível.

Criar VMs de início flexível de TPU com uma fração de vários hosts

Criar um modelo de instância

Crie um modelo de instância especificando o modelo de provisionamento FLEX_START e a duração da execução escolhida.

gcloud compute instance-templates create TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --provisioning-model=FLEX_START \
    --instance-termination-action=DELETE \
    --max-run-duration=DURATION \
    --region=REGION \
    --maintenance-policy=TERMINATE

Substitua os seguintes marcadores de posição:

  • TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina para a VM da TPU (por exemplo, ct6e-standard-8t).
  • IMAGE_FAMILY: a família de imagens do SO para a VM de TPU (por exemplo, ubuntu-accelerator-2204-amd64-with-tpu-v6e)
  • IMAGE_PROJECT: o projeto de imagem do SO para a VM da TPU (por exemplo, ubuntu-os-accelerator-images).
  • DURATION: a duração máxima da execução (por exemplo, 7d por 7 dias).
  • REGION: a região em que o modelo de instância será criado.

Criar uma política de carga de trabalho

O comando a seguir cria uma política de carga de trabalho. Isso é opcional para frações de host único.

gcloud compute resource-policies create workload WORKLOAD_POLICY_NAME \
  --type=high-throughput \
  --accelerator-topology=TOPOLOGY

Substitua os seguintes marcadores de posição:

  • WORKLOAD_POLICY_NAME: o nome da política de carga de trabalho.
  • TOPOLOGY: a topologia das VMs de TPU, por exemplo, 4x4x8.

Criar o MIG

Crie o MIG usando o modelo.

gcloud compute instance-groups managed create MIG_NAME \
    --zone=ZONE \
    --template=TEMPLATE_NAME \
    --size=SIZE \
    --workload-policy=projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME \
    --target-size-policy-mode=bulk

Substitua os seguintes marcadores de posição:

  • MIG_NAME: o nome do MIG.
  • ZONE: a zona do MIG.
  • TEMPLATE_NAME: o nome do modelo de instância.
  • SIZE: o número de instâncias a serem criadas.
  • PROJECT_ID: o ID do seu projeto do Google Cloud .
  • WORKLOAD_POLICY_REGION: a região em que a política de carga de trabalho é definida.
  • WORKLOAD_POLICY_NAME: o nome da política de carga de trabalho.

Criar VMs de início flexível de TPU com frações de host único

Criar um modelo de instância

Crie um modelo de instância especificando o modelo de provisionamento FLEX_START e a duração da execução escolhida.

gcloud compute instance-templates create TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --provisioning-model=FLEX_START \
    --instance-termination-action=DELETE \
    --max-run-duration=DURATION \
    --region=REGION \
    --maintenance-policy=TERMINATE

Substitua os seguintes marcadores de posição:

  • TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina para a VM da TPU (por exemplo, ct6e-standard-8t).
  • IMAGE_FAMILY: a família de imagens do SO para a VM de TPU (por exemplo, ubuntu-accelerator-2204-amd64-with-tpu-v6e)
  • IMAGE_PROJECT: o projeto de imagem do SO para a VM da TPU (por exemplo, ubuntu-os-accelerator-images)
  • DURATION: a duração máxima da execução (por exemplo, 7d por 7 dias).
  • REGION: a região em que o modelo de instância será criado.

Criar uma política de carga de trabalho

O comando a seguir cria uma política de carga de trabalho. Isso é opcional para frações de host único.

gcloud compute resource-policies create workload WORKLOAD_POLICY_NAME \
  --type=high-throughput

Substitua os seguintes marcadores de posição:

  • WORKLOAD_POLICY_NAME: um nome para a política de carga de trabalho.

Criar o MIG

Crie o MIG usando o modelo.

gcloud compute instance-groups managed create MIG_NAME \
    --zone=ZONE \
    --template=TEMPLATE_NAME \
    --size=SIZE \
    --workload-policy=projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME

Substitua os seguintes marcadores de posição:

  • MIG_NAME: o nome do MIG.
  • ZONE: a zona do MIG.
  • TEMPLATE_NAME: o nome do modelo de instância.
  • SIZE: o número de instâncias a serem criadas.
  • PROJECT_ID: o ID do seu projeto do Google Cloud .
  • WORKLOAD_POLICY_REGION: a região em que a política de carga de trabalho é definida.
  • WORKLOAD_POLICY_NAME: o nome da política de carga de trabalho.