Elastic Fabric Adapter para cargas de trabajo de HPC y IA o ML en Amazon EC2 - Amazon Elastic Compute Cloud

Elastic Fabric Adapter para cargas de trabajo de HPC y IA o ML en Amazon EC2

Elastic Fabric Adapter (EFA) es un dispositivo de red que puede adjuntar a su instancia de Amazon EC2 para acelerar las aplicaciones de inteligencia artificial (IA), machine learning (ML) y computación de alto rendimiento (HPC). Un EFA le permite obtener el rendimiento de la aplicación de un clúster de HPC o IA o ML en las instalaciones que cuente con la escalabilidad, flexibilidad y elasticidad que proporciona la nube de AWS.

EFA proporciona una latencia menor y más coherente y un rendimiento superior que el transporte TCP que se utiliza tradicionalmente en sistemas HPC basados en la nube. Mejora el rendimiento de una comunicación entre instancias que es fundamental para escalar aplicaciones HCP y de IA o ML. Está optimizado para trabajar en la infraestructura de red de AWS existente y se puede escalar en función de los requisitos de aplicaciones.

Un EFA se integra con Libfabric 1.7.0 y versiones posteriores y es compatible con Nvidia Collective Communications Library (NCCL) para aplicaciones de IA y ML. También es compatible con Open MPI 4.1 y versiones posteriores y con la actualización 5 de 2019 de Intel MPI para aplicaciones HPC.

EFA admite RDMA (acceso directo a memoria remota) de escritura en la mayoría de los tipos de instancias compatibles que tienen Nitro versión 4 o posterior. La lectura RDMA es compatible con todas las instancias con Nitro versión 4 o posterior. Para obtener más información, consulte Tipos de instancias admitidas.

Conceptos básicos de EFA

Un dispositivo de EFA se puede conectar a una instancia de EC2 de dos formas:

  1. Mediante una interfaz de EFA tradicional, también denominada EFA con ENA, que crea un dispositivo de EFA y un dispositivo de ENA.

  2. Mediante una interfaz exclusiva para EFA, que solo crea el dispositivo de EFA.

El dispositivo de EFA ofrece funciones como la derivación integrada del sistema operativo y el control de congestión a través del protocolo Scalable Reliable Datagram (SRD). Las características del dispositivo de EFA permiten una funcionalidad de transporte fiable y de baja latencia que permite a la interfaz de EFA brindar un mejor rendimiento de las aplicaciones de HPC y ML en Amazon EC2. Por otro lado, el dispositivo de ENA ofrece redes IP tradicionales.

Contrastando una pila de software de HPC tradicional con una que utiliza un EFA.

Por lo general, las aplicaciones de IA o ML utilizan NCCL, mientras que las aplicaciones HPC utilizan Message Passing Interface (MPI) para interactuar con el transporte de red del sistema. En la nube de AWS, esto significa que las aplicaciones interactúan con NCCL o con MPI que, a continuación, utiliza la pila TCP/IP del sistema operativo y el controlador del dispositivo de ENA para permitir la comunicación de red entre instancias.

Con una interfaz de EFA tradicional (EFA con ENA) o solo EFA, las aplicaciones de IA o ML utilizan NCCL, mientras que las aplicaciones HPC utilizan MPI para interactuar directamente con la API de Libfabric. La API Libfabric omite el kernel del sistema operativo y se comunica directamente con el dispositivo EFA para poner paquetes en la red. Esto reduce la sobrecarga y permite que las aplicaciones de IA o ML y HPC se ejecuten de forma más eficiente.

nota

Libfabric es un componente principal del marco OpenFabrics Interfaces (OFI), que define y exporta la API de espacio del usuario de OFI. Para obtener más información consulte el sitio web de Libfabric OpenFabrics.

Diferencias entre las interfaces de red ENA, EFA y solo EFA

Amazon EC2 ofrece dos tipos de interfaces de red:

  • Las interfaces ENA proporcionan todas las características de enrutamiento y redes IP tradicionales que se requieren para admitir las redes IP de una VPC. Para obtener más información, consulte Habilitar redes mejoradas con ENA en las instancias de EC2.

  • Las interfaces EFA (EFA con ENA) proporcionan tanto el dispositivo de ENA para redes IP como el dispositivo EFA para comunicaciones de baja latencia y alto rendimiento.

  • Las interfaces solo de EFA admiten solo las capacidades del dispositivo de EFA, sin el dispositivo de ENA para las redes IP tradicionales.

En la siguiente tabla, se proporciona una comparación de las interfaces de red de ENA, EFA y solo EFA.

ENA EFA (EFA con ENA) Solo EFA
Compatible con la funcionalidad de redes IP No
Se pueden asignar direcciones IPv4 o IPv6 No
Se puede usar como interfaz de red principal para instancias No
Se tiene en cuenta para el límite de adhesión al ENI para instancias
Tipos de instancias admitidos Compatible con todos los tipos de instancias basadas en Nitro Tipos de instancias admitidas Tipos de instancias admitidas
Nomenclatura de parámetros en las API de EC2 interface efa efa-only
Nomenclatura de campos en la consola EC2 Sin selección EFA con ENA Solo EFA

Interfaces y bibliotecas admitidas

Los EFA admiten las siguientes interfaces y bibliotecas:

  • Open MPI 4.1 y versiones posteriores

  • Intel MPI 2019 Actualización 5 y versiones posteriores

  • NVIDIA Collective Communications Library (NCCL) 2.4.2 y posterior

  • SDK AWS Neuron versión 2.3 y posteriores

Tipos de instancias admitidas

Todos los tipos de instancia que se muestran a continuación admiten EFA. Además, las tablas indican el soporte de lectura y escritura RDMA para los tipos de instancia.

