选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

适用于 Amazon EC2 上 AI/ML 和 HPC 工作负载的 Elastic Fabric Adapter

聚焦模式
适用于 Amazon EC2 上 AI/ML 和 HPC 工作负载的 Elastic Fabric Adapter - Amazon Elastic Compute Cloud

Elastic Fabric Adapter(EFA)是一种网络设备,可以将其附加到 Amazon EC2 实例以加速人工智能(AI)、机器学习(ML)和高性能计算(HPC)应用程序。EFA 使您能够利用 AWS 云提供的可伸缩性、灵活性和弹性,实现本地 AI/ML 或 HPC 集群的应用程序性能。

与以前在基于云的 HPC 系统中使用的 TCP 传输相比,EFA 提供更低且更一致的延迟和更高的吞吐量。它提高了实例间通信的性能,这对于扩展 AI/ML 和 HPC 应用程序至关重要。它经过优化以在现有的 AWS 网络基础设施上使用,并且可以根据应用程序要求进行扩展。

EFA 与 Libfabric 1.7.0 及更高版本集成在一起,并支持适用于 AI 和 ML 应用程序的 Nvidia Collective Communications Library(NCCL),以及适用于 HPC 应用程序的 Open MPI 4 及更高版本和 Intel MPI 2019 Update 5 及更高版本。

EFA 支持在大多数具有 Nitro 版本 4 及更高版本的受支持实例类型上进行 RDMA(远程直接内存访问)写入。所有具有 Nitro 版本 4 及更高版本的实例均支持 RDMA 读取。有关更多信息,请参阅 支持的实例类型

EFA 基础知识

EFA 设备可以通过两种方式附加到 EC2 实例:

  1. 使用传统 EFA 接口(也称为带 ENA 的 EFA),它可以创建 EFA 设备和 ENA 设备。

  2. 使用仅限 EFA 的接口,该接口仅创建 EFA 设备。

EFA 设备通过可扩展的可靠数据报(SRD)协议提供内置操作系统绕过和拥塞控制等功能。EFA 设备功能支持低延迟、可靠的传输功能,可让 EFA 接口为 Amazon EC2 上的 HPC 和 ML 应用程序提供更理想的应用程序性能。ENA 设备则提供传统的 IP 联网。

将传统的 HPC 软件堆栈与使用 EFA 的软件堆栈进行比较。

以前,AI/ML 应用程序使用 NCCL、HPC 应用程序使用消息传递接口(MPI)与系统的网络传输进行交互。在 AWS 云中,这意味着应用程序与NCCL 或 MPI 进行交互,然后 MPI 使用操作系统的 TCP/IP 堆栈和 ENA 设备驱动程序以启用实例之间的网络通信。

对于传统 EFA(带 ENA 的 EFA)或仅限 EFA 的接口,AI/ML 应用程序使用 NCCL、HPC 应用程序使用 MPI 直接与 Libfabric API 进行交互。Libfabric API 绕过操作系统内核,并直接与 EFA 设备通信以将数据包放在网络上。这减少了开销,并且可以更有效地运行 AL/ML 和 HPC 应用程序。

注意

libfabric 是 OpenFabrics 接口 (OFI) 框架的核心组件,它定义并导出 OFI 的 user-space API。有关更多信息,请参阅 libfabric OpenFabrics 网站。

ENA、EFA 和仅限 EFA 的网络接口之间的区别

Amazon EC2 提供两种类型的网络接口:

  • ENA 接口提供支持 VPC 的 IP 联网所需的所有传统 IP 联网和路由功能。有关更多信息,请参阅 在 EC2 实例上使用 ENA 启用增强联网功能

  • EFA(带 ENA 的 EFA)接口既提供用于 IP 联网的 ENA 设备,又提供用于低延迟、高吞吐量通信的 EFA 设备。

  • 仅限 EFA 的接口仅支持 EFA 设备功能,不支持用于传统 IP 联网的 ENA 设备。

下表比较 ENA、EFA 和仅限 EFA 的网络接口。

ENA EFA(带 ENA 的 EFA) 仅限 EFA
支持 IP 联网功能 支持
可以分配 IPv4 或 IPv6 地址 支持
例如,可以用作主网络接口 支持
例如,计入 ENI 附件限制 支持
实例类型支持 在所有基于 Nitro 的实例类型上支持 支持的实例类型 支持的实例类型
EC2 API 中的参数命名 interface efa efa-only
EC2 控制台中的字段命名 未选择 带 ENA 的 EFA 仅限 EFA

支持的接口和库

EFA 支持以下接口和库:

  • Open MPI 4 及更高版本

    注意

    Open MPI 4.0 或更新版本是基于 Graviton 的实例的首选

  • Intel MPI 2019 Update 5 及更高版本

  • NVIDIA Collective Communications Library (NCCL) 2.4.2 及更高版本

  • AWS Neuron SDK 版本 2.3 及更高版本

支持的实例类型

以下所有实例类型均支持 EFA。此外,这些表还指示对实例类型的 RDMA 读取和 RDMA 写入支持。

