Neste documento, descrevemos como criar um grupo gerenciado de instâncias (MIG) que forma frações de TPU de host único. Uma fração de TPU de host único é mapeada para uma instância de máquina virtual (VM) de TPU.
Também é possível criar uma fração de TPU de host único como uma instância de TPU independente. Para mais informações, consulte Criar uma instância de VM de TPU.
Antes de começar
- Analise as limitações para criar MIGs com instâncias de TPU.
-
Configure a autenticação, caso ainda não tenha feito isso.
Com isso, você confirma sua identidade para acesso a serviços e APIs do Google Cloud . Para executar
código ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine selecionando uma das seguintes opções:
-
Instale a CLI do Google Cloud. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud initAo usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
- Defina uma região e uma zona padrão.
-
Pré-requisitos
Antes de criar uma fração de TPU de host único, faça o seguinte:
Escolha a versão da TPU: selecione a versão adequada para sua carga de trabalho. Para uma lista de versões de TPU por tipo de carga de trabalho, consulte Versões de TPU recomendadas por tipo de carga de trabalho.
Valide a disponibilidade de TPU no local de sua preferência: as TPUs estão disponíveis em regiões específicas do Google Cloud . Para usar uma versão da TPU, verifique se ela está disponível na região de sua preferência. Para uma lista de locais de TPU, consulte Disponibilidade de TPU.
Verifique se o projeto tem cota de TPU suficiente: se você estiver criando uma fração de TPU de host único com VMs spot ou sob demanda, é preciso ter cota de TPU suficiente disponível na região que você quer usar. A criação de uma fração de TPU de host único que consome uma reserva de TPU não exige cota de TPU, porque a cota é usada quando a reserva é criada. Para uma lista de nomes de cota de TPU, consulte Cota de TPU e, para instruções sobre como visualizar a cota, consulte Visualizar e gerenciar cotas.
Escolha uma opção de consumo de TPU: selecione uma opção que melhor se adapte à sua carga de trabalho, à duração dela e às suas necessidades de custo. Para conferir uma lista de opções de consumo disponíveis por versões de TPU, consulte Opções de consumo de TPU.
Escolha uma topologia: selecione uma topologia compatível com a versão da TPU escolhida. Para uma lista de topologias disponíveis em cada versão da TPU, consulte Topologia da TPU.
Criar um MIG com várias frações de TPU de host único
Para criar várias VMs de TPU independentes em um MIG:
- Criar um modelo de instância.
- Crie o MIG.
Criar um modelo de instância
As configurações do modelo de instância variam de acordo com a opção de consumo usada: sob demanda, Spot, reservas ou início flexível. Para mais informações sobre opções de consumo, consulte Sobre modelos de provisionamento de VM.
Criar um modelo de instância para uma VM da TPU sob demanda
O comando a seguir cria um modelo de instância que usa a opção de consumo on demand:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
Substitua os seguintes marcadores de posição:
INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.MACHINE_TYPE: o tipo de máquina da VM da TPU (por exemplo,ct6e-standard-8t).IMAGE_FAMILY: a família de imagens do SO para a VM da TPU. Se você quiser instalar uma versão específica do SO, use a flag--image. Para mais informações sobre imagens do SO, consulte Imagens do SO.IMAGE_PROJECT: o projeto que contém a imagem do SO. Para imagens de TPU, éubuntu-os-accelerator-images.
Criar um modelo de instância para uma VM spot de TPU
O comando a seguir cria um modelo de instância que usa a opção de consumo Spot:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--instance-termination-action=STOP \
--provisioning-model=SPOT \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
Substitua os seguintes marcadores de posição:
INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.MACHINE_TYPE: o tipo de máquina da VM da TPU (por exemplo,ct6e-standard-8t).IMAGE_FAMILY: a família de imagens do SO para a VM da TPU. Se você quiser instalar uma versão específica do SO, use a flag--image. Para mais informações sobre imagens do SO, consulte Imagens do SO.IMAGE_PROJECT: o projeto que contém a imagem do SO. Para imagens de TPU, éubuntu-os-accelerator-images.
Criar um modelo de instância para uma VM vinculada a uma reserva de TPU
O comando a seguir cria um modelo de instância que usa a opção de consumo reservation-bound:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--instance-termination-action=DELETE \
--reservation-affinity=specific \
--provisioning-model=reservation-bound \
--reservation=RESERVATION_NAME \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
Substitua os seguintes marcadores de posição:
INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.MACHINE_TYPE: o tipo de máquina da VM de TPU (por exemplo,ct6e-standard-8t).RESERVATION_NAME: o nome de uma reserva específica que você quer consumir.IMAGE_FAMILY: a família de imagens do SO para a VM da TPU. Se você quiser instalar uma versão específica do SO, use a flag--image. Para mais informações sobre imagens do SO, consulte Imagens do SO.IMAGE_PROJECT: o projeto que contém a imagem do SO. Para imagens de TPU, éubuntu-os-accelerator-images.
Criar um modelo de instância para uma VM flex-start de TPU
O comando a seguir cria um modelo de instância que usa a opção de consumo Início flexível:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--instance-termination-action=DELETE \
--provisioning-model=FLEX_START \
--max-run-duration=DURATION \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
Substitua os seguintes marcadores de posição:
INSTANCE_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).DURATION: a duração máxima da execução da VM de TPU (por exemplo,1h).IMAGE_FAMILY: a família de imagens do SO para a VM da TPU. Se você quiser instalar uma versão específica do SO, use a flag--image. Para mais informações sobre imagens do SO, consulte Imagens do SO.IMAGE_PROJECT: o projeto que contém a imagem do SO. Para imagens de TPU, éubuntu-os-accelerator-images.
Criar um MIG
Crie um MIG zonal ou regional usando o comando gcloud compute instance-groups managed create da seguinte maneira:
Para criar um MIG zonal com uma fração de TPU de host único, use o seguinte comando:
gcloud compute instance-groups managed create MIG_NAME \ --size=MIG_SIZE \ --template=INSTANCE_TEMPLATE_URL \ --zone=ZONEPara criar um MIG regional com uma fração de TPU de host único, use o comando a seguir:
gcloud compute instance-groups managed create MIG_NAME \ --size=MIG_SIZE \ --template=INSTANCE_TEMPLATE_URL \ --region=REGION \ --target-distribution-shape=ANY_SINGLE_ZONE \ --instance-redistribution-type=none
Substitua os seguintes marcadores de posição:
MIG_NAME: o nome do MIG.MIG_SIZE: o número de VMs no MIG.INSTANCE_TEMPLATE_URL: o URL do modelo de instância que você quer usar para criar instâncias no MIG. O URL pode conter o ID ou o nome do modelo de instância. Especifique um dos seguintes valores:- Para um modelo de instância regional:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID. - Para um modelo de instância global:
INSTANCE_TEMPLATE_ID
- Para um modelo de instância regional:
ZONE: a zona em que você quer que o MIG seja provisionado.REGION: a região em que você quer provisionar o MIG.
Criar VMs com nomes personalizados em um MIG
É possível criar VMs em um MIG especificando nomes personalizados para cada uma delas. Isso é útil para depurar e garantir que as instâncias sejam criadas em uma ordem específica.
gcloud
Crie uma VM com um nome personalizado usando o
comando create-instance
e especifique a flag --instance. Para criar várias VMs, repita o comando
para cada VM. Caso contrário, use o método da API REST para especificar várias VMs
em uma única solicitação.
Para um MIG zonal, use o seguinte comando:
gcloud compute instance-groups managed create-instance MIG_NAME \ --zone=ZONE \ --instance=INSTANCE_NAMEPara um MIG regional, use o seguinte comando:
gcloud compute instance-groups managed create-instance MIG_NAME \ --region=REGION \ --instance=INSTANCE_NAME
Substitua os seguintes marcadores de posição:
REST
Crie VMs com nomes personalizados usando um dos seguintes métodos da API REST:
Para um MIG zonal, use o
instanceGroupManagers.createInstances.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/createInstances { "instances": [ { "name": "INSTANCE_NAME_1" }, { "name": "INSTANCE_NAME_2" }, ... ] }Para um MIG regional, use o
regionInstanceGroupManagers.createInstances.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/createInstances { "instances": [ { "name": "INSTANCE_NAME_1" }, { "name": "INSTANCE_NAME_2" }, ... ] }
Substitua os seguintes marcadores de posição:
A seguir
- Criar uma fração com vários hosts
- Conectar-se a uma instância de TPU
- Consultar as propriedades de um MIG
- Ver o status de uma fração de TPU
- Excluir um MIG