Visão geral da rede de GPU

O Hipercomputador de IA usa serviços de rede específicos determinados pelo tipo de máquina de GPU escolhido. Entender esses serviços permite otimizar o desempenho e o goodput: o progresso efetivo de uma tarefa de treinamento de machine learning.

Rede por infraestrutura

A arquitetura de rede da sua implantação depende da escolha da infraestrutura: GPUs gerais ou GPUs em cluster.

Rede VPC padrão para GPUs gerais

As GPUs gerais usam a rede VPC padrão do Google Cloud.

  • Arquitetura: depende de um design de VPC padrão e multilocatário para inferência, disponibilização de modelos e pesquisa exploratória.
  • Protocolos: usa TCP/IP na placa de rede virtual do Google (gVNIC).

Malhas de alto desempenho para GPUs em cluster

O Hipercomputador de IA ajuda a implantar máquinas de GPU que usam uma arquitetura de rede hierárquica e alinhada por rails. A conectividade previsível e de alto desempenho desse design reduz o overhead de comunicação, o que melhora diretamente o goodput, permitindo que as GPUs passem mais tempo processando em vez de esperar por dados.

A disposição alinhada por trilhos das GPUs em cluster inclui três componentes:

  • Sub-blocos: um grupo de hosts fisicamente localizados em um único bloco. Um switch top-of-rack (ToR, na sigla em inglês) conecta esses hosts, permitindo uma comunicação extremamente eficiente, com um único salto, entre duas GPUs dentro do sub-bloco. O acesso direto à memória remota (RDMA, na sigla em inglês) em Ethernet convergente (RoCE, na sigla em inglês) facilita essa comunicação direta. Uma biblioteca NCCL aprimorada e otimizada para a topologia do Google alinhada por rails lida com coletivos de comunicação de GPU.
  • Blocos: uma coleção de sub-blocos interconectados por uma rede de alta velocidade não bloqueante que oferece alta largura de banda. É possível alcançar qualquer GPU dentro de um bloco com no máximo dois saltos de rede. O sistema expõe metadados de blocos e sub-blocos para permitir o posicionamento ideal do job.
  • Clusters: uma coleção de blocos interconectados que podem ser escalonados para milhares de GPUs, permitindo executar cargas de trabalho de treinamento em grande escala. A comunicação entre blocos diferentes adiciona apenas mais um salto, mantendo alto desempenho e previsibilidade mesmo em escala massiva. Para permitir o posicionamento inteligente de jobs em grande escala, os metadados no nível do cluster também estão disponíveis para os orquestradores.

Tecnologias para comunicação entre GPUs

As máquinas de GPU usam uma combinação de tecnologias para fornecer alto desempenho, alta capacidade de processamento e baixa latência para cargas de trabalho. Exemplos dessas tecnologias são o acesso direto à memória remota (RDMA) em Ethernet convergente (RoCE), as NICs NVIDIA e a topologia de rede alinhada por rails em todo o data center do Google.

A tecnologia NVLink da NVIDIA cria caminhos de dados diretos e de altíssima velocidade entre as NICs da NVIDIA em cada máquina. Além disso, o RoCE permite um RDMA eficiente entre GPUs em máquinas diferentes.

Pilhas de rede GPU

Uma pilha de rede é um conjunto de protocolos, drivers e camadas de software que trabalham juntos para implementar a comunicação entre GPUs. Diferentes tipos de máquinas com GPU usam diferentes pilhas de rede. A tabela a seguir define as pilhas de rede e os tipos de máquina associados:

Pilha de rede Descrição Tipo de máquina de GPU
GPUDirect RDMA Ativa um caminho direto para a troca de dados entre uma GPU e outro dispositivo. Para instâncias A5X, A4X Max e A4X, essa pilha de rede usa RoCE. Para mais informações, consulte Opções de configuração de cluster com GPUDirect RDMA.
GPUDirect-TCPXO Melhora o GPUDirect-TCPX ao descarregar o protocolo TCP. Usando o GPUDirect-TCPXO, o tipo de máquina A3 Mega dobra a largura de banda da rede em comparação com o A3 High. Para informações sobre como maximizar a largura de banda da rede em clusters do GKE que usam o GPUDirect-TCPXO, consulte Maximizar a largura de banda da rede da GPU em clusters do modo Standard e selecione a guia GPUDirect-TCPXO.
GPUDirect-TCPX Aumenta o desempenho da rede ao permitir que os payloads dos pacotes de dados sejam transferidos diretamente da memória da GPU para a interface de rede. Para saber como maximizar a largura de banda da rede em clusters do GKE que usam o GPUDirect-TCPX, consulte Maximizar a largura de banda da rede da GPU em clusters do modo Standard e selecione a guia GPUDirect-TCPX.
TCP/IP padrão O protocolo de rede de referência para cargas de trabalho gerais (padrão). Ele oferece alta confiabilidade e ampla compatibilidade com serviços de VPC padrão.
  • A2 (A100)
  • G4 (RTX PRO 6000)
  • G2 (L4)
  • N1 (T4 ou V100)

Rede do plano de dados de host e armazenamento

As instâncias com várias GPUs exigem configurações de rede diferentes para a comunicação com a instância de computação em comparação com o processamento de informações de GPU para GPU.

Um caminho de rede separado (às vezes também chamado de rede norte-sul ou rede de front-end) processa toda a comunicação com a instância de computação. Esse tráfego inclui acesso ao disco, comunicação entre VMs, acesso à Internet, acesso ao Cloud Storage, gerenciamento no nível do host e comunicação com outros serviços do Google Cloud.

