Terminologia e Noções Básicas
O treinamento de modelos grandes normalmente utiliza hosts de 8 GPUs de máquina única para formar clusters. Os modelos incluem 8*{A100, A800, H100, H800}. Abaixo está a topologia de hardware de um host de GPU 8*A100 típico:

Chip de comutação PCIe
Dispositivos como CPUs, memória, armazenamento (NVME), GPUs e placas de rede que suportam PCIe podem se conectar ao barramento PCIe ou a um chip de switch PCIe dedicado para obter interconectividade.
Atualmente, existem cinco gerações de produtos PCIe, sendo a mais recente a Gen5.
NVLink
Definição
De acordo com a Wikipedia, NVLink é um link de comunicações de curto alcance serial multi-lane baseado em fio desenvolvido pela Nvidia. Ao contrário do PCI Express, um dispositivo pode consistir em vários NVLinks, e os dispositivos usam redes mesh para se comunicar em vez de um hub central. O protocolo foi anunciado pela primeira vez em março de 2014 e usa uma interconexão de sinalização de alta velocidade (NVHS) proprietária.
Em resumo, NVLink é um método de interconexão de alta velocidade entre diferentes GPUs dentro do mesmo host. É um link de comunicação de curto alcance que garante transmissão de pacotes bem-sucedida, oferece maior desempenho e serve como um substituto para PCIe. Ele suporta múltiplas faixas, com largura de banda de link aumentando linearmente com o número de faixas. GPUs dentro do mesmo nó são interconectadas via NVLink de forma full-mesh (semelhante à arquitetura spine-leaf), utilizando a tecnologia proprietária da NVIDIA.
Evolução: Gerações 1/2/3/4
As principais diferenças estão no número de faixas por NVLink e na largura de banda por faixa (os números fornecidos são larguras de banda bidirecionais):

Por exemplo:
A100: 2 pistas/NVSwitch * 6 NVSwitch * 50 GB/s/pista = 600 GB/s de largura de banda bidirecional (300 GB/s unidirecional). Observação: esta é a largura de banda total de uma GPU para todos os NVSwitches.
A800: Reduzido em 4 pistas, resultando em 8 pistas * 50 GB/s/pista = 400 GB/s de largura de banda bidirecional (200 GB/s unidirecional).
do Paciente
A largura de banda NVLink em tempo real pode ser coletada com base em métricas DCGM.

Comutador NVS
Consulte o diagrama abaixo para uma topologia típica de hardware host de GPU 8*A100.

NVSwitch é um chip de switch NVIDIA encapsulado dentro do módulo GPU, não um switch externo independente.
Abaixo está uma imagem de uma máquina real da Inspur. As oito caixas representam as oito GPUs A100, e os seis dissipadores de calor grossos à direita cobrem os chips NVSwitch:

Interruptor NVLink
Embora NVSwitch pareça um switch, na verdade é um chip switch no módulo GPU usado para conectar GPUs dentro do mesmo host.
Em 2022, a NVIDIA lançou esse chip como um switch real chamado NVLink Switch, projetado para conectar dispositivos GPU entre hosts. Os nomes podem ser facilmente confundidos.
HBM (memória de alta largura de banda)
Origin
Tradicionalmente, a memória GPU e a memória regular (DDR) são montadas na placa-mãe e conectadas ao processador (CPU, GPU) via PCIe. Isso cria um gargalo de velocidade no PCIe, com Gen4 oferecendo 64 GB/s e Gen5 oferecendo 128 GB/s. Para superar isso, alguns fabricantes de GPU (não apenas a NVIDIA) empilham vários chips DDR e os empacotam com a GPU. Dessa forma, cada GPU pode interagir com sua própria memória sem roteamento pelo chip de switch PCIe, aumentando significativamente a velocidade. Esta “High Bandwidth Memory” é abreviada como HBM. O mercado de HBM é atualmente dominado por empresas sul-coreanas como SK Hynix e Samsung.
Evolution: HBM 1/2/2e/3/3e

