Tipos e zonas de TPU

Visão geral

Ao criar nós de TPU para processar as cargas de trabalho de aprendizado de máquina, é preciso selecionar um tipo de TPU. Ele define a versão, o número de núcleos e a quantidade de memória da TPU que está disponível para a carga de trabalho de machine learning.

Por exemplo, o tipo de TPU v2-8 define um nó de TPU com 8 núcleos de TPU v2 e 64 GiB de memória total de TPU. O tipo de TPU v3-2048 define um nó de TPU com 2.048 núcleos de TPU v3 e 32 TiB de memória total de TPU.

Para saber mais sobre as diferenças de hardware entre versões e configurações de TPU, leia a documentação Arquitetura do sistema.

Para ver o preço de cada tipo de TPU em cada região, consulte a página Preços.

É possível alterar o tipo de TPU para outro que tenha o mesmo número de núcleos (por exemplo, v2-8 e v3-8) e executar o script de treinamento sem alterações no código. No entanto, se você alterar para um tipo de TPU com um número maior ou menor de núcleos, será necessário realizar ajustes e otimização significativos. Para mais informações, consulte Treinamento em pods de TPU.

Tipos e zonas de TPU

As principais diferenças entre cada tipo de TPU são preço, desempenho, capacidade de memória e disponibilidade zonal.

O Google Cloud Platform usa regiões subdivididas em zonas para definir a localização geográfica dos recursos físicos de computação. Por exemplo, a região us-central1 indica uma região perto do centro geográfico dos Estados Unidos que tem as seguintes zonas: us-central1-a, us-central1-b, us-central1-c e us-central1-f. Quando um nó de TPU é criado, especifique a zona em que você quer criá-lo. Consulte o documento Recursos globais, regionais e zonais do Compute Engine para mais informações sobre recursos regionais e zonais.

É possível criar a configuração com os seguintes tipos de TPU:

EUA

Tipo de TPU (v2) Núcleos de TPU v2 Memória total de TPU Região/zona
v2-8 8 64 GiB us-central1-b
us-central1-c
us-central1-f
v2-32 32 256 GiB us-central1-a
v2-128 128 1 TiB us-central1-a
v2-256 256 2 TiB us-central1-a
v2-512 512 4 TiB us-central1-a
Tipo de TPU (v3) Núcleos de TPU v3 Memória total de TPU Zonas disponíveis
v3-8 8 128 GiB us-central1-a
us-central1-b
us-central1-f

Europa

Tipo de TPU (v2) Núcleos de TPU v2 Memória total de TPU Região/zona
v2-8 8 64 GiB europe-west4-a
v2-32 32 256 GiB europe-west4-a
v2-128 128 1 TiB europe-west4-a
v2-256 256 2 TiB europe-west4-a
v2-512 512 4 TiB europe-west4-a
Tipo de TPU (v3) Núcleos de TPU v3 Memória total de TPU Zonas disponíveis
v3-8 8 128 GiB europe-west4-a
v3-32 32 512 GiB europe-west4-a
v3-64 64 1 TiB europe-west4-a
v3-128 128 2 TiB europe-west4-a
v3-256 256 4 TiB europe-west4-a
v3-512 512 8 TiB europe-west4-a
v3-1024 1024 16 TiB europe-west4-a
v3-2048 2048 32 TiB europe-west4-a

Ásia-Pacífico

Tipo de TPU (v2) Núcleos de TPU v2 Memória total de TPU Região/zona
v2-8 8 64 GiB asia-east1-c

Os tipos de TPU com maior número de núcleos estão disponíveis apenas em quantidades limitadas. Os tipos de TPU com menor contagem de núcleos têm maior probabilidade de estarem disponíveis.

Como calcular o preço e as vantagens e desvantagens de desempenho

Para decidir qual tipo de TPU você quer usar, faça experiências usando um tutorial do Cloud TPU para treinar um modelo semelhante ao seu aplicativo.

Execute o tutorial de 5 a 10% do número de passos que serão executados no treinamento completo em um tipo de TPU v2-8 e v3-8. O resultado informa quanto tempo leva para executar esse número de etapas para esse modelo em cada tipo de TPU.

Como o desempenho em tipos de TPU é escalonado linearmente, se você sabe quanto tempo leva para executar uma tarefa em um tipo de TPU v2-8 ou v3-8, pode estimar quanto reduzir do tempo da tarefa executando o modelo em um tipo de TPU maior com mais núcleos.

Por exemplo, se um tipo de TPU v2-8 levar de 60 minutos para 10.000 etapas, um nó v2-32 levará aproximadamente 15 minutos para executar a mesma tarefa.

Quando você sabe o tempo aproximado de treinamento do modelo em alguns tipos diferentes de TPU, pode ponderar o custo da VM/TPU em relação ao tempo de treinamento para ajudá-lo a decidir a melhor relação preço/desempenho.

Para determinar a diferença de custo entre os diferentes tipos de TPU do Cloud TPU e a VM do Compute Engine associada, consulte a página de preços da TPU.

Como especificar o tipo de TPU

Seja qual for o framework usado, o TensorFlow, o PyTorch ou o JAX, é necessário especificar um tipo de TPU com o parâmetro accelerator-type ao iniciar uma TPU. O comando usado depende do uso de VMs ou nós de TPU. Os comandos de exemplo são mostrados abaixo.

VM de TPU

$ gcloud alpha compute tpus tpu-vm create tpu-name \
--zone=zone \
--accelerator-type=v3-8 \
--version=tpu-vm-tf-2.7.0

Descrições de sinalizações de comando

zone
A zona em que você planeja criar a Cloud TPU.
accelerator-type
O tipo do Cloud TPU que será criado.
version
A versão do ambiente de execução do Cloud TPU.

Nó da TPU

$ gcloud compute tpus execution-groups create \
--name=tpu-name \
--zone=zone \
--tf-version=2.7.0 \
--machine-type=n1-standard-1 \
--accelerator-type=v3-8

Descrições de sinalizações de comando

name
O nome da Cloud TPU a ser criada.
zone
A zona em que você planeja criar a Cloud TPU.
tf-version
Somente TensorFlow: a versão do TensorFlow que o comando gcloud instala na sua VM.
machine-type
O tipo de máquina da VM do Compute Engine a ser criado.
accelerator-type
O tipo da Cloud TPU a ser criada.
image-family
Somente PyTorch: definido como torch-xla
image-project
Somente PyTorch: definido como ml-images
boot-disk-size
O tamanho do disco de inicialização da VM.
scopes
Somente Pytorch: definido como https://www.googleapis.com/auth/cloud-platform.

Para mais informações sobre o comando gcloud, consulte a referência da gcloud.

A seguir