Análise de tecnologia de rede de cluster de GPU: NVLink, InfiniBand, ROCE, DDC

Para alcançar um bom desempenho de treinamento, as redes GPU precisam atender às seguintes condições:

1. Atraso ponta a ponta: como a comunicação da GPU é frequente, a redução da latência geral da transferência de dados entre os nós ajuda a reduzir o tempo geral de treinamento.

2. Transmissão sem perdas: Isto é crítico para o treinamento de IA porque qualquer perda de gradientes ou resultados intermediários fará com que o treinamento retorne ao ponto de verificação anterior armazenado na memória e reinicie, afetando gravemente o desempenho do treinamento.

3. Mecanismo eficaz de controle de congestionamento ponta a ponta: Em uma topologia em árvore, o congestionamento transitório é inevitável quando vários nós transmitem dados para um único nó. O congestionamento persistente aumentará a latência final do sistema. Devido à dependência sequencial entre GPUs, mesmo que a atualização de gradiente de uma GPU seja afetada pela latência da rede, isso pode fazer com que várias GPUs parem de funcionar. Um link lento é suficiente para reduzir o desempenho do treinamento.

Além dos fatores acima, o custo total do sistema, o consumo de energia e os custos de resfriamento também precisam ser considerados de forma abrangente. Com base nessas premissas, exploraremos as diferentes opções de design de arquitetura de GPU e seus prós e contras.

I. Sistema de comutação NVLink

O switch NVLink que conecta 8 GPUs em um servidor GPU também pode ser usado para construir uma rede de comutação que conecta servidores GPU. A Nvidia demonstrou uma topologia que usa a arquitetura NVSwitch para conectar 32 nós (ou 256 GPUs) na conferência Hot Chips em 2022. Como o NVLink foi projetado especificamente para conectar GPUs com links ponto a ponto de alta velocidade, ele tem maior desempenho e menor sobrecarga do que as redes tradicionais.

nvidia-nvswitch-topologia-dois

O NVswitch de terceira geração está equipado com 64 portas NVLink, fornecendo até 12.8 Tbps de capacidade de comutação, ao mesmo tempo que suporta funções multicast e agregação de rede. A agregação de rede pode reunir todos os gradientes gerados pelas GPUs em funcionamento nos NVswitches e realimentar os gradientes atualizados para as GPUs para a próxima iteração. Esse recurso ajuda a reduzir a quantidade de transferência de dados entre GPUs durante o processo de iteração de treinamento.

Segundo a Nvidia, a arquitetura NVswitch é duas vezes mais rápida que a rede de switching InfiniBand ao treinar o modelo GPT-3, apresentando desempenho impressionante. No entanto, é importante notar que a largura de banda deste switch é quatro vezes menor do que o switch de 51.2 Tbps fornecido por fornecedores de switches de última geração.

Se alguém tentar usar NVswitches para construir um sistema de grande escala que contenha mais de 1000 GPUs, ele não será apenas ineficiente em termos de custo, mas também poderá ser limitado pelo próprio protocolo, tornando-o incapaz de suportar sistemas de grande escala. Além disso, a Nvidia não vende NVswitches separadamente, o que significa que se os data centers quiserem expandir seus clusters existentes misturando e combinando GPUs de diferentes fornecedores, eles não poderão usar NVswitches, porque as GPUs de outros fornecedores não suportam essas interfaces .

diagrama nvidia-nvswitch

II. Rede InfiniBand

InfiniBand (IB) é uma tecnologia que vem servindo como alternativa de alta velocidade desde seu lançamento em 1999, substituindo efetivamente as tecnologias de barramento PCI e PCI-X, e amplamente utilizada para conectar servidores, armazenamento e rede. Embora sua grande visão inicial tenha sido reduzida devido a fatores econômicos, o InfiniBand ainda tem sido amplamente aplicado em áreas como computação de alto desempenho, clusters de inteligência artificial/aprendizado de máquina e data centers. Isso é atribuído principalmente à sua excelente velocidade, baixa latência, transmissão sem perdas e acesso remoto direto à memória (RDM) capacidades.