De acordo com a Wikipedia, o AMD MI300X usa uma configuração HBM192 de 3 GB com uma largura de banda de 5.2 TB/s. O HBM3e é uma versão aprimorada do HBM3, com velocidades que variam de 6.4 GT/s a 8 GT/s.
Unidades de largura de banda
O desempenho do treinamento de GPU em larga escala está diretamente relacionado às velocidades de transferência de dados. Isso envolve vários links, como largura de banda PCIe, largura de banda de memória, largura de banda NVLink, largura de banda HBM e largura de banda de rede. A largura de banda de rede é normalmente expressa em bits por segundo (b/s) e geralmente se refere a unidirecional (TX/RX). A largura de banda de outros módulos é geralmente expressa em bytes por segundo (B/s) ou transações por segundo (T/s) e geralmente se refere à largura de banda bidirecional total. É importante distinguir e converter essas unidades ao comparar larguras de banda.
Host típico 8A100/8A800
Host Topology: 2-2-4-6-8-8
- 2 CPUs (e suas respectivas memórias, NUMA)
- 2 placas de rede de armazenamento (para acessar armazenamento distribuído, gerenciamento em banda, etc.)
- 4 chips de switch PCIe Gen4
- 6 chips NVSwitch
- 8 GPUs
- 8 placas de rede dedicadas à GPU

O diagrama a seguir fornece uma visão mais detalhada:

Placas de rede de armazenamento
Eles são conectados diretamente à CPU via PCIe. Seus propósitos incluem:
Leitura e gravação de dados de armazenamento distribuído, como leitura de dados de treinamento e gravação de pontos de verificação.
Gerenciamento normal de nós, SSH, monitoramento, etc.
A recomendação oficial é usar BF3 DPU, mas, desde que a largura de banda atenda aos requisitos, qualquer solução funcionará. Para uma rede com boa relação custo-benefício, use RoCE; para melhor desempenho, use IB.
NVSwitch Fabric: malha completa intra-nó
As 8 GPUs são conectadas em uma configuração full-mesh por meio de 6 chips NVSwitch, também conhecidos como NVSwitch fabric. Cada link no full-mesh tem uma largura de banda de n * bw-per-nvlink-lane:
Para A100 usando NVLink3, são 50 GB/s por faixa, então cada link na malha completa é 12*50 GB/s = 600 GB/s (bidirecional), com 300 GB/s unidirecional.
Para o A800, que é uma versão reduzida, 12 pistas são reduzidas para 8 pistas, então cada link é 8*50 GB/s = 400 GB/s (bidirecional), com 200 GB/s unidirecional.
Usando nvidia-smi topo para visualizar topologia
Abaixo está a topologia real exibida pelo nvidia-smi em uma máquina 8*A800 (as placas de rede são vinculadas em pares, as NIC 0~3 são vinculadas):

Entre GPUs (área superior esquerda): Todas são NV8, indicando 8 conexões NVLink.
Entre NICs:
Na mesma CPU: NODE, indicando que não há necessidade de cruzar NUMA, mas requer o cruzamento de chips de switch PCIe.
Em CPUs diferentes: SYS, indicando a necessidade de cruzar NUMA.
Entre GPUs e NICs:
Na mesma CPU e sob o mesmo chip de switch PCIe: NODE, indicando apenas chips de switch PCIe cruzados.
Na mesma CPU, mas sob diferentes chips de switch PCIe: NODE, indicando cruzamento de chips de switch PCIe e PCIe Host Bridge.
Em CPUs diferentes: SYS, indicando cruzamento de NUMA, chips de switch PCIe e a maior distância.
Cluster de treinamento de GPU em rede: IDC GPU Fabric
Arquitetura de interconexão de nós de GPU:

Rede de computação:
As placas de interface de rede (NICs) da GPU são conectadas diretamente aos switches topo do rack (leaf). Esses switches leaf são conectados em uma topologia full-mesh aos switches spine, formando uma rede de computação GPU inter-host. O objetivo dessa rede é facilitar a troca de dados entre GPUs em diferentes nós. Cada GPU é conectada à sua NIC por meio de um chip de switch PCIe: GPU <–> PCIe Switch <–> NIC.
Rede de armazenamento:
Duas NICs conectadas diretamente à CPU são vinculadas a outra rede, principalmente para operações de leitura/gravação de dados e gerenciamento de SSH.
RoCE vs. InfiniBand:
Tanto as redes de computação quanto as de armazenamento exigem RDMA para atingir o alto desempenho necessário para IA. Atualmente, há duas opções de RDMA:
RoCEv2: Provedores de nuvem pública normalmente usam essa rede para hosts de 8 GPUs, como o CX6 com uma configuração de 8*100 Gbps. É relativamente barato, ao mesmo tempo em que atende aos requisitos de desempenho.
InfiniBand (IB): Oferece desempenho 20% melhor que o RoCEv2 na mesma largura de banda NIC, mas é duas vezes mais caro.
Análise de gargalo de largura de banda do link de dados:

As principais larguras de banda dos links são indicadas no diagrama:
Comunicação de GPU intra-host: utiliza NVLink com uma largura de banda bidirecional de 600 GB/s (300 GB/s unidirecional).
Comunicação GPU-NIC intra-host: usa chips de switch PCIe Gen4 com uma largura de banda bidirecional de 64 GB/s (32 GB/s unidirecional).
Comunicação GPU entre hosts: Depende de NICs para transmissão de dados. A largura de banda convencional para modelos domésticos A100/A800 é de 100 Gbps (12.5 GB/s unidirecional), resultando em desempenho significativamente menor em comparação à comunicação entre hosts.
- 200 Gbps (25 GB/s): aproxima-se da largura de banda unidirecional do PCIe Gen4.
- 400 Gbps (50 GB/s): Excede a largura de banda unidirecional do PCIe Gen4.
Portanto, usar NICs de 400 Gbps nesses modelos não é muito eficaz, pois 400 Gbps exigem que o desempenho do PCIe Gen5 seja totalmente utilizado.
Hosts típicos 8H100/8H800
Existem dois tipos de fator de forma de placa de GPU:
- PCIe Gen5
- SXM5: Oferece maior desempenho.
Layout do chip H100:
A estrutura interna de um chip GPU H100 inclui:

Tecnologia de processo de 4 nm.
A linha inferior consiste em 18 pistas NVLink Gen4 com uma largura de banda bidirecional total de 900 GB/s (18 pistas * 25 GB/s/pista).
A seção azul do meio é o cache L2.
As laterais contêm chips HBM, que servem como memória da GPU.
Topologia de hardware intra-host:
Semelhante à estrutura de 100 GPUs do A8, com as seguintes diferenças:
O número de chips NVSwitch foi reduzido de 6 para 4.

A conexão com a CPU foi atualizada de PCIe Gen4 x16 para PCIe Gen5 x16, com uma largura de banda bidirecional de 128 GB/s.
Networking:
Semelhante ao A100, mas a configuração padrão foi atualizada para NICs CX400 de 7 Gbps. Caso contrário, a lacuna de largura de banda entre o switch PCIe e o NVLink/NVSwitch seria ainda maior.
Hosts típicos 4*L40S/8*L40S
A L40S é uma nova geração de GPUs multifuncionais e econômicas, com lançamento previsto para 2023, posicionada como concorrente da A100. Embora não seja adequada para treinar grandes modelos fundamentais (como será explicado mais tarde), ela é anunciada como capaz de lidar com quase qualquer outra tarefa.
Comparação das configurações e recursos do L40S e do A100
Uma das principais características do L40S é seu curto time-to-market, o que significa que o período do pedido até a entrega é muito menor em comparação ao A100/A800/H800. Isso se deve a razões técnicas e não técnicas, como: A remoção do FP64 e do NVLink.
O uso de memória GDDR6, que não depende da capacidade de produção da HBM (e empacotamento avançado).
O menor custo é atribuído a vários fatores, que serão detalhados mais adiante.
A principal redução de custos provavelmente vem da própria GPU, devido à remoção de certos módulos e funções ou ao uso de alternativas mais baratas.
Economias no custo geral do sistema, como a eliminação de uma camada de switches PCIe Gen4. Comparado a GPUs 4x/8x, o restante dos componentes do sistema são quase insignificantes em custo.
Comparação de desempenho entre L40S e A100
Abaixo está uma comparação oficial de desempenho:

