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 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 y versiones posteriores

    nota

    Se prefiere Open MPI 4.0 o una versión más reciente para instancias basadas en Graviton.

  • 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

Los tipos de instancia que se muestran a continuación, admiten EFAs:

Nitro v5
Tipo de instancia Compatibilidad con lectura RDMA Compatibilidad con escritura RDMA
Uso general
m8g.24xlarge
m8g.48xlarge
m8g.metal-24xl
m8g.metal-48xl
Computación optimizada
c7gn.16xlarge
c7gn.metal
c8g.24xlarge
c8g.48xlarge
c8g.metal-24xl
c8g.metal-48xl
Optimizada para memoria
r8g.24xlarge
r8g.48xlarge
r8g.metal-24xl
r8g.metal-48xl
x8g.24xlarge
x8g.48xlarge
x8g.metal-24xl
x8g.metal-48xl
Optimización de almacenamiento
i7ie.48xlarge
Computación acelerada
p5en.48xlarge
trn2.48xlarge
trn2u.48xlarge
Informática de alto rendimiento
hpc7g.4xlarge
hpc7g.8xlarge
hpc7g.16xlarge
Nitro v4
Tipo de instancia Compatibilidad con lectura RDMA Compatibilidad con escritura RDMA
Uso general
m6a.48xlarge
m6a.metal
m6i.32xlarge
m6i.metal
m6id.32xlarge
m6id.metal
m6idn.32xlarge
m6idn.metal
m6in.32xlarge
m6in.metal
m7a.48xlarge
m7a.metal-48xl
m7g.16xlarge
m7g.metal
m7gd.16xlarge
m7gd.metal
m7i.48xlarge
m7i.metal-48xl
Computación optimizada
c6a.48xlarge
c6a.metal
c6gn.16xlarge
c6i.32xlarge
c6i.metal
c6id.32xlarge
c6id.metal
c6in.32xlarge
c6in.metal
c7a.48xlarge
c7a.metal-48xl
c7g.16xlarge
c7g.metal
c7gd.16xlarge
c7gd.metal
c7i.48xlarge
c7i.metal-48xl
Optimizada para memoria
r6a.48xlarge
r6a.metal
r6i.32xlarge
r6i.metal
r6idn.32xlarge
r6idn.metal
r6in.32xlarge
r6in.metal
r6id.32xlarge
r6id.metal
r7a.48xlarge
r7a.metal-48xl
r7g.16xlarge
r7g.metal
r7gd.16xlarge
r7gd.metal
r7i.48xlarge
r7i.metal-48xl
r7iz.32xlarge
r7iz.metal-32xl
u7i-12tb.224xlarge
u7in-16tb.224xlarge
u7in-24tb.224xlarge
u7in-32tb.224xlarge
x2idn.32xlarge
x2idn.metal
x2iedn.32xlarge
x2iedn.metal
Optimización de almacenamiento
i4g.16xlarge
i4i.32xlarge
i4i.metal
im4gn.16xlarge
Computación acelerada
f2.48xlarge
g6.8xlarge
g6.12xlarge
g6.16xlarge
g6.24xlarge
g6.48xlarge
g6e.8xlarge
g6e.12xlarge
g6e.16xlarge
g6e.24xlarge
g6e.48xlarge
gr6.8xlarge
p5.48xlarge
p5e.48xlarge
trn1.32xlarge
trn1n.32xlarge
Informática de alto rendimiento
hpc6a.48xlarge
hpc6id.32xlarge
hpc7a.12xlarge
hpc7a.24xlarge
hpc7a.48xlarge
hpc7a.96xlarge
Nitro v3
Tipo de instancia Compatibilidad con lectura RDMA Compatibilidad con escritura RDMA
Uso general
m5dn.24xlarge
m5dn.metal
m5n.24xlarge
m5n.metal
m5zn.12xlarge
m5zn.metal
Computación optimizada
c5n.9xlarge
c5n.18xlarge
c5n.metal
Optimizada para memoria
r5dn.24xlarge
r5dn.metal
r5n.24xlarge
r5n.metal
x2iezn.12xlarge
x2iezn.metal
Optimización de almacenamiento
i3en.12xlarge
i3en.24xlarge
i3en.metal
Computación acelerada
dl1.24xlarge
dl2q.24xlarge
g4dn.8xlarge
g4dn.12xlarge
g4dn.16xlarge
g4dn.metal
g5.8xlarge
g5.12xlarge
g5.16xlarge
g5.24xlarge
g5.48xlarge
inf1.24xlarge
p3dn.24xlarge
p4d.24xlarge
p4de.24xlarge
vt1.24xlarge
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 10, 11 y 12
Rocky Linux 8 y 9
Ubuntu 20.04, 22.04, and 24.04
SUSE Linux Enterprise 15 SP2 y posteriores
OpenSUSE Leap 15.5 y versiones posteriores
nota

Ubuntu 20.04 admite el soporte directo entre pares cuando se usa con instancias dl1.24xlarge.

Limitaciones de EFA

Los EFA presentan las siguientes limitaciones:

nota

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

  • 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 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 un 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 un 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).

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.