banda infinita

O protocolo InfiniBand (IB) visa alcançar um design eficiente e leve, evitando efetivamente as sobrecargas comuns nos protocolos Ethernet. Ele oferece suporte à comunicação baseada em canal e na memória e pode lidar com eficiência com vários cenários de transferência de dados.

Ao usar o controle de fluxo baseado em crédito entre dispositivos de envio/recebimento, o IB consegue uma transmissão sem perdas (nível de fila ou canal virtual). Esse controle de fluxo salto a salto garante que nenhuma perda de dados ocorrerá devido ao buffer overflow. Além disso, ele também suporta notificação de congestionamento entre terminais (semelhante ao ECN na pilha de protocolos TCP/IP). O IB oferece excelente qualidade de serviço, permitindo priorizar determinados tipos de tráfego para reduzir a latência e evitar perda de pacotes.

Vale ressaltar que todos os switches IB suportam o protocolo RDMA, que permite a transferência de dados diretamente da memória de uma GPU para a memória de outra GPU, sem a intervenção do sistema operacional da CPU. Este modo de transferência direta melhora o rendimento e reduz significativamente a latência ponta a ponta.

No entanto, apesar de suas muitas vantagens, o sistema de comutação InfiniBand não é tão popular quanto o sistema de comutação Ethernet. Isso ocorre porque o sistema de comutação InfiniBand é relativamente difícil de configurar, manter e dimensionar. O InfiniBand O plano de controle geralmente é controlado centralmente por um único gerenciador de sub-rede. Embora possa funcionar bem em clusters pequenos, sua escalabilidade pode se tornar um desafio para redes com 32K ou mais GPUs. Além disso, a rede IB também requer hardware especializado, como adaptadores de canal host e cabos InfiniBand, o que torna seu custo de expansão superior ao da rede Ethernet.

NVIDIALinkX

Atualmente, a Nvidia é o único fornecedor que fornece switches IB de última geração para clusters HPC e GPU AI. Por exemplo, a OpenAI usou 10,000 GPUs Nvidia A100 e rede de comutação IB para treinar seu modelo GPT-3 na nuvem Microsoft Azure. A Meta construiu recentemente um cluster com GPUs de 16K, que usa servidores GPU Nvidia A100 e switches Quantum-2 IB (a Nvidia lançou uma nova plataforma de rede InfiniBand na conferência GTC 2021, com 25.6 Tbps de capacidade de comutação e portas de 400 Gbps). Este cluster é usado para treinar seus modelos generativos de inteligência artificial, incluindo LLaMA. Vale ressaltar que ao conectar mais de 10,000 GPUs, a troca entre GPUs dentro do servidor é feita pelos NVswitches dentro do servidor, enquanto a rede IB/Ethernet é responsável por conectar os servidores.

Para lidar com a demanda de treinamento para parâmetros maiores, os provedores de serviços em nuvem de escala ultralarga estão procurando construir clusters de GPU com GPUs de 32K ou até mesmo de 64K. Nesta escala, pode fazer mais sentido do ponto de vista económico utilizar redes Ethernet. Isso ocorre porque a Ethernet formou um forte ecossistema entre muitos fornecedores de silício/sistemas e módulos ópticos e visa padrões abertos, alcançando a interoperabilidade entre os fornecedores.

Ethernet sem perdas RoCE

A Ethernet é amplamente utilizada em diversas aplicações, desde data centers até redes backbone, com velocidades que variam de 1 Gbps a 800 Gbps, prevendo-se até que atinjam 1.6 Tbps no futuro. Em comparação com o Infiniband, a Ethernet tem uma vantagem na velocidade da porta de interconexão e na capacidade total do switch. Além disso, os switches Ethernet são relativamente mais baratos, com menor custo por unidade de largura de banda, graças à concorrência acirrada entre os fornecedores de chips de rede de ponta, o que os leva a integrar mais largura de banda nos ASICs, reduzindo assim o custo por gigabit.

