本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Elastic Fabric Adapter
Elastic Fabric Adapter (EFA) 是可連接到 Amazon EC2 執行個體的網路裝置,用以加速高效能運算 (HPC) 和機器學習應用程式。EFA 可讓您透過雲端提供的延展性、彈性和彈性,達到內部部署 HPC 叢集的應用程式效能。 AWS
與雲端式 HPC 系統中傳統上使用的 TCP 傳輸相比,EFA 可提供更低和更一致的延遲及更高的輸送量。它可增強執行個體間通訊的效能,在擴展 HPC 和機器學習應用程式時不可或缺。它經過優化,可以在現有的 AWS 網絡基礎架構上工作,並且可以根據應用程序需求進行擴展。
EFA 整合 Libfabric 1.7.0 和更新版本,並支援適用於 HPC 應用程式的 Open MPI 5 和更新版本及 Intel MPI 2019 Update 5 和更新版本,以及適用於機器學習應用程式的 Nvidia Collective Communications Library (NCCL)。
注意
Windows 執行個體上不支援 EFAs 的 OS-bypass 功能。如果您將 EFA 連接到 Windows 執行個體,該執行個體會充當「彈性網路轉接器」,但沒有額外的 EFA 功能。
內容
EFA 基本概念
EFA 是有額外功能的彈性網路轉接器 (ENA)。它提供 ENA 的所有功能,還有額外的 OS-bypass 功能。OS-bypass 是一種存取模式,可讓 HPC 和機器學習應用程式直接與網路介面硬體通訊,以提供低延遲、可靠的傳輸功能。
傳統上,HPC 應用程式使用 Message Passing Interface (MPI) 來與系統的網路傳輸連接。在 AWS 雲端中,這表示應用程式與 MPI 進行介面,接著會使用作業系統的 TCP/IP 堆疊和 ENA 裝置驅動程式來啟用執行個體之間的網路通訊。
透過 EFA,HPC 應用程式使用 MPI 或 NCCL 來與 Libfabric API 互動。Libfabric API 會繞過作業系統的核心,直接與 EFA 裝置通訊來將封包放到網路上。這樣可降低額外負荷,讓 HPC 應用程式執行更有效率。
注意
Libfabric 是 OpenFabrics 界面(OFI)框架的核心組件,它定義和導出 OFI 的用戶空間 API。如需詳細資訊,請參閱 LibFabric OpenFabrics
EFAs與 ENA 之間的差異
Elastic Network Adapters (ENA) 提供傳統 IP 聯網功能,是支援 VPC 聯網不可或缺的功能。EFA 提供與 ENA 相同的所有傳統 IP 聯網功能,它們還支援 OS-bypass 功能。OS-bypass 可讓 HPC 和機器學習應用程式繞過作業系統核心,直接與 EFA 裝置通訊。
支援的介面和程式庫
EFA 支援下列介面和程式庫:
-
開啟 Open MPI 5 和更新版本
-
Graviton 首選 Open MPI 4.0 或更高版本
-
Intel MPI 2019 Update 5 及更新版本
-
NVIDIA Collective Communications Library (NCCL) 2.4.2 和更新版本
支援的執行個體類型
下列執行個體類型支援 EFAs:
-
一般用途:
m5dn.24xlarge
m5dn.metal
m5n.24xlarge
m5n.metal
|m5zn.12xlarge
|m5zn.metal
|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
-
運算最佳化:
c5n.9xlarge
c5n.18xlarge
c5n.metal
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
|c7gn.16xlarge
c7gn.metal
|c7i.48xlarge
|c7i.metal-48xl
-
記憶體最佳化:
r5dn.24xlarge
|r5dn.metal
|r5n.24xlarge
|r5n.metal
|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
|x2idn.32xlarge
|x2idn.metal
|x2iedn.32xlarge
|x2iedn.metal
|x2iezn.12xlarge
|x2iezn.metal
-
儲存最佳化:
i3en.12xlarge
|i3en.24xlarge
|i3en.metal
|i4g.16xlarge
|i4i.32xlarge
|i4i.metal
|im4gn.16xlarge
-
加速運算:
dl1.24xlarge
dl2q.24xlarge
g4dn.8xlarge
g4dn.12xlarge
g4dn.16xlarge
g4dn.metal
g5.8xlarge
g5.12xlarge
g5.16xlarge
g5.24xlarge
g5.48xlarge
g6.8xlarge
g6.12xlarge
g6.16xlarge
g6.24xlarge
g6.48xlarge
gr6.8xlarge
inf1.24xlarge
p3dn.24xlarge
p4d.24xlarge
p4de.24xlarge
p5.48xlarge
|trn1.32xlarge
trn1n.32xlarge
|vt1.24xlarge
-
高效能運算:
hpc6a.48xlarge
hpc6id.32xlarge
hpc7a.12xlarge
hpc7a.24xlarge
hpc7a.48xlarge
hpc7a.96xlarge
|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 執行個體類型的 EFA:
Amazon Linux 2023
Amazon Linux 2
CentOS 7
RHEL 7、8 和 9
Debian 10 和 11
Rocky Linux 8 和 9
Ubuntu 20.04 和 22.04
SUSE Linux Enterprise 15 SP2 及更新版本
OpenSUSE Leap 15.4 及更新版本
注意
Ubuntu 20.04 與 dl1.24xlarge
執行個體搭配使用時支援對等直接支援。
以下作業系統支援 Arm (Graviton) 執行個體類型的 EFA:
Amazon Linux 2023
Amazon Linux 2
RHEL 8/9 和 Rocky Linux 8/9
Debian 10 和 11
Ubuntu 20.04 和 22.04
SUSE Linux Enterprise 15 SP2 及更新版本
EFA 限制
EFA 具有下列限制:
-
所有 P4d 和 P5 執行個體類型都支援 NVIDIA GPUDirect Remote Direct Memory Access (RDMA)。
-
目前不支援 P4d/P4de/DL1 執行個體與其他執行個體類型之間的 EFA 流量。
-
支援多個網路卡的執行個體類型可以設定為每個網路卡一個 EFA。所有其他支援的執行個體類型每個執行個體只支援一個 EFA。
-
對於
c7g.16xlarge
,在連接 EFA 時,不支援m7g.16xlarge
和r7g.16xlarge
專用執行個體和專用主機。 -
EFA OS-bypass 流量限於單一子網。換言之,無法在兩個子網之間傳送 EFA 流量。兩個子網之間可以傳送來自 EFA 的標準 IP 流量。
-
EFA OS-bypass 流量不可路由傳送。來自 EFA 的標準 IP 流量仍可路由傳送。
-
EFA 必須是安全群組的成員,而該安全群組允許往返於其本身的所有傳入和傳出流量。
AWS Out posts 不支持 EFA。
EFA 定價
EFA 是選用的 Amazon EC2 聯網功能,您可以在任何支援的執行個體上啟用該功能,而無需額外付費。