Para gerenciar esse tráfego, os tipos de máquina de GPU usam a NIC virtual do Google (gVNIC) ou, para instâncias bare metal A5X e A4X Max, a função de caminho de dados de infraestrutura (IDPF, na sigla em inglês) da Intel em NICs do Google Titanium. As NICs Titanium descarregam tarefas de processamento de rede da CPU, liberando a CPU para se concentrar nas cargas de trabalho. Essa separação ajuda a garantir que o tráfego de host de uso geral e o tráfego dedicado de GPU para GPU usem interfaces físicas diferentes, evitando que eles concorram pelos mesmos recursos do sistema.

Ambiente com várias VPCs

Todas as cargas de trabalho operam na nuvem privada virtual (VPC) do Google Cloud.

As máquinas aceleradoras de alto desempenho têm um design de hardware especializado que usa várias interfaces de rede física para lidar com diferentes tipos de tráfego. Para lidar com esse design de hardware especializado, é necessário um ambiente com várias VPCs, independentemente de você usar o Slurm, o GKE ou o Compute Engine para executar suas cargas de trabalho.

A configuração de multi-VPC específica depende do tipo de máquina de GPU e da pilha de rede:

  • A5X, A4X Max, A4X, A4 e A3 Ultra com GPUDirect RDMA: essas máquinas são compatíveis com dois tipos de NICs físicas: uma que aceita tráfego de uso geral e outra que aceita tráfego RDMA. As interfaces de rede que são mapeadas para a NIC física de uso geral (a interface nic0 e uma interface de rede adicional) são anexadas a redes VPC regulares. As interfaces de rede RDMA que são mapeadas para a placa de rede física compatível com RDMA são anexadas a uma rede VPC separada com um perfil de rede RDMA para usar o GPUDirect RDMA. No total, esses tipos de máquina usam até três redes VPC. Para implantações de A5X, A4X Max e A4X em um único sub-bloco, a malha NVLink de vários nós processa a comunicação entre GPUs, portanto, a rede VPC RDMA é opcional. Para saber como configurar essa infraestrutura de rede, consulte Criar VPCs e sub-redes.

  • A3 Mega com GPUDirect-TCPXO: essas máquinas exigem oito VPCs separadas para as NICs de GPU, que são dedicadas à comunicação de alta largura de banda. Para ver as etapas detalhadas sobre como concluir essa configuração, consulte Criar VPCs e sub-redes.

  • A3 High com GPUDirect-TCPX: essas máquinas exigem quatro VPCs separadas para as NICs de GPU, que são dedicadas à comunicação de alta largura de banda. Para ver as etapas detalhadas sobre como concluir essa configuração, consulte Criar VPCs e sub-redes.

Essa configuração de várias VPCs ajuda a garantir que as operações de armazenamento e outras tarefas do sistema não disputem largura de banda com as comunicações críticas entre GPUs.

A configuração de rede multi-VPC necessária que você precisa definir varia de acordo com o tipo de máquina de GPU. Para um guia detalhado sobre organização de rede, velocidades de largura de banda e NICs para todos os tipos de máquina de GPU compatíveis, consulte Redes e máquinas de GPU.

O diagrama a seguir mostra a arquitetura de rede de uma máquina com GPU em cluster, destacando a separação do tráfego de uso geral e do tráfego dedicado de GPU para GPU em diferentes planos de rede.

Arquitetura de rede para máquinas de GPU do Hipercomputador de IA. Como mostrado no diagrama anterior, essas máquinas de GPU usam caminhos de rede dedicados para diferentes tipos de tráfego. O tráfego de uso geral, incluindo o acesso ao gerenciamento e ao armazenamento, flui por NICs Google Titanium conectadas a uma VPC. A comunicação de alto desempenho entre GPUs usa interfaces de rede e VPCs separadas, otimizadas com tecnologias como RDMA, ajudando a garantir alta largura de banda e baixa latência para cargas de trabalho de IA e ML.

Componentes e bibliotecas de rede

Para maximizar a largura de banda e o desempenho da rede, as seguintes bibliotecas e componentes de rede permitem usar GPUs com a pilha de rede do Google:

  • gVNIC: a placa de rede virtual do Google (gVNIC) é uma interface de rede virtual projetada especificamente para o Compute Engine. A gVNIC melhora o desempenho, aumenta a consistência e ajuda a reduzir problemas de vizinhos ruidosos. A gVNIC é recomendada em todas as famílias de máquinas e é a vNIC recomendada para comunicação entre hosts. Para mais informações, consulte Como usar a NIC virtual do Google.
  • NCCL: a NVIDIA Collective Communications Library (NCCL) fornece primitivas otimizadas para operações de comunicação coletiva. A NCCL foi projetada especificamente para ambientes com várias GPUs e vários nós que usam GPUs e redes da NVIDIA. Execute testes da NCCL para avaliar o desempenho dos clusters implantados. Para mais informações, consulte Testar o desempenho da rede.
  • Rede múltipla do GKE: o suporte a várias redes para pods permite várias interfaces em nós e pods em um cluster do GKE. Para saber como configurar várias redes no contexto do GPUDirect, consulte Maximizar a largura de banda da rede da GPU em clusters do modo padrão e Opções de configuração de cluster com o GPUDirect RDMA.

Para mais detalhes sobre as pilhas de software disponíveis, consulte Imagens de SO e do Docker.

A seguir