chip de comutação Ethernet

Os principais fornecedores de ASICs de switch Ethernet de última geração podem fornecer até 51.2 Tbps de capacidade de switch, equipados com portas de 800 Gbps, o que é o dobro do desempenho do Quantum-2 (uma nova plataforma de rede InfiniBand lançada no NVIDIA GTC 2021, com 25.6 Tbps de capacidade do switch e portas de 400 Gbps). Isso significa que se a taxa de transferência do switch for duplicada, o número de switches necessários para construir uma rede GPU pode ser reduzido pela metade.

A Ethernet também pode fornecer serviço de transmissão sem perdas, através do controle de fluxo prioritário (PFC). O PFC oferece suporte a oito classes de serviço, cada uma das quais pode ser controlada por fluxo e algumas podem ser designadas como classes sem perdas. Ao processar e passar pelos switches, o tráfego sem perdas tem maior prioridade do que o tráfego com perdas. Em caso de congestionamento da rede, os switches ou NICs podem gerenciar dispositivos upstream por meio do controle de fluxo, em vez de simplesmente descartar pacotes.

Além disso, a Ethernet também suporta RDMA (acesso remoto direto à memória) por meio de RoCEv2 (RDMA sobre Ethernet convergente), onde os quadros RDMA são encapsulados em IP/UDP. Quando os pacotes RoCEv2 chegam ao adaptador de rede (NIC) no servidor GPU, o NIC pode transferir diretamente os dados RDMA para a memória da GPU, sem intervenção da CPU. Enquanto isso, poderosos esquemas de controle de congestionamento ponta a ponta, como o DCQCN, podem ser implantados para reduzir o congestionamento ponta a ponta e a perda de pacotes do RDMA. Em termos de balanceamento de carga, protocolos de roteamento como o BGP usam roteamento multicaminho de custo igual (ECMP) para distribuir pacotes por vários caminhos com “custo” igual até o destino. Quando os pacotes chegam a um switch que possui vários caminhos de custo igual para o destino, o switch usa uma função hash para decidir o caminho dos pacotes. No entanto, o hash nem sempre é perfeito e pode fazer com que alguns links sejam carregados de forma desigual, resultando em congestionamento da rede.

Aplicativo RDMA

Em termos de balanceamento de carga, protocolos de roteamento como o BGP usam Equal-Cost Multi-Path Routing (ECMP) para distribuir pacotes por vários caminhos com “custo” igual. Quando um pacote chega a um switch que possui vários caminhos de custo igual para o destino, o switch usa uma função hash para decidir qual caminho enviar o pacote. No entanto, o hash nem sempre é perfeito e pode fazer com que alguns links sejam carregados de maneira desigual, resultando em congestionamento da rede.

Para resolver este problema, algumas estratégias podem ser adotadas, como reservar um ligeiro excesso de largura de banda ou implementar balanceamento de carga adaptativo, que permite ao switch rotear novos pacotes de fluxo para outras portas quando um caminho está congestionado. Muitos switches já suportam esse recurso. Além disso, o balanceamento de carga em nível de pacote do RoCEv2 pode dispersar pacotes uniformemente em todos os links disponíveis, para manter o equilíbrio do link. Mas isso pode fazer com que os pacotes cheguem ao destino fora de ordem e exige que a placa de rede suporte o processamento desses dados não ordenados na camada de transporte RoCE, para garantir que a GPU receba os dados em ordem. Isso requer suporte de hardware adicional da placa de rede e do switch Ethernet.

Além disso, os switches Ethernet ROCE de alguns fornecedores também podem agregar os gradientes das GPUs dentro do switch, o que ajuda a reduzir o tráfego entre GPUs durante o processo de treinamento, como os switches Ethernet de última geração da NVIDIA.