Desempenho: 1.2x a 2x (dependendo do cenário específico).
Consumo de energia: Duas unidades L40S consomem aproximadamente a mesma energia que uma única A100.
É importante notar que a recomendação oficial para hosts L40S é uma única máquina com 4 GPUs em vez de 8 (os motivos para isso serão explicados mais tarde). Portanto, as comparações são geralmente feitas entre duas unidades 4L40S e uma única unidade 8A100. Além disso, muitas melhorias de desempenho em vários cenários têm um pré-requisito principal: a rede deve ser uma rede RoCE ou IB de 200 Gbps, que será explicada a seguir.
Montagem do sistema L40S
Arquitetura recomendada: 2-2-4
Comparado à arquitetura 100-2-2-4-6-8 do A8, a arquitetura de host de GPU L40S oficialmente recomendada é 2-2-4. A topologia física de uma única máquina é a seguinte:

A mudança mais notável é a remoção do chip de switch PCIe entre a CPU e a GPU. Tanto a NIC quanto a GPU são conectadas diretamente ao PCIe Gen4 x16 integrado da CPU (64 GB/s):
- 2 CPUs (NUMA)
- 2 NICs CX7 de porta dupla (cada NIC 2*200Gbps)
- 4 GPUs L40S
Além disso, apenas uma NIC de armazenamento de porta dupla é fornecida, conectada diretamente a qualquer uma das CPUs.
Esta configuração fornece a cada GPU uma largura de banda de rede média de 200 Gbps.
Arquitetura não recomendada: 2-2-8

Conforme mostrado, em comparação com uma única máquina com 4 GPUs, uma única máquina com 8 GPUs requer a introdução de dois chips de switch PCIe Gen5.
Dizem que o preço atual de um único chip de switch PCIe Gen5 é de US$ 10,000 (embora isso não tenha sido verificado), e uma única máquina requer 2 chips, o que a torna ineficaz em termos de custo.
Há apenas um fabricante produzindo switches PCIe, com capacidade de produção limitada e longos prazos de entrega.
A largura de banda da rede por GPU é reduzida pela metade.
Networking
A recomendação oficial é para modelos de 4 GPUs, emparelhados com rede RoCE/IB de 200 Gbps.
Análise de gargalos de largura de banda de link de dados