Nitro v6
Tipo de instancia Compatibilidad con lectura RDMA Compatibilidad con escritura RDMA
Computación optimizada
c8gn.16xlarge Yes Yes
c8gn.24xlarge Yes Yes
c8gn.48xlarge Yes Yes
c8gn.metal-24xl Yes Yes
c8gn.metal-48xl Yes Yes
Optimizada para memoria
r8i.48xlarge No No
r8i.96xlarge No No
r8i.metal-48xl No No
r8i.metal-96xl No No
Computación acelerada
p6-b200.48xlarge Yes Yes
Nitro v5
Tipo de instancia Compatibilidad con lectura RDMA Compatibilidad con escritura RDMA
Uso general
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
Computación optimizada
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
Optimizada para memoria
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
Optimización de almacenamiento
i7ie.48xlarge Yes No
i7ie.metal-48xl Yes No
i8g.48xlarge No No
Computación acelerada
p5en.48xlarge Yes Yes
p6e-gb200.36xlarge Yes Yes
trn2.48xlarge Yes Yes
trn2u.48xlarge Yes Yes
Informática de alto rendimiento
hpc7g.4xlarge Yes No
hpc7g.8xlarge Yes No
hpc7g.16xlarge Yes No
Nitro v4
Tipo de instancia Compatibilidad con lectura RDMA Compatibilidad con escritura RDMA
Uso general
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
Computación optimizada
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
Optimizada para memoria
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
Optimización de almacenamiento
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
Computación 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.4xlarge Yes Yes
p5.48xlarge Yes Yes
p5e.48xlarge Yes Yes
trn1.32xlarge Yes Yes
trn1n.32xlarge Yes Yes
Informática de alto rendimiento
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 instancia Compatibilidad con lectura RDMA Compatibilidad con escritura RDMA
Uso general
m5dn.24xlarge No No
m5dn.metal No No
m5n.24xlarge No No
m5n.metal No No
m5zn.12xlarge No No
m5zn.metal No No
Computación optimizada
c5n.9xlarge No No
c5n.18xlarge No No
c5n.metal No No
Optimizada para memoria
r5dn.24xlarge No No
r5dn.metal No No
r5n.24xlarge No No
r5n.metal No No
x2iezn.12xlarge No No
x2iezn.metal No No
Optimización de almacenamiento
i3en.12xlarge No No
i3en.24xlarge No No
i3en.metal No No
Computación 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 los tipos de instancias disponibles que son compatibles con los EFA en una región específica

Los tipos de instancia disponibles varían según la región. Para ver los tipos de instancias disponibles que son compatibles con los EFA en una región, utilice el comando describe-instance-types con el parámetro --region. Incluya el parámetro --filters para limitar los resultados a los tipos de instancia que admiten EFA y el parámetro --query para limitar la salida al 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 operativos compatibles

La compatibilidad del sistema operativo varía según el tipo de procesador. En la tabla siguiente se muestran los sistemas operativos compatibles.

Sistema operativo Tipos de instancias Intel/AMD (x86_64) Tipos de instancia de AWS Graviton (arm64)
Amazon Linux 2023
Amazon Linux 2
RHEL 8 y 9
Debian 11 y 12
Rocky Linux 8 y 9
Ubuntu 22.04 y 24.04
SUSE Linux Enterprise 15 SP2 y posteriores
OpenSUSE Leap 15.5 y versiones posteriores
nota

Es posible que algunos de los sistemas operativos mencionados no sean compatibles con Intel MPI. Si utiliza Intel MPI, consulte la documentación de Intel MPI para verificar la compatibilidad con su sistema operativo.

Limitaciones de EFA

Los EFA presentan las siguientes limitaciones:

  • La escritura RDMA no es compatible con todos los tipos de instancias. Para obtener más información, consulte Tipos de instancias admitidas.

  • Actualmente, no se admite el tráfico de 1 EFA entre las instancias P4d/P4de/DL1 y otros tipos de instancias.

  • Los tipos de instancias que admiten varias tarjetas de red se pueden configurar con un EFA por tarjeta de red. Todos los demás tipos de instancia compatibles admiten solo un EFA por instancia.

  • Los hosts dedicados y las instancias dedicadas de c7g.16xlarge, m7g.16xlarge y r7g.16xlarge no son compatibles cuando se adjunta un EFA.

  • El tráfico de 1 EFA no puede cruzar zonas de disponibilidad ni VPC. Esto no se aplica al tráfico de IP normal desde el dispositivo de ENA de una interfaz EFA.

  • El tráfico de 1 EFA no es enrutable. El tráfico de IP normal desde el dispositivo de ENA de una interfaz de EFA sigue siendo enrutable.

  • EFA no es compatible con AWS Outposts.

  • El dispositivo de EFA de una interfaz de EFA (EFA con ENA) solo es compatible con las instancias de Windows para aplicaciones basadas en el kit de desarrollo de software de AWS Cloud Digital Interface (SDK de AWS CDI). Si conectas una interfaz de EFA (EFA con ENA) a una instancia de Windows para aplicaciones que no estén basadas en el SDK de CDI, funcionará como una interfaz de ENA, sin las capacidades adicionales del dispositivo de EFA. Las aplicaciones basadas en AWS CDI en Windows o Linux no son compatibles con la interfaz exclusiva para EFA. Para obtener más información, consulte la Guía del usuario del kit de desarrollo de software de AWS Cloud Digital Interface (SDK de AWS CDI).

1tráfico de EFA se refiere al tráfico transmitido a través del dispositivo de EFA de una interfaz de EFA (EFA con ENA) o solo de EFA.

Precios de EFA

EFA está disponible como una función de red opcional de Amazon EC2 que puede habilitar en cualquier instancia compatible sin costo adicional.