Em resumo, switches Ethernet e placas de rede de última geração possuem poderoso controle de congestionamento, balanceamento de carga e suporte a RDMA, e podem ser dimensionados para projetos maiores do que os switches IB. Alguns provedores de serviços em nuvem e empresas de cluster de grande escala começaram a usar redes GPU baseadas em Ethernet para conectar mais de 32 mil GPUs.

Rede totalmente agendada DDC

Recentemente, vários fornecedores de chips de switch/roteador anunciaram o lançamento de chips que suportam Fabric totalmente programado ou AI Fabric. Essa rede totalmente programada tem sido aplicada a muitos designs de chassis modulares há mais de uma década, incluindo os roteadores da série PTX da Juniper, que usam uma rede Virtual Output Queue (VOQ).

Na arquitetura VOQ, os pacotes são armazenados em buffer apenas uma vez no switch folha de entrada e armazenados em filas correspondentes ao switch folha de saída/porta WAN/fila de saída final. Essas filas são chamadas de Virtual Output Queues (VOQs) no switch de entrada. Portanto, cada switch leaf de entrada fornece espaço de buffer para cada fila de saída em todo o sistema. O tamanho desse buffer geralmente é suficiente para acomodar os pacotes de cada VOQ quando eles encontram congestionamento em 40-70 microssegundos. Quando a quantidade de dados em um VOQ é pequena, ela é mantida no buffer on-chip; quando a fila começa a crescer, os dados são transferidos para o buffer profundo na memória externa.

Quando um VOQ em um switch folha de ingresso acumula vários pacotes, ele envia uma solicitação ao switch de saída, solicitando a transmissão desses pacotes na rede. Essas solicitações são enviadas pela rede para o switch folha de saída.

O agendador no switch folha de saída aprova essas solicitações com base em uma hierarquia de agendamento estrita e no espaço disponível em seu buffer de saída superficial. A taxa dessas aprovações é limitada para evitar assinaturas excessivas dos links de switch (além da faixa de aceitação do buffer de fila).

Assim que a aprovação chega ao switch folha de ingresso, ele envia o conjunto aprovado de pacotes para a saída e os transmite por meio de todos os uplinks disponíveis.

Os pacotes enviados para um VOQ específico podem ser dispersos uniformemente por todos os links de saída disponíveis, para obter um equilíbrio de carga perfeito. Isso pode fazer com que os pacotes sejam reordenados. No entanto, o switch de saída possui uma função lógica que pode reordenar esses pacotes em sequência e depois transmiti-los aos nós da GPU.

Como o escalonador de saída controla os dados aprovados antes de entrarem no switch, evitando o uso excessivo da largura de banda do link, ele elimina 99% dos problemas de congestionamento causados ​​pelo incast no plano de dados Ethernet (quando múltiplas portas tentam enviar tráfego para uma única porta de saída). ) e elimina o bloqueio de cabeçalho (bloqueio HOL). Ressalta-se que nesta arquitetura os dados (incluindo solicitações e aprovações) ainda são transmitidos via Ethernet.

O bloqueio HOL refere-se ao fenômeno na transmissão em rede, onde o primeiro pacote de uma série de pacotes encontra um obstáculo, fazendo com que todos os pacotes seguintes sejam bloqueados e incapazes de continuar a transmissão, mesmo que a porta de saída dos pacotes seguintes esteja ociosa. Este fenômeno afeta gravemente a eficiência e o desempenho de transmissão da rede.

Algumas arquiteturas, como a série Express da Juniper e a série Jericho da Broadcom, implementam filas de saída virtuais (VOQs) por meio de seu plano de dados celular proprietário.

