arquitetura do sistema.
As unidades de processamento de tensor (TPUs) são circuitos integrados específicos para aplicativos (ASICs, na sigla em inglês) projetados pelo Google para acelerar as cargas de trabalho de machine learning. O Cloud TPU é um serviço do Google Cloud que disponibiliza TPUs como um recurso escalonável.
As TPUs foram projetadas para executar operações de matriz rapidamente, o que as torna ideais para cargas de trabalho de aprendizado de máquina. É possível executar cargas de trabalho de machine learning em TPUs usando frameworks como TensorFlow, Pytorch e JAX.
Termos do Cloud TPU
Se você não tem experiência com Cloud TPUs, confira a página inicial da documentação da TPU. As seções a seguir explicam os termos e conceitos relacionados usados neste documento.
Inferência em lote
A inferência em lote ou off-line se refere à inferência fora dos pipelines de produção, normalmente em um grande volume de entradas. A inferência em lote é usada para tarefas off-line, como rotulagem de dados, e também para avaliar o modelo treinado. Os SLOs de latência não são uma prioridade para a inferência em lote.
Chip TPU
Um chip de TPU contém um ou mais TensorCores. O número de TensorCores depende da versão do chip TPU. Cada TensorCore consiste em uma ou mais unidades de multiplicação de matriz (MXUs), uma unidade vetorial e uma escalar.
Uma MXU é composta de multiplicadores/acumuladores de 256 x 256 (TPU v6e) ou 128 x 128 (versões da TPU anteriores à v6e) em uma matriz sistólica. As MXUs fornecem a maior parte da capacidade de computação em um TensorCore. Cada MXU é capaz de realizar 16 mil operações de multiplicação seguida de acumulação por ciclo. Todas as multiplicações recebem entradas bfloat16, mas todas as acumulações são realizadas no formato de número FP32.
A unidade de vetor é usada para computação geral, como ativações e softmax. A unidade escalar é usada para controlar o fluxo, calcular endereços de memória e outras operações de manutenção.
Cubo de TPU
Uma topologia 4x4x4. Isso só é aplicável a topologias 3D (começando com a versão v4 da TPU).
Inferência
A inferência é o processo de usar um modelo treinado para fazer previsões sobre novos dados. Ele é usado pelo processo de serviço.
Fatia múltipla x fatia única
O Multislice é um grupo de frações que estende a conectividade do TPU além das conexões de interconexão entre chips (ICI) e aproveita a rede de data center (DCN, na sigla em inglês) para transmitir dados além de uma fração. Os dados de cada fatia ainda são transmitidos pelo ICI. Usando essa conectividade híbrida, o recurso Multislice permite o paralelismo entre frações e o uso de um número maior de núcleos de TPU em um único job do que uma única fração pode acomodar.
As TPUs podem ser usadas para executar um job em uma ou várias frações. Consulte a Introdução às fatias múltiplas para mais detalhes.
Resiliência de ICI do Cloud TPU
A resiliência de ICI ajuda a melhorar a tolerância a falhas de links ópticos e comutadores de circuito óptico (OCS, na sigla em inglês) que conectam TPUs entre cubos. As conexões ICI dentro de um cubo usam links de cobre que não são afetados. A resiliência de ICI permite que as conexões sejam roteadas em torno de OCS e falhas de ICI óptica. Como resultado, a disponibilidade de programação de fatias de TPU é melhor, com a desvantagem de degradação temporária no desempenho do ICI.
Assim como na Cloud TPU v4, a resiliência do ICI é ativada por padrão para fatias v5p de um cubo ou mais:
- v5p-128 ao especificar o tipo de acelerador
- 4x4x4 ao especificar a configuração do acelerador
Recurso na fila
Uma representação de recursos de TPU, usada para enfileirar e gerenciar uma solicitação para um ambiente de TPU de uma ou várias frações. Consulte o Guia do usuário sobre recursos em fila para mais informações.
Disponibilização
O envio é o processo de implantação de um modelo de machine learning treinado em um ambiente de produção, onde ele pode ser usado para fazer previsões ou decisões. A latência e a disponibilidade no nível do serviço são importantes para a veiculação.
Host único, vários hosts e sub-host
Um host de TPU é uma VM executada em um computador físico conectado ao hardware de TPU. As cargas de trabalho de TPU podem usar um ou mais hosts.
Uma carga de trabalho de host único é limitada a uma VM de TPU. Uma carga de trabalho de vários hosts distribui o treinamento em várias VMs de TPU. Uma carga de trabalho de sub-host não usa todos os chips em uma VM de TPU.
Frações
Uma fração de pod é um conjunto de chips localizados no mesmo pod de TPU conectado por interconexões de alta velocidade entre chips (ICI). As fatias são descritas em termos de chips ou TensorCores, dependendo da versão da TPU.
Forma do ícone e topologia do ícone também se referem a formas de fatia.
SparseCore
Os SparseCores são processadores de fluxo de dados que aceleram modelos que dependem de embeddings encontrados em modelos de recomendação. O v5p inclui quatro SparseCores por chip, e o v6e inclui dois SparseCores por chip.
Pod de TPU
Um pod de TPU é um conjunto contínuo de TPUs agrupados em uma rede especializada. O número de chips de TPU em um pod de TPU depende da versão da TPU.
VM ou worker da TPU
Uma máquina virtual que executa o Linux e tem acesso às TPUs. Uma VM de TPU também é conhecida como worker.
TensorCores
Os chips de TPU têm um ou dois TensorCores para executar a multiplicação de matriz. Para mais informações sobre TensorCores, consulte este artigo ACM.
Worker
Consulte VM de TPU.
Versões de TPU
A arquitetura exata de um chip de TPU depende da versão da TPU usada. Cada versão de TPU também oferece suporte a diferentes tamanhos e configurações de fatia. Para mais informações sobre a arquitetura do sistema e as configurações compatíveis, consulte as seguintes páginas:
Arquiteturas de TPU
Há duas arquiteturas de TPU que descrevem como uma VM é fisicamente conectada ao dispositivo de TPU: o nó de TPU e a VM de TPU. O nó da TPU era a arquitetura original das versões v2 e v3 da TPU. Com a v4, a VM da TPU se tornou a arquitetura padrão, mas ambas as arquiteturas foram aceitas. A arquitetura do nó da TPU foi descontinuada, e apenas a VM da TPU é compatível. Se você estiver usando nós de TPU, consulte Como migrar da arquitetura de nó de TPU para a arquitetura de VM de TPU para fazer a conversão.
Arquitetura da VM da TPU
A arquitetura da VM da TPU permite que você se conecte diretamente à VM fisicamente conectada ao dispositivo da TPU usando SSH. Você tem acesso raiz à VM, então pode executar código arbitrário. É possível acessar registros de depuração do compilador e do ambiente de execução e mensagens de erro.
Arquitetura de nó da TPU
A arquitetura do nó da TPU consiste em uma VM do usuário que se comunica com o host da TPU pelo gRPC. Ao usar essa arquitetura, não é possível acessar diretamente o host da TPU, o que dificulta a depuração de erros de treinamento e TPU.
Como migrar da arquitetura de nó da TPU para a VM da TPU
Se você tiver TPUs usando a arquitetura de nó da TPU, siga as etapas abaixo para identificar, excluir e provisionar novamente como VMs da TPU.
Acesse a página "TPUs":
- Localize o TPU e a arquitetura dele no título Arquitetura. Se a arquitetura for "TPU VM", não será necessário fazer nada. Se a arquitetura for "Nó da TPU", você vai precisar excluir e provisionar a TPU novamente.
Exclua e provisione novamente a TPU.
Consulte Gerenciar TPUs para instruções sobre como excluir e reprovisionar TPUs.