Elastic Fabric Adapter para workloads de IA/ML e HPC no Amazon EC2 - Amazon Elastic Compute Cloud

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 aplicações 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 é integrado à Libfabric 1.7.0 e posteriores, é compatível com a Nvidia Collective Communications Library (NCCL) para aplicações de IA e ML, com a Open MPI 4.1 e posteriores, e com a Intel MPI 2019 Update 5 e posteriores para aplicações de HPC.

O EFA oferece suporte para gravação com tecnologia RDMA (Remote Direct Memory Access) na maioria dos tipos de instância compatíveis com a versão 4 ou com versões posteriores do Nitro. A leitura com tecnologia RDMA é compatível com todas as instâncias com a versão 4 ou com versões posteriores do Nitro. Para obter mais informações, consulte Tipos de instâncias compatíveis.

Conceitos básicos de EFA

Um dispositivo EFA pode ser conectado a uma instância EC2 de duas formas:

  1. Usando uma interface EFA tradicional, também chamada de EFA com ENA, que cria um dispositivo EFA e um dispositivo ENA.

  2. 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 performance de aplicações de HPC e ML no Amazon EC2. Já o dispositivo ENA oferece uma rede IP tradicional.

O contraste de uma pilha de software HPC tradicional com uma que usa EFA.

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.1 e posteriores

  • Intel MPI 2019 Update 5 e posteriores

  • 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

Todos os tipos de instância a seguir oferecem suporte para EFA. Além disso, as tabelas indicam o suporte a leitura e gravação RDMA para os tipos de instâncias.

