Arquitetura do sistema

Neste documento, abordamos a arquitetura do sistema do Cloud TPU.

Arquitetura do sistema

As unidades de processamento de tensor (TPUs, na sigla em inglês) são circuitos integrados de aplicação específica (ASICs, na sigla em inglês) desenvolvidos especialmente pelo Google. Elas são usadas para acelerar as cargas de trabalho de aprendizado de máquina. As TPUs foram desenvolvidas desde o início, aproveitando a extensa experiência e liderança do Google em aprendizado de máquina.

Com o Cloud TPU, é possível executar cargas de trabalho de aprendizado de máquina no hardware acelerador de TPUs de segunda geração do Google, usando o TensorFlow na nuvem. O Cloud TPU foi desenvolvido para proporcionar o máximo de desempenho e flexibilidade, ajudando pesquisadores, desenvolvedores e empresas a criar clusters de computação do TensorFlow que podem usar CPUs, GPUs e TPUs. As APIs de alto nível do Tensorflow facilitam a execução de modelos replicados no hardware do Cloud TPU.

O Cloud TPU é acessível para programas de usuário expressos em TensorFlow em uma VM do Compute Engine. Quando o programa é executado, um gráfico de computação do TensorFlow é gerado e enviado para o Cloud TPU por meio de gRPC. O servidor do Cloud TPU compila o gráfico de computação a tempo e envia o binário do programa para a execução no Cloud TPU. As entradas do modelo precisam ser armazenadas no Cloud Storage. Elas são alimentadas diretamente no servidor do Cloud TPU, que as transmite para o consumo por um Cloud TPU.

imagem

A arquitetura do sistema descrita acima é para fins informativos e serve como influência para um projeto de alto nível nos seus programas/modelos. Na prática, a pilha de software do Cloud TPU elimina a complexidade de gerar, executar e alimentar programas do Cloud TPU. A próxima seção descreve a pilha de software do Cloud TPU.

Arquitetura do software

O diagrama em blocos abaixo mostra a arquitetura do software do Cloud TPU, que consiste no modelo de rede neural, na TPUEstimator e cliente TensorFlow, no servidor do TensorFlow e no compilador XLA.

imagem

TPUEstimator

TPUEstimators consiste em um conjunto de APIs de alto nível desenvolvidas a partir da API Estimators. Essas APIs simplificam a criação de modelos para o Cloud TPU e extraem o máximo de desempenho da TPU. Ao escrever um modelo de rede neural que usa o Cloud TPU, use as APIs TPUEstimator.

Cliente TensorFlow

As APIs TPUEstimator traduzem os programas em operações do TensorFlow. Esses programas são convertidos em um gráfico computacional por um cliente TensorFlow. Esse cliente comunica o gráfico computacional a um servidor do TensorFlow.

Servidor do TensorFlow

O servidor do TensorFlow é executado em um servidor do Cloud TPU. Quando o servidor recebe um gráfico computacional do cliente TensorFlow, ele executa as seguintes ações:

  • Carrega entradas do Cloud Storage.
  • Particiona o gráfico entre as partes que podem ser executadas em um Cloud TPU e aquelas que precisam ser executadas em uma CPU.
  • Gera operações do XLA correspondentes ao subgráfico que será executado no Cloud TPU.
  • Invoca o compilador XLA.

Compilador XLA

O XLA é um compilador just-in-time que recebe como entrada operações do High Level Optimizer (HLO) produzidas pelo servidor do TensorFlow. O XLA gera o código binário a ser executado no Cloud TPU, incluindo a orquestração de dados da memória on-chip para unidades de execução de hardware e comunicação entre chips. O binário gerado é carregado no Cloud TPU usando a conectividade PCIe entre o servidor do Cloud TPU e o próprio Cloud TPU. Em seguida, ele é iniciado para execução.

Arquitetura do hardware

O hardware do Cloud TPU é composto por quatro chips independentes. O diagrama em blocos a seguir descreve os componentes de um único chip. Cada chip consiste em dois núcleos de computação chamados de Tensor Cores. Um Tensor Core consiste em unidades de matriz, escalares e de vetor (MXU, na sigla em inglês). Além disso, cada Tensor Core está associado a 16 GB de memória on-chip (HBM).

A maior parte da potência computacional de um Cloud TPU é fornecida pela MXU. Cada MXU é capaz de realizar 16 mil operações de multiplicação seguida de acumulação em cada ciclo. Enquanto as entradas e saídas das MXUs são valores de ponto flutuante de 32 bits, a MXU realiza multiplicações a uma precisão de bfloat16 reduzida. O bfloat16 é uma representação de ponto flutuante de 16 bits que proporciona melhor treinamento e precisão do modelo do que a representação de meia precisão de IEEE.

imagem

Do ponto de vista do software, cada um dos oito núcleos em um Cloud TPU pode executar computações do usuário (operações do XLA) de maneira independente. As interconexões de alta largura de banda permitem que os chips se comuniquem diretamente entre si.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…