Elastic Fabric Adapter para workloads de IA/ML e HPC no Amazon EC2
Um Elastic Fabric Adapter (EFA) é um dispositivo de rede que pode ser conectado à sua instância do Amazon EC2 para acelerar aplicativos de Inteligência Artificial (IA), Machine Learning (ML) e Computação de Alta Performance (HPC). O EFA permite atingir a performance da aplicação de um cluster cluster de IA/ML ou HPC on-premises, com a escalabilidade, a flexibilidade e a elasticidade fornecidas pela Nuvem AWS.
O EFA fornece latência mais baixa e mais consistente e maior throughput que o transporte de TCP tradicionalmente usado em sistemas HPC baseados em nuvem. Esse recurso aprimora a performance da comunicação entre instâncias, que é essencial para o dimensionamento de aplicações de IA/ML e HPC. Ele é otimizado para funcionar na infraestrutura de rede da AWS existente e pode ser dimensionado dependendo dos requisitos da aplicação.
O EFA se integra ao Libfabric 1.7.0 e posterior, e é compatível com a Nvidia Collective Communications Library (NCCL) para aplicativos de IA e ML, e com o Open MPI 4 e posterior e o Intel MPI 2019 Update 5 e posterior para aplicações HPC.
Conteúdo
- Conceitos básicos de EFA
- Interfaces e bibliotecas compatíveis
- Tipos de instâncias compatíveis
- Sistemas operacionais compatíveis
- Limitações de EFA
- Preços do EFA
- Conceitos básicos do EFA e MPI
- Conceitos básicos do EFA e NCCL
- Maximize a largura de banda da rede
- Criar e anexar um EFA
- Desanexar e excluir um EFA
- Monitorar um EFA
- Verificar o instalador do EFA
Conceitos básicos de EFA
Um dispositivo EFA pode ser conectado a uma instância EC2 de duas formas:
-
Usando uma interface EFA tradicional, também chamada de EFA com ENA, que cria um dispositivo EFA e um dispositivo ENA.
-
Usando uma interface exclusiva do EFA, que cria apenas o dispositivo do EFA.
O dispositivo EFA fornece recursos como desvio de sistema operacional integrado e controle de congestionamento mediante o protocolo Scalable Reliable Datagram (SRD). Os atributos do dispositivo EFA permitem uma funcionalidade de transporte confiável e de baixa latência que permite que a interface EFA forneça melhor desempenho de aplicações de HPC e ML no Amazon EC2. Já o dispositivo ENA oferece uma rede IP tradicional.
Tradicionalmente, as aplicações de IA/ML usam NCCL e as aplicações de HPC usam a Message Passing Interface (MPI) para estabelecer a interface com o transporte de rede do sistema. Na Nuvem AWS, isso significa que as aplicações fazem interface com NCCL ou MPI, que usa a pilha TCP/IP do sistema operacional e o driver de dispositivo ENA para habilitar a comunicação de rede entre as instâncias.
Com uma interface tradicional EFA (EFA com ENA) ou somente EFA, as aplicações de IA/ML usam NCCL e as aplicações de HPC usam MPI, para interagir diretamente com a API Libfabric. A API Libfabric ignora o kernel do sistema operacional e se comunica diretamente com o dispositivo EFA para colocar pacotes na rede. Isso reduz a sobrecarga e permite que as aplicações de IA/ML e HPC sejam executadas com mais eficiência.
nota
O Libfabric é um componente central do framework OpenFabrics Interfaces (OFI), que define e exporta a API do espaço do usuário do OFI. Para obter mais informações, consulte o site Libfabric OpenFabrics
Diferenças entre as interfaces de rede ENA, EFA e somente EFA
O Amazon EC2 fornece dois tipos de interfaces de rede:
-
As interfaces ENA fornecem todos os atributos tradicionais de rede IP e roteamento necessários para oferecer suporte à rede IP para uma VPC. Para mais informações, consulte Habilitar redes aperfeiçoadas com o ENA em instâncias do EC2.
-
As interfaces EFA (EFA com ENA) fornecem o dispositivo ENA para rede IP e o dispositivo EFA para comunicação de baixa latência e alto throughput.
-
As interfaces exclusivamente EFA são compatíveis apenas com os recursos do dispositivo EFA, sem o dispositivo ENA para redes IP tradicionais.
A tabela a seguir apresenta uma comparação das interfaces de rede ENA, EFA e exclusivamente EFA.
ENA | EFA (EFA com ENA) | Exclusivamente EFA | |
---|---|---|---|
Compatível com a funcionalidade de rede IP | Sim | Sim | Não |
Podem ser atribuídos endereços IPv4 ou IPv6 | Sim | Sim | Não |
Pode ser usado como interface de rede primária, por exemplo | Sim | Sim | Não |
Conta para o limite de anexos do ENI, por exemplo | Sim | Sim | Sim |
Compatível com o tipo de instância | Compatível com todos os tipos de instâncias baseadas em Nitro | Tipos de instâncias compatíveis | Tipos de instâncias compatíveis |
Nomeação de parâmetro nas APIs do EC2 | interface |
efa |
efa-only |
Nomeação de campo no console do EC2 | Nenhuma seleção | EFA com ENA | Exclusivamente EFA |
Interfaces e bibliotecas compatíveis
Os EFAs oferecem suporte às seguintes interfaces e bibliotecas:
-
Open MPI 4 e posterior
nota
O Open MPI 4.0 ou mais recente é preferível para instâncias baseadas em Graviton
-
Intel MPI 2019 Update 5 e posterior
-
NVIDIA Collective Communications Library (NCCL) 2.4.2 e posterior
-
AWS Neuron SDK versão 2.3 e posterior
Tipos de instâncias compatíveis
Os tipos de instância a seguir são compatíveis com EFAs:
Para ver os tipos de instância disponíveis com suporte a EFAs em uma região específica
Os tipos de instância disponíveis variam de acordo com a região. Para ver os tipos de instâncias disponíveis com suporte a EFAs em uma região, use o comando describe-instance-types com o parâmetro --region
. Inclua o parâmetro --filters
para definir o escopo dos resultados para os tipos de instância com suporte a EFA e o parâmetro --query
para definir o escopo da saída para o valor de InstanceType
.
aws ec2 describe-instance-types --region
us-east-1
--filters Name=network-info.efa-supported,Values=true --query "InstanceTypes[*].[InstanceType]" --output text | sort
Sistemas operacionais compatíveis
O suporte ao sistema operacional varia dependendo do tipo de processador. A tabela a seguir mostra os sistemas operacionais compatíveis.
Sistema operacional | Tipos de instância Intel/AMD (x86_64 ) |
Tipos de instância AWS Graviton (arm64 ) |
---|---|---|
Amazon Linux 2023 | ✓ | ✓ |
Amazon Linux 2 | ✓ | ✓ |
RHEL 8 e 9 | ✓ | ✓ |
Debian 10 e 11 | ✓ | ✓ |
Rocky Linux 8 e 9 | ✓ | ✓ |
Ubuntu 20.04, 22.04 e 24.04 | ✓ | ✓ |
SUSE Linux Enterprise 15 SP2 e posterior | ✓ | ✓ |
OpenSUSE Leap 15.5 e posterior | ✓ |
nota
O Ubuntu 20.04 é compatível com suporte direto ponto a ponto quando usado com instâncias dl1.24xlarge
.
Limitações de EFA
Os EFAs têm as seguintes limitações:
nota
O tráfego EFA se refere ao tráfego transmitido pelo dispositivo EFA de uma interface EFA (EFA com ENA) ou exclusivamente EFA.
-
Atualmente, o tráfego EFA entre instâncias P4d/P4de/DL1 e outros tipos de instância não é compatível.
-
Os tipos de instância compatíveis com várias placas de rede podem ser configurados com um EFA por placa de rede. Todos os outros tipos de instância compatíveis oferecem suporte a apenas um EFA por instância.
-
Instâncias dedicadas
c7g.16xlarge
,m7g.16xlarge
, er7g.16xlarge
, e hosts dedicados não são compatíveis quando um EFA está anexado. -
O tráfego EFA não pode cruzar zonas de disponibilidade ou VPCs. Isso não se aplica ao tráfego IP normal do dispositivo ENA de uma interface EFA.
-
O tráfego EFA não é roteável. O tráfego IP normal do dispositivo ENA de uma interface EFA permanece roteável.
-
EFA não é compatível com o AWS Outposts
-
O dispositivo EFA de uma interface EFA (EFA com ENA) é compatível com instâncias do Windows somente para AWS Cloud Digital Interface aplicações baseadas no Kit de Desenvolvimento de Software (AWS CDISDK). Ao anexar uma interface EFA (EFA com ENA) a uma instância do Windows para aplicações não baseadas no SDK do CDI, ela funcionará como uma interface ENA, sem os recursos adicionais do dispositivo EFA. A interface exclusiva do EFA não é compatível com aplicações AWS CDI baseadas em Windows ou Linux. Para obter mais informações, consulte o Guia do Usuário do AWS Cloud Digital Interface Kit de Desenvolvimento de Software (AWS CDI SDK).
Preços do EFA
O EFA está disponível como um recurso de rede opcional do Amazon EC2 que pode ser habilitado em qualquer instância compatível sem nenhum custo adicional.