O Hipercomputador de IA é um sistema de supercomputação que ajuda a implantar cargas de trabalho de inteligência artificial (IA) e machine learning (ML) de vários hosts usando máquinas de GPU. Os serviços de rede usados na implantação são determinados pelo tipo de máquina de GPU escolhido.
Este documento foi criado para ajudar arquitetos, engenheiros de rede e desenvolvedores a entender os serviços de rede subjacentes relacionados às máquinas com GPU. Neste documento, presumimos que você tenha familiaridade básica com os conceitos de rede de nuvem e computação distribuída.
Entender os serviços de rede de máquinas com GPU é a primeira etapa para implantar e gerenciar suas cargas de trabalho com sucesso, além de ser essencial para otimizar o desempenho e o goodput. O goodput, ou boa capacidade de processamento, mede o progresso efetivo que um sistema faz em uma tarefa de treinamento de ML. Essa métrica oferece mais insights quando comparada a outras, como tempo total decorrido ou taxa de transferência bruta.
Alguns tipos de máquinas com GPU têm uma hierarquia distinta em camadas que otimiza a comunicação em todos os níveis. Essa hierarquia varia desde a estrutura do data center até clusters otimizados para IA e instâncias do Compute Engine. As seções a seguir explicam esses componentes hierárquicos.
Arquitetura de rede de GPU
O Hipercomputador de IA ajuda você a implantar máquinas de GPU que usam uma arquitetura de rede hierárquica e alinhada a trilhos. A conectividade previsível e de alta performance desse design minimiza a sobrecarga de comunicação, o que melhora diretamente o goodput, permitindo que as GPUs passem mais tempo em computação do que esperando por dados.
O arranjo alinhado aos trilhos das GPUs consiste em três componentes principais:
- Sub-blocos:são unidades fundamentais, compostas por um grupo de hosts fisicamente localizados em um único rack. Um switch top-of-rack (ToR) conecta esses hosts, permitindo uma comunicação extremamente eficiente de salto único entre duas GPUs no subbloco. O RDMA sobre Ethernet convergente (RoCE) facilita essa comunicação direta. Uma biblioteca NCCL aprimorada e otimizada para a topologia alinhada a trilhos do Google processa coletivos de comunicação de GPU.
- Blocos:são compostos de vários sub-blocos interconectados com uma estrutura não bloqueadora, o que permite uma interconexão de alta largura de banda. Qualquer GPU em um bloco pode ser acessada em no máximo dois saltos de rede. O sistema expõe metadados de bloco e sub-bloco para permitir o posicionamento ideal do job.
- Clusters:são formados por vários blocos interconectados, que podem ser escalonados para milhares de GPUs e permitem executar cargas de trabalho de treinamento em grande escala. A comunicação entre diferentes blocos adiciona apenas um salto extra, mantendo o alto desempenho e a previsibilidade mesmo em grande escala. Para ativar 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 GPU-para-GPU
As máquinas com GPU usam uma combinação de tecnologias para oferecer alto desempenho, alta taxa de transferência e baixa latência para cargas de trabalho. Essas tecnologias incluem RDMA em Ethernet convergente (RoCE), NICs da NVIDIA e topologia de rede alinhada a trilhos em todo o data center do Google.
Esses tipos de máquina usam a tecnologia NVLink da NVIDIA para criar caminhos de dados diretos e de velocidade ultrarrápida 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 de GPU
Uma pilha de rede é um conjunto de protocolos de software, drivers e camadas que trabalham juntos para implementar a comunicação GPU-para-GPU. Diferentes tipos de máquinas com GPU usam diferentes stacks 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 | O GPUDirect RDMA permite um caminho direto para a troca de dados entre uma GPU e outro dispositivo. Para instâncias A4X Max e A4X, essa pilha de rede usa RDMA em Ethernet convergente (RoCE). Essa tecnologia permite que dispositivos semelhantes leiam e gravem diretamente na memória da GPU, ignorando a CPU para criar uma conexão mais eficiente para troca de dados de alta performance. Para mais informações, consulte Opções de configuração de cluster com GPUDirect RDMA. | |
| GPUDirect-TCPXO | O 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 os tipos de máquina A3 High e A3 Edge. 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 | O GPUDirect-TCPX aumenta o desempenho da rede ao permitir que os payloads de pacotes de dados sejam transferidos diretamente da memória da GPU para a interface de rede. Para informações sobre 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. |
Rede de plano de dados de host e armazenamento
Um caminho de rede separado processa todo o tráfego que não é comunicação direta de GPU para GPU. Esse tráfego inclui acesso ao Cloud Storage, gerenciamento no nível do host e comunicação com outros serviços Google Cloud . Para gerenciar esse tráfego, os tipos de máquina com GPU usam NICs Google Titanium.
As NICs Titanium descarregam tarefas de processamento de rede da CPU, liberando a CPU para se concentrar nas suas cargas de trabalho. Essa separação garante que o tráfego de uso geral e o tráfego dedicado de GPU para GPU usem interfaces físicas diferentes, evitando que eles disputem os mesmos recursos do sistema.
Ambiente de 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ísicas para processar diferentes tipos de tráfego. Para lidar com esse design de hardware especializado, é necessário um ambiente multi-VPC, independente de você usar Slurm, GKE ou Compute Engine para executar suas cargas de trabalho.
A configuração específica de várias VPCs depende do tipo de máquina com GPU e da pilha de rede dela:
A4X Max, A4X, A4 e A3 Ultra com GPUDirect RDMA:essas máquinas usam a rede VPC padrão para tráfego de host de uso geral (gVNIC) e exigem uma rede VPC adicional para tráfego de host de uso geral e uma rede VPC compartilhada para todo o tráfego de GPU para GPU. A VPC de tráfego de GPU precisa ter o perfil de rede RDMA ativado. Para mais informações sobre essa configuração para VMs A4 e A3 Ultra, consulte Criar VPC 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 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 etapas detalhadas sobre como concluir essa configuração, consulte Criar VPCs e sub-redes.
Essa configuração de várias VPCs garante que as operações de armazenamento e outras tarefas do sistema não disputem largura de banda com comunicações críticas de GPU para GPU.
A configuração de rede multi-VPC necessária varia de acordo com o tipo de máquina com GPU. Para um guia detalhado sobre o arranjo de rede, as velocidades de largura de banda e as NICs para todos os tipos de máquinas com GPU compatíveis, consulte Redes e máquinas com GPU.
O diagrama a seguir mostra a arquitetura de rede para uma máquina com GPU, destacando a separação do tráfego de uso geral e do tráfego dedicado de GPU para GPU em diferentes planos de rede.

