

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Redes
<a name="aiml-networking"></a>

**dica**  
 [Inscreva-se nos ](https://events.eksworkshop.com/workshops/genai/) próximos AI/ML workshops do Amazon EKS.

## Considere maior largura de banda de rede ou adaptador de malha elástica para aplicações com alta comunicação Inter-Node
<a name="_consider_higher_network_bandwidth_or_elastic_fabric_adapter_for_applications_with_high_inter_node_communication"></a>

Para cargas de trabalho de treinamento distribuídas no Amazon EKS com altas demandas de comunicação entre nós, considere selecionar instâncias com maior largura de banda de rede ou [ Elastic Fabric Adapter ](https://docs.aws.amazon.com/eks/latest/userguide/node-efa.html) (EFA). O desempenho insuficiente da rede pode prejudicar a transferência de dados, retardando as tarefas de aprendizado de máquina, como o treinamento distribuído de várias GPUs. Observe que as cargas de trabalho de inferência normalmente não têm alta comunicação entre nós.

Certifique-se de que sua imagem de contêiner inclua NCCL e o plug-in [ aws-ofi-nccl (que permite que a NCCL use o EFA via ](https://github.com/aws/aws-ofi-nccl) libfabric). O MPI também pode ser necessário, dependendo do lançador da sua estrutura de treinamento.

### Considerações sobre provisionamento de nós para cargas de trabalho do EFA
<a name="_node_provisioning_considerations_for_efa_workloads"></a>

Ao provisionar EFA-capable nós, as instâncias que precisam se comunicar devem estar na mesma zona de disponibilidade (requisito rígido). Além disso, a AWS recomenda o lançamento de todas as EFA-enabled instâncias em um grupo de posicionamento de [ cluster ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) para minimizar a distância física entre elas dentro de uma única AZ, o que oferece a menor latência possível. Não é necessário um grupo de posicionamento para que o EFA funcione, mas é altamente recomendado para um desempenho ideal.

As considerações a seguir se aplicam a qualquer implantação de treinamento EFA-based distribuído no EKS. Abaixo, nos referimos às anotações do Karpenter como exemplo, mas as mesmas considerações também podem ser aplicadas às implementações de grupos gerenciados e de Self-managed nós.
+  **Fixar em um AZ**. O EFA exige que todos os nós comunicantes estejam no mesmo AZ, portanto, por exemplo, os nós que participam do mesmo trabalho de treinamento distribuído não devem estar espalhados entre as zonas. Você pode aplicar isso fixando o pod em uma AZ usando uma afinidade `nodeSelector` ou pod ativada. `topology.kubernetes.io/zone` Selecione a AZ em que seu tipo de instância de destino tem a melhor disponibilidade ou onde seu bloco de capacidade está reservado. Esteja ciente de que, embora a co-localização Same-AZ melhore a latência entre nós, ela também aumenta o raio de explosão de uma falha. AZ-level Para cargas de trabalho de treinamento de longa duração, um único evento de interrupção ou capacidade do AZ pode acabar com horas de progresso acumulado no treinamento — uma perda cara. Inclua isso em sua estratégia de checkpoint e no planejamento da duração do trabalho.
+  **Configure o grupo de posicionamento do cluster (recomendado)**. Especifique o grupo de posicionamento no EC2NodeClass. Karpenter o provisiona automaticamente. Isso é recomendado para uma latência ideal, mas não é estritamente necessário para que o EFA funcione. Para blocos [ de capacidade para ML](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-blocks.html), o posicionamento é feito automaticamente via UltraClusters — nenhum grupo de posicionamento manual é necessário. Observe que, nesse caso, o AZ já está bloqueado e, portanto, restrições adicionais Pod-level ou de NodePool-level AZ não são necessárias.
+  **Evite a interrupção dos trabalhos de treinamento em vários nós. ** Use PDBs ou `karpenter.sh/do-not-disrupt: "true"` anotações em módulos de treinamento. Sem isso, a consolidação da Karpenter pode tentar substituir ou mover as cargas de trabalho da EFA no meio do trabalho, interrompendo toda a execução do treinamento distribuído. Defina `consolidationPolicy: WhenEmpty` no NodePool para evitar a consolidação dos nós ocupados. Analise a interação entre esses rótulos e `terminationGracePeriod` e `expireAfter` [ aqui](https://karpenter.sh/docs/concepts/disruption/).
+  **Defina a expiração apropriada**. Configure `expireAfter` no NodePool para um valor maior do que seu trabalho de treinamento mais longo ou desative-o NodePools totalmente para treinamento. Um nó que expira no meio do treinamento encerra o trabalho.
+  **Use a versão ** correta do plug-in do dispositivo EFA. O plug-in do dispositivo [ EFA é ](https://github.com/aws/eks-charts/tree/master/stable/aws-efa-k8s-device-plugin) exibido `vpc.amazonaws.com/efa` como um recurso programável.
+  **Configure grupos de segurança**. Todas as instâncias do EFA devem estar no mesmo grupo de segurança com uma regra de autorreferência que permita todo o tráfego em si. to/from Sem isso, o tráfego do EFA falha silenciosamente.

### Entenda os riscos da instância Spot com a co-localização do EFA
<a name="_understand_spot_instance_risks_with_efa_co_location"></a>

As instâncias spot do Amazon EC2 oferecem uma economia significativa para cargas de trabalho de treinamento (consulte [ esta seção ](aiml-compute.md#spot-gpus-karpenter) para ver as melhores práticas gerais do Spot com GPUs). No entanto, o EFA exige que todos os nós comunicantes residam na mesma zona de disponibilidade, e a AWS recomenda colocá-los em um grupo de posicionamento de cluster para otimizar a latência. Essa co-localização apresenta risco de interrupção * correlacionado*: as instâncias compartilham a infraestrutura física subjacente dentro da mesma AZ (e ainda mais dentro de um grupo de posicionamento), portanto, um único evento de recuperação de capacidade pode afetar várias instâncias simultaneamente, potencialmente interrompendo todo o trabalho de treinamento em vários nós de uma só vez, em vez de um único nó.

Isso é fundamentalmente diferente do uso do Spot sem restrições de EFA, em que os nós podem ser espalhados por AZs e as interrupções são estatisticamente independentes. Com o requisito Same-AZ da EFA, um evento de capacidade única pode se espalhar em cascata pelo seu cluster de treinamento.

Se você está buscando economia de custos para cargas de trabalho de treinamento de GPU, certifique-se de ter avaliado todas as opções de compra disponíveis antes de se comprometer com o Spot. [Instâncias reservadas](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-reserved-instances.html), reservas de [ On-Demand capacidade ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html) (ODCRs)[, planos de ](https://docs.aws.amazon.com/savingsplans/latest/userguide/what-is-savings-plans.html) economia e blocos de [ capacidade para ML ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-blocks.html) podem oferecer descontos significativos e, ao mesmo tempo, garantir a disponibilidade da capacidade, evitando o risco de interrupção correlacionado inerente ao Spot com as restrições de colocalização da EFA.

## Planejando o consumo de endereços IP em grandes instâncias de GPU
<a name="_planning_for_ip_address_consumption_on_large_gpu_instances"></a>

Por padrão, o plug-in CNI do Amazon VPC pré-aloca endereços IP para garantir que os pods possam ser programados rapidamente, mantendo uma ENI sobressalente completa anexada e preenchida com IPs. Em instâncias grandes, isso pode resultar na reserva de dezenas de IPs por nó, mesmo quando apenas alguns pods estão em execução.

Essa incompatibilidade é comum em cargas de trabalho de treinamento e inferência em que a densidade de pods por nó é baixa. Em escala de cluster, especialmente durante eventos de escalonamento automático que acionam muitos nós de GPU com poucos pods cada, isso pode levar à exaustão do IP da sub-rede, mesmo que a utilização real do IP seja baixa.

Para atenuar isso, ajuste as `WARM_ENI_TARGET` variáveis `WARM_IP_TARGET``MINIMUM_IP_TARGET`, e para corresponder à densidade real do seu pod. Mais informações nas configurações de ENI e IP Target da [ VPC CNI. ](https://github.com/aws/amazon-vpc-cni-k8s/blob/master/docs/eni-and-ip-target.md)

Para obter um guia completo sobre como otimizar o consumo de IP, consulte [ Otimizando a utilização de endereços IP. ](https://docs.aws.amazon.com/eks/latest/best-practices/ip-opt.html)