arquitetura do sistema.
As Unidades de Processamento de Tensor (TPUs) são circuitos integrados específicos para aplicativos (ASICs) desenvolvidos pelo Google para acelerar as cargas de trabalho de machine learning. Cloud TPU é um serviço do Google Cloud que disponibiliza TPUs como recursos escalonáveis.
As TPUs foram projetadas para executar operações matriciais rapidamente, tornando-as ideais para e cargas de trabalho de machine learning. É possível executar cargas de trabalho de machine learning em TPUs usando frameworks como TensorFlow, Pytorch e JAX.
Termos do Cloud TPU
Se você nunca usou as 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
Inferência em lote ou off-line refere-se a fazer inferência fora da produção pipelines, em geral, em grande parte de entradas. A inferência em lote é usada para operações tarefas como rotulagem de dados e avaliar o modelo treinado. SLOs de latência não são uma prioridade para inferência em lote.
Chip de TPU
Um chip de TPU contém um ou mais TensorCores. O número de TensorCores depende a versão do chip da TPU. Cada TensorCore consiste em um ou mais unidades de multiplicação de matriz (MXUs), uma unidade vetorial e uma unidade escalar.
Uma MXU é composta por múltiplos acumuladores de 128 x 128 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 e acumulação por ciclo. Todas as multiplicações levam bfloat16, mas todos os acúmulos são realizados no formato de número FP32.
A unidade vetorial é 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 as operações de manutenção.
Cubo de TPU
Uma topologia 4x4x4. Isso só se aplica a topologias 3D (começando com v4 da TPU).
Inferência
Inferência é o processo de usar um modelo treinado para fazer previsões em novos dados. Ele é usado pelo processo de disponibilização.
Fatia múltipla versus fração única
O multislice é um grupo de frações, estendendo a conectividade da TPU além as conexões de interconexão entre chips (ICI) e aproveitar o data center de rede (DCN, na sigla em inglês) para transmitir dados além de uma fração. Os dados dentro de cada fração ainda são transmitido por ICI. Usar este híbrido conectividade, o Multislice permite o paralelismo entre frações e permite usar um número maior de núcleos para um único job do que uma única fração pode acomodar.
TPUs podem ser usadas para executar um job em uma única fração ou em várias. Consulte a Introdução ao multislice. para mais detalhes.
Resiliência de ICI do Cloud TPU
A resiliência da 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 em um cubo usam links de cobre não afetados. A resiliência da ICI permite que as conexões ICI sejam roteadas pelo OCS e pela ICI óptica erros. Como resultado, isso melhora a disponibilidade de programação da TPU em frações, com uma degradação temporária no desempenho da ICI.
Assim como o Cloud TPU v4, a resiliência da ICI é ativada por padrão para frações da v5p que tenham 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 dos recursos da TPU, usada para enfileirar e gerenciar uma solicitação de um ambientes de TPU de fração única ou de várias fatias. Consulte o Guia do usuário sobre recursos na fila para mais informações.
Disponibilização
A disponibilização é o processo de implantação de um modelo de machine learning treinado em um ambiente de produção em que pode ser usado para fazer previsões ou tomar decisões. A latência e a disponibilidade no nível do serviço são importantes para a exibição.
Host único e vários hosts
Um host de TPU é uma VM executada em um computador físico conectado ao hardware da TPU. As cargas de trabalho de TPU podem usar um ou mais hosts.
Uma carga de trabalho de host único é limitada a uma VM da TPU. Uma carga de trabalho de vários hosts distribui o treinamento em várias VMs de TPU.
Frações
Uma fração de pod é uma coleção de chips localizados dentro do mesmo pod de TPU conectados por interconexão de alta velocidade entre chips (ICI). As fatias são descritas em termos de chips ou TensorCores, dependendo da versão da TPU.
O formato e a topologia do chip também se referem às formas das fatias.
SparseCore
A v5p inclui quatro SparseCores por chip, que são Dataflow processadores que aceleram modelos usando os embeddings encontrados nas recomendações de modelos de machine learning.
Pod de TPU
Um pod de TPU é um conjunto contíguo de TPUs agrupadas 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 Linux e tem acesso às TPUs subjacentes. Uma VM da TPU também é conhecido como worker.
TensorCores
Os chips de TPU têm um ou dois TensorCores para executar a multiplicação de matrizes. Para mais informações sobre TensorCores, consulte este ACM artigo.
Worker
Consulte VM da 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 é compatível com diferentes tamanhos e configurações de fatias. 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 está conectados ao dispositivo TPU: nó e VM da TPU. O nó de TPU era o original Arquitetura de TPU para versões de TPU v2 e v3. Com a v4, a VM da TPU tornou-se a padrão, mas ambas têm suporte. O nó da TPU está obsoleta e somente VMs de TPU são compatíveis. Se você for usando nós de TPU, consulte Como migrar de um nó de TPU para arquitetura de VM de TPU para converter do nó de TPU para a arquitetura de VM da TPU.
Arquitetura da VM da TPU
A arquitetura da VM da TPU permite que você se conecte diretamente à VM fisicamente conectada ao dispositivo TPU usando SSH. Como você tem acesso raiz à VM, 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 de nó da TPU consiste em uma VM do usuário que se comunica com a TPU em gRPC. Ao usar essa arquitetura, não é possível acessar diretamente a TPU Host, dificultando a depuração de erros de treinamento e TPU.
Como migrar do nó de TPU para a arquitetura de VM da TPU
Se você tiver TPUs usando a arquitetura de nós de TPU, siga as etapas abaixo para identificá-las, excluí-las e provisioná-las novamente como VMs de TPU.
Acesse a página "TPUs":
- Localize a TPU e a arquitetura dela no título Arquitetura. Se a arquitetura for uma "VM da TPU", não será necessário fazer nada. Se a arquitetura é um "nó de TPU", será preciso excluir e provisionar a TPU novamente.
Exclua e provisione a TPU novamente.
Consulte Como gerenciar TPUs para instruções sobre como excluir e reprovisionamento das TPUs.