Nitro v6
Tipo de instância Suporte para a leitura com tecnologia RDMA Suporte para a gravação com tecnologia RDMA
Otimizadas para computação
c8gn.16xlarge Yes Yes
c8gn.24xlarge Yes Yes
c8gn.48xlarge Yes Yes
c8gn.metal-24xl Yes Yes
c8gn.metal-48xl Yes Yes
Computação acelerada
p6-b200.48xlarge Yes Yes
Nitro v5
Tipo de instância Suporte para a leitura com tecnologia RDMA Suporte para a gravação com tecnologia RDMA
Finalidade geral
m8g.24xlarge Yes No
m8g.48xlarge Yes No
m8g.metal-24xl Yes No
m8g.metal-48xl Yes No
m8gd.24xlarge No No
m8gd.48xlarge No No
m8gd.metal-24xl No No
m8gd.metal-48xl No No
Otimizadas para computação
c7gn.16xlarge Yes No
c7gn.metal Yes No
c8g.24xlarge Yes No
c8g.48xlarge Yes No
c8g.metal-24xl Yes No
c8g.metal-48xl Yes No
c8gd.24xlarge No No
c8gd.48xlarge No No
c8gd.metal-24xl No No
c8gd.metal-48xl No No
Otimizadas para memória
r8g.24xlarge No No
r8g.48xlarge No No
r8g.metal-24xl No No
r8g.metal-48xl No No
r8gd.24xlarge No No
r8gd.48xlarge No No
r8gd.metal-24xl No No
r8gd.metal-48xl No No
x8g.24xlarge No No
x8g.48xlarge No No
x8g.metal-24xl No No
x8g.metal-48xl No No
Otimizada para armazenamento
i7ie.48xlarge Yes No
i7ie.metal-48xl Yes No
i8g.48xlarge No No
Computação acelerada
p5en.48xlarge Yes Yes
p6e-gb200.36xlarge Yes Yes
trn2.48xlarge Yes Yes
trn2u.48xlarge Yes Yes
Computação de alta performance
hpc7g.4xlarge Yes No
hpc7g.8xlarge Yes No
hpc7g.16xlarge Yes No
Nitro v4
Tipo de instância Suporte para a leitura com tecnologia RDMA Suporte para a gravação com tecnologia RDMA
Finalidade geral
m6a.48xlarge Yes Yes
m6a.metal Yes Yes
m6i.32xlarge Yes Yes
m6i.metal Yes Yes
m6id.32xlarge Yes Yes
m6id.metal Yes Yes
m6idn.32xlarge Yes Yes
m6idn.metal Yes Yes
m6in.32xlarge Yes Yes
m6in.metal Yes Yes
m7a.48xlarge Yes No
m7a.metal-48xl Yes No
m7g.16xlarge Yes No
m7g.metal Yes No
m7gd.16xlarge Yes No
m7gd.metal Yes No
m7i.48xlarge Yes No
m7i.metal-48xl Yes No
Otimizadas para computação
c6a.48xlarge Yes Yes
c6a.metal Yes Yes
c6gn.16xlarge Yes Yes
c6i.32xlarge Yes Yes
c6i.metal Yes Yes
c6id.32xlarge Yes Yes
c6id.metal Yes Yes
c6in.32xlarge Yes Yes
c6in.metal Yes Yes
c7a.48xlarge Yes No
c7a.metal-48xl Yes No
c7g.16xlarge Yes Yes
c7g.metal Yes Yes
c7gd.16xlarge Yes No
c7gd.metal Yes No
c7i.48xlarge Yes No
c7i.metal-48xl Yes No
Otimizadas para memória
r6a.48xlarge Yes Yes
r6a.metal Yes Yes
r6i.32xlarge Yes Yes
r6i.metal Yes Yes
r6idn.32xlarge Yes Yes
r6idn.metal Yes Yes
r6in.32xlarge Yes Yes
r6in.metal Yes Yes
r6id.32xlarge Yes Yes
r6id.metal Yes Yes
r7a.48xlarge No No
r7a.metal-48xl No No
r7g.16xlarge No No
r7g.metal No No
r7gd.16xlarge No No
r7gd.metal No No
r7i.48xlarge No No
r7i.metal-48xl No No
r7iz.32xlarge No No
r7iz.metal-32xl No No
u7i-6tb.112xlarge Yes Yes
u7i-8tb.112xlarge Yes Yes
u7i-12tb.224xlarge Yes Yes
u7in-16tb.224xlarge Yes Yes
u7in-24tb.224xlarge Yes Yes
u7in-32tb.224xlarge Yes Yes
u7inh-32tb.480xlarge Yes Yes
x2idn.32xlarge Yes Yes
x2idn.metal Yes Yes
x2iedn.32xlarge Yes Yes
x2iedn.metal Yes Yes
Otimizada para armazenamento
i4g.16xlarge Yes Yes
i4i.32xlarge Yes Yes
i4i.metal Yes Yes
i7i.24xlarge Yes No
i7i.48xlarge Yes No
i7i.metal-48xl Yes No
im4gn.16xlarge Yes Yes
Computação acelerada
f2.48xlarge Yes Yes
g6.8xlarge Yes Yes
g6.12xlarge Yes Yes
g6.16xlarge Yes Yes
g6.24xlarge Yes Yes
g6.48xlarge Yes Yes
g6e.8xlarge Yes Yes
g6e.12xlarge Yes Yes
g6e.16xlarge Yes Yes
g6e.24xlarge Yes Yes
g6e.48xlarge Yes Yes
gr6.8xlarge Yes Yes
p5.48xlarge Yes Yes
p5e.48xlarge Yes Yes
trn1.32xlarge Yes Yes
trn1n.32xlarge Yes Yes
Computação de alta performance
hpc6a.48xlarge Yes Yes
hpc6id.32xlarge Yes Yes
hpc7a.12xlarge Yes No
hpc7a.24xlarge Yes No
hpc7a.48xlarge Yes No
hpc7a.96xlarge Yes No
Nitro v3
Tipo de instância Suporte para a leitura com tecnologia RDMA Suporte para a gravação com tecnologia RDMA
Finalidade geral
m5dn.24xlarge No No
m5dn.metal No No
m5n.24xlarge No No
m5n.metal No No
m5zn.12xlarge No No
m5zn.metal No No
Otimizadas para computação
c5n.9xlarge No No
c5n.18xlarge No No
c5n.metal No No
Otimizadas para memória
r5dn.24xlarge No No
r5dn.metal No No
r5n.24xlarge No No
r5n.metal No No
x2iezn.12xlarge No No
x2iezn.metal No No
Otimizada para armazenamento
i3en.12xlarge No No
i3en.24xlarge No No
i3en.metal No No
Computação acelerada
dl1.24xlarge Yes No
dl2q.24xlarge No No
g4dn.8xlarge No No
g4dn.12xlarge No No
g4dn.16xlarge No No
g4dn.metal No No
g5.8xlarge No No
g5.12xlarge No No
g5.16xlarge No No
g5.24xlarge No No
g5.48xlarge No No
inf1.24xlarge No No
p3dn.24xlarge No No
p4d.24xlarge Yes No
p4de.24xlarge Yes No
vt1.24xlarge No No
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 11 e 12
Rocky Linux 8 e 9
Ubuntu 22.04 e 24.04
SUSE Linux Enterprise 15 SP2 e posterior
OpenSUSE Leap 15.5 e posterior
nota

Alguns dos sistemas operacionais listados podem não ser compatíveis com a Intel MPI. Se você estiver usando a Intel MPI, consulte a documentação da Intel MPI para verificar a compatibilidade com seu sistema operacional.

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.

  • A gravação com a tecnologia RDMA não é compatível com todos os tipos de instância. Para obter mais informações, consulte Tipos de instâncias compatíveis.

  • 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, e r7g.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 aplicações AWS Cloud Digital Interface baseadas no Kit de Desenvolvimento de Software (AWS CDI SDK). 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.