O PAI-Lingjun AI Computing service (Lingjun) fornece operações de API unificadas para consultar a distância de comunicação de rede (NCD) entre zonas de borda de GPU (ou NICs). Isso ajuda a implementar o agendamento eficiente de jobs e a obter o melhor desempenho de treinamento. Este tópico descreve os conceitos básicos de NCD, os motivos para usar o NCD e como usá-lo.
Notas de uso
O NCD representa a sobrecarga relativa de encaminhamento em toda a rede física subjacente entre instâncias aceleradas por GPU (nós ou NICs), e não um valor absoluto de latência de encaminhamento.
-
Se um nó acelerado por GPU tiver várias NICs, o NCD entre dois nós será igual ao NCD mínimo entre todos os pares de NICs. O NCD é calculado pela seguinte fórmula:
NCD(Node1, Node2) = Min(NCD(Node1.LNI_i, Node2.LNI_j)). Nesta fórmula, i é o número de NICs no Node1, e j é o número de NICs no Node2. O NCD reflete a latência de encaminhamento de rede em switches físicos e não considera fatores como NVLink. Se um nó de GPU se conectar a vários switches leaf por meio de várias NICs (conexão multi-rail), o NCD entre diferentes NICs no mesmo nó de GPU é 2.
O treemap de NCD no console exibe apenas as NICs usadas para comunicação do plano de dados, excluindo a primeira NIC (ou Elastic Network Interface).
Termos de NCD
O NCD abstrai a distância física de comunicação entre as NICs em nós de GPU em redes físicas. Um valor de NCD menor entre dois nós de GPU (ou NICs) indica menor latência de rede e menos sobrecarga de comunicação. A figura a seguir mostra uma arquitetura típica de rede física de três camadas:
Onde:
Camada core: um switch core encaminha o tráfego entre os switches spine conectados a ele.
Camada spine: um switch spine encaminha o tráfego entre os switches leaf conectados a ele. Cada switch spine se conecta a um switch core.
Camada leaf: um switch leaf conecta as NICs da zona de borda de GPU. Cada switch leaf se conecta a um switch spine.
Cada camada adicional de switch físico que os nós da zona de borda de GPU (ou NICs) percorrem para se comunicar aumenta o NCD em 1.
Com base no diagrama anterior, o cálculo do NCD entre os nós da zona de borda de GPU (ou NICs) ocorre da seguinte forma:
NCD(Node1, Node2) = 1.
NCD(Node1, Node3) = 2.
NCD(Node1, Node5) = 3.
O NCD entre nós de GPU que se comunicam por switches da camada core é 10.
Casos especiais:
Em cenários sem multi-rail, o NCD entre nós de GPU é igual ao NCD entre suas NICs. Em um cenário de conexão multi-rail, as NICs de um único nó de GPU se conectam a diferentes grupos de ASWs (por exemplo, oito uplinks). Como resultado, o NCD entre dois nós de GPU pode ser diferente do NCD entre as NICs individuais do Lingjun. Por exemplo: NCD(GPU1.bond0, GPU2.bond0) = 1, NCD(GPU1.bond0, GPU2.bond1) = 2.
Para simplificar, aplica-se o princípio de redução: NCD(GPU1, GPU2) = min(NCD(GPU1.anyLNI, GPU2.anyLNI)). O NCD entre dois nós de GPU equivale ao NCD mínimo entre qualquer par de NICs do Lingjun entre eles.
Por que usar o NCD
-
Problemas
Em uma determinada topologia de rede física, o desempenho da comunicação entre nós de GPU pode variar significativamente devido às diferenças de latência e à distribuição desigual de hash causadas pelo encaminhamento de tráfego em múltiplos saltos de switch. Isso resulta em variações de throughput durante o treinamento de modelos.
-
Solução
Como mostra a figura anterior, supondo que a ordem de comunicação seja Node1→Node2→Node3→Node4, o Placement-1 supera o Placement-2 porque o tráfego no Placement-1 atravessa a camada spine apenas uma vez, enquanto o Placement-2 requer três encaminhamentos através da camada spine.
Para atender a essas necessidades, o PAI-Lingjun fornece uma interface unificada de consulta de NCD que permite consultar a distância de comunicação entre nós de GPU (ou NICs), garantindo um agendamento de jobs mais eficiente e um desempenho de treinamento ideal.
Consultar NCD no console
O console do Lingjun fornece um treemap de NCD de todos os nós de GPU do cluster. O treemap exibe a topologia da rede física em um formato conciso e legível. Para consultar o treemap:
Faça logon no console do Lingjun.
No painel de navegação à esquerda, escolha Network Resources > Resource overview.
-
Na seção Physical Topology, selecione um bloco CIDR do Lingjun na lista suspensa e clique em Search e visualize o treemap de NCD correspondente.
NotaO treemap de NCD exibe apenas as NICs finais, que são todas as NICs, exceto a primeira.

Também é possível selecionar uma NIC do Lingjun na lista suspensa e clicar em Search e visualize o treemap de NCD que contém apenas essa NIC.
