Visão geral da rede de GPU

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

Rede por infraestrutura

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

Rede VPC padrão para GPUs gerais

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

  • Arquitetura: depende de um design VPC padrão de vários locatários para inferência, veiculação de modelos e pesquisa exploratória.
  • Protocolos: usa TCP/IP na NIC virtual do Google (gVNIC).

Tecidos de alta performance para GPUs em cluster

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

O arranjo alinhado por rails de 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) conecta esses hosts, permitindo uma comunicação extremamente eficiente e de salto único entre duas GPUs dentro do sub-bloco. O RDMA em Ethernet convergente (RoCE) facilita essa comunicação direta. Uma biblioteca NCCL aprimorada e otimizada para a topologia alinhada por rails do Google processa coletivos de comunicação de GPU.
  • Blocos:uma coleção de sub-blocos interconectados por uma rede de alta velocidade e não bloqueadora 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 bloco e sub-bloco para permitir o posicionamento ideal do job.
  • Clusters:uma coleção de blocos interconectados que podem ser escalonados para milhares de GPUs, permitindo que você execute cargas de trabalho de treinamento em grande escala. A comunicação entre blocos diferentes adiciona apenas mais um salto, mantendo alta performance 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 orquestradores.

Tecnologias para comunicação entre GPUs

As máquinas com GPU usam uma combinação de tecnologias para oferecer alta performance, 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 NVIDIA em cada máquina. Além disso, o RoCE permite o RDMA eficiente entre GPUs em máquinas diferentes.

Pilhas de rede de GPU

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

Pilha de rede Descrição Tipo de máquina com GPU
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 RoCE. Para mais informações, consulte Cluster opções de configuração com GPUDirect RDMA.
GPUDirect-TCPXO Melhora o GPUDirect-TCPX descarregando 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 de modo padrão e selecione a guia GPUDirect-TCPXO.
GPUDirect-TCPX Aumenta a performance da rede, permitindo 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 de modo padrão e selecione a guia GPUDirect-TCPX.
TCP/IP padrão O protocolo de rede de linha de base para cargas de trabalho gerais (padrão). Ele oferece alta confiabilidade e ampla compatibilidade com serviços VPC padrão.
  • A2 (A100)
  • G4 (RTX PRO 6000)
  • G2 (L4)
  • N1 (T4 ou V100)

Rede de plano de dados de host e armazenamento

As instâncias de várias GPUs exigem configurações de rede diferentes para 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 a disco, comunicação entre VMs, acesso à Internet, acesso ao Cloud Storage, gerenciamento no nível do host e comunicação com outros Google Cloud serviços.

Para gerenciar esse tráfego, os tipos de máquinas com GPU usam a configuração da NIC virtual do Google (gVNIC) nas NICs Google Titanium. As NICs Titanium descarregam tarefas de processamento da rede, 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 disputem os mesmos recursos do sistema.

Ambiente com várias VPCs

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

As máquinas aceleradoras de alta performance apresentam um design de hardware especializado que usa várias interfaces de rede físicas para processar diferentes tipos de tráfego. Para processar 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 as 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:

  • A4X Max, A4X, A4 e A3 Ultra com GPUDirect RDMA:essas máquinas são apoiadas por duas NICs físicas: uma que oferece suporte a tráfego de uso geral e outra que oferece suporte a tráfego RDMA. As vNICs de instância 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 normais. As vNICs RDMA que são mapeadas para a NIC física compatível com RDMA são anexadas a uma rede VPC separada com um perfil de rede RDMA para aproveitar o GPUDirect RDMA. No total, esses tipos de máquinas exigem três redes VPC. 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 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 ajuda a garantir que as operações de armazenamento e outras tarefas do sistema não disputem a largura de banda com comunicações críticas de GPU para GPU.

A configuração de rede de várias VPCs necessária para configurar difere com base no 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 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. Conforme mostrado no diagrama anterior, essas 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 NICs Google Titanium conectadas a uma VPC. A comunicação de alta performance 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 a performance da rede, as seguintes bibliotecas e componentes de rede permitem que você use GPUs com a pilha de rede do Google:

  • gVNIC: a NIC virtual do Google (gVNIC) é uma interface de rede virtual projetada especificamente para o Compute Engine. A gVNIC melhora a performance, aumenta a consistência e ajuda a reduzir problemas de vizinhos barulhentos. A gVNIC é recomendada em todas as famílias de máquinas e é a vNIC recomendada para comunicação de host para host. Para mais informações, consulte Como usar a NIC virtual do Google.
  • NCCL: a NVIDIA Collective Communications Library (NCCL) oferece primitivas otimizadas para operações de comunicação coletiva. A NCCL foi projetada especificamente para ambientes de várias GPUs e vários nós que usam GPUs e redes NVIDIA. Execute testes NCCL para avaliar a performance dos clusters implantados. Para mais informações, consulte Testar a performance da rede.
  • 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 de GPUDirect, consulte Maximizar a largura de banda da rede da GPU em clusters de modo padrão e Opções de configuração de cluster com GPUDirect RDMA.

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

A seguir