Como mostrado no diagrama anterior, as máquinas com GPU usam caminhos de rede dedicados para diferentes tipos de tráfego. O tráfego de uso geral, incluindo gerenciamento e acesso ao armazenamento, flui pelas placas de rede Google Titanium, que estão conectadas a uma VPC. A comunicação de alta performance entre GPUs usa interfaces de rede e VPCs separadas, otimizadas com tecnologias como RDMA, garantindo alta largura de banda e baixa latência para cargas de trabalho de IA e ML.
Bibliotecas e componentes 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 reduz os problemas de vizinhos ruidosos. Ela é compatível e recomendada para todas as famílias, tipos e gerações de máquinas, sendo a vNIC recomendada para comunicação host-to-host. Para mais informações, consulte Como usar a NIC virtual do Google.
- NCCL:a NVIDIA Collective Communications Library (NCCL) oferece primitivos otimizados para operações de comunicação coletiva. Ele foi projetado especificamente para ambientes com várias GPUs e vários nós, usando GPUs NVIDIA e rede. Execute testes da NCCL para avaliar a performance dos clusters implantados. Para mais informações, consulte Implantar e executar um teste do NCCCL.
- Várias redes 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 detalhes sobre como configurar várias redes no contexto do GPUDirect, consulte Maximizar a largura de banda da rede da GPU em clusters no modo Standard e Opções de configuração de cluster com RDMA do GPUDirect.
Para mais detalhes sobre as stacks de software disponíveis, consulte Imagens do SO e do Docker.
A seguir
- Saiba mais sobre serviços de rede para implantações de cluster e VM.
- Saiba mais sobre as práticas recomendadas para redes no hipercomputador de IA