Nitro v5
实例类型 RDMA 读取支持 RDMA 写入支持
通用
m8g.24xlarge
m8g.48xlarge
m8g.metal-24xl
m8g.metal-48xl
计算优化
c7gn.16xlarge
c7gn.metal
c8g.24xlarge
c8g.48xlarge
c8g.metal-24xl
c8g.metal-48xl
内存优化
r8g.24xlarge
r8g.48xlarge
r8g.metal-24xl
r8g.metal-48xl
x8g.24xlarge
x8g.48xlarge
x8g.metal-24xl
x8g.metal-48xl
存储优化
i7ie.48xlarge
加速计算
p5en.48xlarge
trn2.48xlarge
trn2u.48xlarge
高性能计算
hpc7g.4xlarge
hpc7g.8xlarge
hpc7g.16xlarge
Nitro v4
实例类型 RDMA 读取支持 RDMA 写入支持
通用
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
计算优化
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
内存优化
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-6tb.112xlarge
u7i-8tb.112xlarge
u7i-12tb.224xlarge
u7in-16tb.224xlarge
u7in-24tb.224xlarge
u7in-32tb.224xlarge
u7inh-32tb.480xlarge
x2idn.32xlarge
x2idn.metal
x2iedn.32xlarge
x2iedn.metal
存储优化
i4g.16xlarge
i4i.32xlarge
i4i.metal
im4gn.16xlarge
加速计算
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
高性能计算
hpc6a.48xlarge
hpc6id.32xlarge
hpc7a.12xlarge
hpc7a.24xlarge
hpc7a.48xlarge
hpc7a.96xlarge
Nitro v3
实例类型 RDMA 读取支持 RDMA 写入支持
通用
m5dn.24xlarge
m5dn.metal
m5n.24xlarge
m5n.metal
m5zn.12xlarge
m5zn.metal
计算优化
c5n.9xlarge
c5n.18xlarge
c5n.metal
内存优化
r5dn.24xlarge
r5dn.metal
r5n.24xlarge
r5n.metal
x2iezn.12xlarge
x2iezn.metal
存储优化
i3en.12xlarge
i3en.24xlarge
i3en.metal
加速计算
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
实例类型 RDMA 读取支持 RDMA 写入支持
通用
m8g.24xlarge
m8g.48xlarge
m8g.metal-24xl
m8g.metal-48xl
计算优化
c7gn.16xlarge
c7gn.metal
c8g.24xlarge
c8g.48xlarge
c8g.metal-24xl
c8g.metal-48xl
内存优化
r8g.24xlarge
r8g.48xlarge
r8g.metal-24xl
r8g.metal-48xl
x8g.24xlarge
x8g.48xlarge
x8g.metal-24xl
x8g.metal-48xl
存储优化
i7ie.48xlarge
加速计算
p5en.48xlarge
trn2.48xlarge
trn2u.48xlarge
高性能计算
hpc7g.4xlarge
hpc7g.8xlarge
hpc7g.16xlarge
查看特定区域中支持 EFA 的可用实例类型

可用的实例类型因区域而异。要查看某个区域中支持 EFA 的可用实例类型,请使用带 --region 参数的 describe-instance-types 命令。包括 --filters 参数以将结果范围限定为支持 EFA 的实例类型,并包括 --query 参数以将输出范围限定为 InstanceType 的值。

aws ec2 describe-instance-types --region us-east-1 --filters Name=network-info.efa-supported,Values=true --query "InstanceTypes[*].[InstanceType]" --output text | sort

支持的操作系统

操作系统支持因处理器类型而异。下表显示支持的操作系统。

操作系统 Intel/AMD(x86_64)实例类型 AWS Graviton(arm64)实例类型
Amazon Linux 2023
Amazon Linux 2
RHEL 8 和 9
Debian 10、11 和 12
Rocky Linux 8 和 9
Ubuntu 20.04、22.04 和 24.04
SUSE Linux Enterprise 15 SP2 和更高版本
OpenSUSE Leap 15.5 和更高版本
注意

Ubuntu 20.04 在与 dl1.24xlarge 实例配合使用时提供点对点直接支持。

EFA 限制

EFA 具有以下限制:

注意

EFA 流量是指通过 EFA(带 ENA 的 EFA)或仅限 EFA 接口的 EFA 设备传输的流量。

  • 并非所有实例类型都支持 RDMA 写入。有关更多信息,请参阅 支持的实例类型

  • 目前不支持 P4d/P4de/DL1 实例与其他实例类型之间的 EFA 流量。

  • 支持多个网卡的实例类型可以为每个网卡配置一个 EFA。所有其他支持的实例类型每个实例仅支持一个 EFA。

  • 对于 c7g.16xlargem7g.16xlarger7g.16xlarge,当附加 EFA 时,不支持专用实例和专属主机。

  • EFA 流量无法跨越可用区或 VPC。这不适用于来自 EFA 接口的 ENA 设备的正常 IP 流量。

  • 无法路由 EFA 流量。仍然可以路由来自 EFA 接口的 ENA 设备的普通 IP 流量。

  • AWS Outposts 上不支持 EFA。

  • 仅在基于 AWS Cloud Digital Interface 软件开发套件(AWS CDI SDK)的应用程序的 Windows 实例上支持 EFA(带 ENA 的 EFA)接口的 EFA 设备。如果您将 EFA(带 ENA 的 EFA)接口附加到基于非 CDI SDK 的应用程序的 Windows 实例,则该接口将充当 ENA 接口,而没有任何附加 EFA 设备功能。Windows 或 Linux 上基于 AWS CDI 的应用程序不支持仅限 EFA 的接口。有关更多信息,请参阅 AWS Cloud Digital Interface 软件开发工具包(AWS CDI SDK)用户指南

EFA 定价

EFA 作为一项可选的 Amazon EC2 联网功能提供,您可以在任何支持的实例上启用该功能,无需支付额外费用。

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。