Usando duas GPUs L40S na mesma CPU como exemplo, há duas opções de link possíveis:
- Processamento direto da CPU:
Caminho: GPU0 <–PCIe–> CPU <–PCIe–> GPU1
Largura de banda: PCIe Gen4 x16 com largura de banda bidirecional de 64 GB/s (32 GB/s unidirecional).
Gargalo de processamento da CPU: a ser determinado.
- Ignorando o processamento da CPU:
Caminho: GPU0 <–PCIe–> NIC <– RoCE/IB Switch –> NIC <–PCIe–> GPU1
Largura de banda: PCIe Gen4 x16 com largura de banda bidirecional de 64 GB/s (32 GB/s unidirecional).
Largura de banda média por GPU: Cada GPU tem uma porta de rede unidirecional de 200 Gbps, equivalente a 25 GB/s.
Suporte NCCL: A versão mais recente do NCCL está sendo adaptada para o L40S, com o comportamento padrão de roteamento de dados externamente e vice-versa.
Embora esse método pareça mais longo, ele é supostamente mais rápido do que o primeiro método, desde que as NICs e switches sejam configurados corretamente com uma rede RoCE/IB de 200 Gbps. Nessa arquitetura de rede, com largura de banda suficiente, a largura de banda de comunicação e a latência entre quaisquer duas GPUs são consistentes, independentemente de estarem na mesma máquina ou na mesma CPU. Isso permite o dimensionamento horizontal do cluster.
Considerações sobre custo e desempenho:
O custo das máquinas GPU é reduzido. No entanto, para tarefas com requisitos de largura de banda de rede mais baixos, o custo do NVLINK é efetivamente transferido para a rede. Portanto, uma rede de 200 Gbps é essencial para utilizar totalmente o desempenho do treinamento multi-GPU com o L40S.
Gargalos de largura de banda no método dois:
O gargalo de largura de banda entre GPUs dentro do mesmo host é determinado pela velocidade da NIC. Mesmo com a configuração 2*CX7 recomendada:
- L40S: 200 Gbps (velocidade NIC unidirecional)
- A100: 300 GB/s (NVLINK3 unidirecional) == 12x200 Gbps
- A800: 200 GB/s (NVLINK3 unidirecional) == 8x200 Gbps
É evidente que a largura de banda entre GPUs do L40S é 12 vezes mais lenta que a do A100 NVLINK e 8 vezes mais lenta que a do A800 NVLINK, tornando-o inadequado para treinamento de modelos fundamentais com uso intensivo de dados.
Considerações sobre testes:
Conforme mencionado, mesmo ao testar uma única máquina L4S de 40 GPUs, um switch de 200 Gbps é necessário para atingir o desempenho ideal entre GPUs.
Produtos relacionados:
-
Compatível com NVIDIA MMA4Z00-NS400 400G OSFP SR4 Flat Top PAM4 850nm 30m em OM3/50m em OM4 MTP/MPO-12 Multimode FEC Optical Transceiver Module $650.00
-
Compatível com NVIDIA MMA4Z00-NS-FLT 800Gb/s Porta dupla OSFP 2x400G SR8 PAM4 850nm 100m DOM Módulo transceptor óptico MPO-12 MMF duplo $850.00
-
Compatível com NVIDIA MMA4Z00-NS 800Gb/s Porta dupla OSFP 2x400G SR8 PAM4 850nm 100m DOM Módulo transceptor óptico MPO-12 MMF duplo $750.00
-
Compatível com NVIDIA MMS4X00-NM 800Gb/s Porta dupla OSFP 2x400G PAM4 1310nm 500m DOM Módulo transceptor óptico MTP/MPO-12 SMF duplo $1100.00
-
Compatível com NVIDIA MMS4X00-NM-FLT 800G Twin-port OSFP 2x400G Flat Top PAM4 1310nm 500m DOM Módulo transceptor óptico MTP/MPO-12 SMF duplo $1200.00
-
Compatível com NVIDIA MMS4X00-NS400 400G OSFP DR4 Flat Top PAM4 1310nm MTP/MPO-12 500m SMF FEC Módulo transceptor óptico $800.00
-
Mellanox MMA1T00-HS compatível com 200G Infiniband HDR QSFP56 SR4 850nm 100m MPO-12 APC OM3/OM4 FEC PAM4 Módulo transceptor óptico $200.00
-
NVIDIA MFP7E10-N010 compatível com 10 m (33 pés) 8 fibras baixa perda de inserção fêmea para fêmea MPO cabo tronco polaridade B APC para APC LSZH multimodo OM3 50/125 $47.00
-
Compatível com NVIDIA MCP7Y00-N003-FLT 3m (10 pés) 800G OSFP de porta dupla a 2x400G OSFP plano superior InfiniBand NDR Breakout DAC $275.00
-
NVIDIA MCP7Y70-H002 compatível com 2m (7 pés) 400G Twin-port 2x200G OSFP para 4x100G QSFP56 Passivo Breakout Direct Attach Cabo de cobre $155.00
-
NVIDIA MCA4J80-N003-FTF compatível com 3m (10 pés) 800G de porta dupla 2x400G OSFP a 2x400G OSFP InfiniBand NDR cabo de cobre ativo, parte superior plana em uma extremidade e parte superior com aletas na outra $600.00
-
NVIDIA MCP7Y10-N002 compatível com 2m (7 pés) 800G InfiniBand NDR OSFP de porta dupla para 2x400G QSFP112 Breakout DAC $200.00