Neste método, o switch folha divide os pacotes em segmentos de tamanho fixo e os distribui uniformemente por todos os links de saída disponíveis. Comparado à distribuição uniforme no nível do pacote, isso pode melhorar a utilização do enlace, porque é difícil utilizar totalmente todos os enlaces com uma mistura de pacotes grandes e pequenos. Através do encaminhamento por segmento, também evitamos outro atraso de armazenamento/encaminhamento no link de saída (interface Ethernet de saída). No plano de dados de segmento, os switches de coluna usados ​​para encaminhar segmentos são substituídos por switches personalizados, que podem executar o encaminhamento de segmento com eficiência. Esses switches de plano de dados de segmento são superiores aos switches Ethernet em termos de consumo de energia e latência porque não precisam suportar a sobrecarga da comutação L2. Portanto, o plano de dados baseado em segmentos pode não apenas melhorar a utilização do link, mas também reduzir o atraso geral do plano de dados VOQ.

Mecanismo de encaminhamento baseado em VOQ + Cell

Existem algumas limitações da arquitetura VOQ:

A porta de entrada de cada switch folha deve ter um buffer razoável para armazenar pacotes para todos os VOQs no sistema durante o congestionamento. O tamanho do buffer é proporcional ao número de GPUs e ao número de filas de prioridade por GPU. Uma escala maior de GPU leva diretamente a uma demanda maior de buffer de entrada.

O buffer da fila de saída deve ter espaço suficiente para cobrir o atraso de ida e volta através do plano de dados, para evitar que esses buffers se esgotem durante o handshake de aprovação da solicitação. Em clusters de GPU maiores, usando um plano de dados de 3 níveis, esse atraso de ida e volta pode aumentar devido à latência do cabo e à presença de switches adicionais. Suponha que o buffer da fila de saída não esteja ajustado adequadamente para acomodar o aumento do atraso de ida e volta. Nesse caso, o link de saída não conseguirá atingir 100% de utilização, reduzindo assim o desempenho do sistema.

Embora o sistema VOQ reduza a latência final causada pelo bloqueio head-of-line através do agendamento de saída, a latência mínima de um pacote é aumentada por um atraso extra de ida e volta, porque o switch folha de entrada precisa realizar um handshake de aprovação de solicitação antes transmitindo o pacote.

Apesar dessas limitações, o VOQ (fabric) totalmente programado tem um desempenho significativamente melhor na redução da latência final do que o tráfego Ethernet típico. Se a utilização do link aumentar para mais de 90% com o aumento do buffer, pode valer a pena investir na sobrecarga extra trazida pela expansão da escala da GPU.

Além disso, o aprisionamento do fornecedor é um problema enfrentado pelo VOQ (fabric). Como cada fornecedor usa seu protocolo proprietário, misturar e combinar switches na mesma estrutura é muito difícil.

Resumo: Aplicação das principais tecnologias de rede de cluster GPU

O sistema de comutação NVLink fornece uma solução eficaz para intercomunicação de GPU, mas sua escala de GPU suportada é relativamente limitada, aplicada principalmente à comunicação de GPU dentro do servidor e à transmissão de dados em pequena escala entre os nós do servidor. A rede InfiniBand, como rede RDMA nativa, tem excelente desempenho em ambientes sem congestionamento e de baixa latência. Porém, devido à sua arquitetura relativamente fechada e alto custo, é mais adequado para clientes de pequeno e médio porte que exigem conexões cabeadas.

A Ethernet sem perdas ROCE, contando com o ecossistema Ethernet maduro, o menor custo de rede e a velocidade de iteração de largura de banda mais rápida, mostra maior aplicabilidade no cenário de clusters de GPU de treinamento de médio e grande porte.

Já a rede DDC totalmente programada combina as tecnologias de comutação de células e fila de saída virtual (VOQ), tendo assim uma vantagem significativa na solução do problema de congestionamento da Ethernet. Sendo uma tecnologia emergente, a indústria ainda está em fase de investigação para avaliar o seu potencial a longo prazo e as perspectivas de aplicação.

Deixe um comentário

Voltar ao Topo