Elastic Fabric Adapter für AI/ML und HPC-Workloads bei Amazon EC2 - Amazon Elastic Compute Cloud

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Elastic Fabric Adapter für AI/ML und HPC-Workloads bei Amazon EC2

Ein Elastic Fabric Adapter (EFA) ist ein Netzwerkgerät, das Sie an Ihre EC2 Amazon-Instance anschließen können, um Anwendungen für künstliche Intelligenz (KI), Machine Learning (ML) und High Performance Computing (HPC) zu beschleunigen. Mit EFA können Sie die Anwendungsleistung eines On-Premises- KI/ML- oder HPC-Clusters erreichen – mit der Skalierbarkeit, Flexibilität und Elastizität der AWS Cloud.

EFA bietet eine geringere und konsistentere Latenz und höheren Durchsatz als der TCP-Transport, der normalerweise in Cloud-basierten HPC-Systemen verwendet wird. Es verbessert die Leistung der Kommunikation zwischen Instanzen, was für Skalierungs- AI/ML und HPC-Anwendungen entscheidend ist. Es ist für die Verwendung in der vorhandenen AWS Netzwerkinfrastruktur optimiert und kann je nach Anwendungsanforderungen skaliert werden.

EFA lässt sich in Libfabric 1.7.0 und höher integrieren und unterstützt die Nvidia Collective Communications Library (NCCL) für KI- und ML-Anwendungen sowie Open MPI 4.1 und höher sowie Intel MPI 2019 Update 5 und höher für HPC-Anwendungen.

EFA unterstützt RDMA-Schreibvorgänge (Remote Direct Memory Access) auf den meisten unterstützten Instance-Typen mit Nitro Version 4 und höher. RDMA-Lesen wird auf allen Instanzen mit Nitro Version 4 und höher unterstützt. Weitere Informationen finden Sie unter Unterstützte Instance-Typen.

EFA-Grundlagen

Ein EFA-Gerät kann auf zwei Arten an eine EC2 Instanz angehängt werden:

  1. Verwendung einer herkömmlichen EFA-Schnittstelle, auch EFA genannt, mit ENA, die sowohl ein EFA-Gerät als auch ein ENA-Gerät erstellt.

  2. Verwendung einer reinen EFA-Schnittstelle, bei der nur das EFA-Gerät erstellt wird.

Das EFA-Gerät bietet Funktionen wie eine integrierte Betriebssystemumgehung und die Überlastungskontrolle über das SRD-Protokoll (Scalable Reliable Datagram). Die EFA-Gerätefunktionen ermöglichen zuverlässige Transportfunktionen mit niedriger Latenz, sodass die EFA-Schnittstelle eine bessere Anwendungsleistung für HPC- und ML-Anwendungen auf Amazon bietet. EC2 Das ENA-Gerät bietet dagegen herkömmliche IP-Netzwerke.

Im Gegensatz zu einem herkömmlichen HPC-Software-Stack, der EFA verwendet.

Traditionell verwenden AI/ML Anwendungen NCCL und HPC-Anwendungen das Message Passing Interface (MPI) als Schnittstelle zum Netzwerktransport des Systems. In der AWS Cloud bedeutete dies, dass Anwendungen über eine Schnittstelle zu NCCL oder MPI verfügen, die dann den TCP/IP Stack des Betriebssystems und den ENA-Gerätetreiber verwenden, um die Netzwerkkommunikation zwischen den Instanzen zu ermöglichen.

Bei einer herkömmlichen EFA- (EFA mit ENA) oder einer reinen EFA-Schnittstelle verwenden AI/ML Anwendungen NCCL und HPC-Anwendungen MPI, um direkt mit der Libfabric-API zu kommunizieren. Die Libfabric-API umgeht den Betriebssystem-Kernel und kommuniziert direkt mit dem EFA-Gerät, um Pakete auf dem Netzwerk zu platzieren. Dies reduziert den Overhead und ermöglicht eine effizientere Ausführung von HPC-Anwendungen. AI/ML

Anmerkung

Libfabric ist eine Kernkomponente des OpenFabrics Interfaces (OFI) -Frameworks, das die Userspace-API von OFI definiert und exportiert. Weitere Informationen finden Sie auf der Libfabric-Website. OpenFabrics

Unterschiede zwischen ENA-, EFA- und reinen EFA-Netzwerkschnittstellen

Amazon EC2 bietet zwei Arten von Netzwerkschnittstellen:

  • ENA-Schnittstellen bieten alle herkömmlichen IP-Netzwerk- und Routing-Funktionen, die zur Unterstützung von IP-Netzwerken für eine VPC erforderlich sind. Weitere Informationen finden Sie unter Ermöglichen Sie Enhanced Networking mit ENA auf Ihren EC2 Instances.

  • EFA-Schnittstellen (EFA mit ENA) bieten sowohl das ENA-Gerät für IP-Netzwerke als auch das EFA-Gerät für die Kommunikation mit niedriger Latenz und hohem Durchsatz.

  • Nur-EFA-Schnittstellen unterstützen nur die Funktionen des EFA-Geräts, ohne das ENA-Gerät für herkömmliche IP-Netzwerke.

Die folgende Tabelle enthält einen Vergleich von ENA-, EFA- und Nur-EFA-Netzwerkschnittstellen.

ENA EFA (EFA mit ENA) Nur-EFA
Unterstützt IP-Netzwerkfunktionalität Ja Ja Nein
Können IPv6 Adressen zugewiesen IPv4 werden Ja Ja Nein
Kann als primäre Netzwerkschnittstelle für die Instance verwendet werden Ja Ja Nein
Wird auf das ENI-Anhangslimit der Instance angerechnet Ja Ja Ja
Unterstützung für Instance-Typen Unterstützt auf allen Nitro-basierten Instance-Typen Unterstützte Instance-Typen Unterstützte Instance-Typen
Benennung von Parametern in EC2 APIs interface efa efa-only
Benennung von Feldern in der EC2 Konsole Keine Auswahl EFA mit ENA Nur-EFA

Unterstützte Schnittstellen und Bibliotheken

EFAs unterstützt die folgenden Schnittstellen und Bibliotheken:

  • Öffnen Sie MPI 4.1 und höher

  • Intel MPI 2019 Update 5 und höher

  • NVIDIA Collective Communications Library (NCCL) 2.4.2 und neuer

  • AWS Neuron SDK Version 2.3 und höher

Unterstützte Instance-Typen

Alle der folgenden Instance-Typen unterstützen EFA. Darüber hinaus geben die Tabellen die RDMA-Lese- und RDMA-Schreibunterstützung für die Instance-Typen an.

Nitro v6
Instance-Typ RDMA-Leseunterstützung RDMA-Schreibunterstützung
Für Datenverarbeitung optimiert
c8gn.16 x groß Ja Ja
C8 Gn. 24 x groß Ja Ja
C8 Gn. 48 x groß Ja Ja
C8 Gn. Metall, 24 XL Ja Ja
c8gn.metall-48xl Ja Ja
Beschleunigte Datenverarbeitung
p6-b 200.48x groß Nein Ja
Nitro v5
Instance-Typ RDMA-Leseunterstützung RDMA-Schreibunterstützung
Allgemeine Zwecke
8g, 24 x groß Ja Nein
8 g, 48 x groß Ja Nein
8 g, Metall, 24 x L Ja Nein
m8 g, Metall, 48 XL Ja Nein
m 8 g d, 24 x groß Nein Nein
m 8 g, 48 x groß Nein Nein
M8 GD. Metall, 24 XL Nein Nein
m8gd.metall-48xl Nein Nein
Für Datenverarbeitung optimiert
c7gn.16xlarge Ja Nein
C7GN. Metall Ja Nein
c8g.24x groß Ja Nein
c8g.48x groß Ja Nein
c8g.metall-24xl Ja Nein
c8g.metall-48xl Ja Nein
c8gd.24x groß Nein Nein
c8gd.48x groß Nein Nein
C8GD.Metall-24XL Nein Nein
c8gd.metall-48xl Nein Nein
RAM-optimiert
r8g.24x groß Nein Ja
r8g.48x groß Nein Ja
r8g.metall-24xl Nein Ja
r8g.metall-48xl Nein Ja
r8gd.24x groß Nein Nein
r8gd.48x groß Nein Nein
r8gd.metall-24xl Nein Nein
r8gd.metall-48xl Nein Nein
x 8 g, 24 x groß Nein Ja
x 8 g, 48 x groß Nein Ja
x 8 g, Metall, 24 XL Nein Ja
x 8 g, Metall, 48 XL Nein Ja
Speicheroptimiert
i7ie.48x groß Ja Nein
i7ie.metal-48xl Ja Nein
i8g.48x groß Nein Nein
Beschleunigte Datenverarbeitung
p5en.48x groß Nein Ja
p6e-gb 200.36x groß Nein Ja
TRN 2,48 x groß Nein Ja
trn2u.48x groß Nein Ja
High Performance Computing (HPC)
hpc7g.4xlarge Ja Nein
hpc7g.8xlarge Ja Nein
hpc7g.16xlarge Ja Nein
Nitro v4
Instance-Typ RDMA-Leseunterstützung RDMA-Schreibunterstützung
Allgemeine Zwecke
m6a.48xlarge Ja Ja
m6a.metal Ja Ja
m6i.32xlarge Ja Ja
m6i.metal Ja Ja
m6id.32xlarge Ja Ja
m6id.metal Ja Ja
m6idn.32xlarge Ja Ja
m6idn.metal Ja Ja
m6in.32xlarge Ja Ja
m6in.metal Ja Ja
m7a.48xlarge Ja Nein
m7a.metal-48xl Ja Nein
m7g.16xlarge Ja Nein
m7g.metal Ja Nein
m7gd.16xlarge Ja Nein
m7gd.metal Ja Nein
m7i.48xlarge Ja Nein
m7i.metal-48xl Ja Nein
Für Datenverarbeitung optimiert
c6a.48xlarge Ja Ja
c6a.metal Ja Ja
c6gn.16xlarge Ja Ja
c6i.32xlarge Ja Ja
c6i.metal Ja Ja
c6id.32xlarge Ja Ja
c6id.metal Ja Ja
c6in.32xlarge Ja Ja
c6in.metal Ja Ja
c7a.48xlarge Ja Nein
c7a.metal-48xl Ja Nein
c7g.16xlarge Ja Ja
c7g.metal Ja Ja
c7gd.16xlarge Ja Nein
c7gd.metall Ja Nein
c7i.48xlarge Ja Nein
c7i.metal-48xl Ja Nein
RAM-optimiert
r6a.48xlarge Nein Ja
r6a.metal Nein Ja
r6i.32xlarge Nein Ja
r6i.metal Nein Ja
r6idn.32xlarge Nein Ja
r6idn.metal Nein Ja
r6in.32xlarge Nein Ja
r6in.metal Nein Ja
r6id.32xlarge Nein Ja
r6id.metal Nein Ja
r7a.48xlarge Nein Ja
r7a.metal-48xl Nein Ja
r7g.16xlarge Nein Ja
r7g.metal Nein Ja
r7gd.16xlarge Nein Ja
r7gd.metall Nein Ja
r7i.48xlarge Nein Ja
r7i.metal-48xl Nein Ja
r7iz.32xlarge Nein Ja
r7iz.metal-32xl Nein Ja
u7i-6tb.112x groß Nein Ja
u7i-8 tb.112x groß Nein Ja
u7i-12tb.224x groß Nein Ja
u7in-16 tb.224x groß Nein Ja
u7in-24 tb.224x groß Nein Ja
u7in-32 TB. 224x groß Nein Ja
u7inh-32 TB. 480x groß Nein Nein
x2idn.32xlarge Nein Ja
x2idn.metal Nein Ja
x2iedn.32xlarge Nein Ja
x2iedn.metal Nein Ja
Speicheroptimiert
i4g.16xlarge Ja Ja
i4i.32xlarge Ja Ja
i4i.metal Ja Ja
i7i.24x groß Ja Ja
i7i.48x groß Ja Ja
i7i.Metall-48xl Ja Ja
im4gn.16xlarge Ja Ja
Beschleunigte Datenverarbeitung
f 2.48x groß Ja Ja
g 6,8 x groß Ja Ja
g 6.12 x groß Ja Ja
g 6.16 x groß Ja Ja
g 6.24 x groß Ja Ja
g 6,48 x groß Ja Ja
g 6e, 8 x groß Ja Ja
g6e.12x groß Ja Ja
g6e.16x groß Ja Ja
g6e.24x groß Ja Ja
g6e.48x groß Ja Ja
gr 6,8 x groß Ja Ja
p5.48xlarge Nein Ja
p 5e. 48 x groß Nein Ja
trn1.32xlarge Nein Ja
trn1n.32xlarge Nein Ja
High Performance Computing (HPC)
hpc6a.48xlarge Ja Ja
hpc6id.32xlarge Ja Ja
hpc7a.12xlarge Ja Nein
hpc7a.24xlarge Ja Nein
hpc7a.48xlarge Ja Nein
hpc7a.96xlarge Ja Nein
Nitro v3
Instance-Typ RDMA-Leseunterstützung RDMA-Schreibunterstützung
Allgemeine Zwecke
m5dn.24xlarge Nein Nein
m5dn.metal Nein Nein
m5n.24xlarge Nein Nein
m5n.metal Nein Nein
m5zn.12xlarge Nein Nein
m5zn.metal Nein Nein
Für Datenverarbeitung optimiert
c5n.9xlarge Nein Nein
c5n.18xlarge Nein Nein
c5n.metal Nein Nein
RAM-optimiert
r5dn.24xlarge Nein Nein
r5dn.metal Nein Nein
r5n.24xlarge Nein Nein
r5n.metal Nein Nein
x2iezn.12xlarge Nein Nein
x2iezn.metal Nein Nein
Speicheroptimiert
i3en.12xlarge Nein Nein
i3en.24xlarge Nein Nein
i3en.metal Nein Nein
Beschleunigte Datenverarbeitung
dl1.24xlarge Ja Nein
dl2q.24xlarge Nein Nein
g4dn.8xgroß Nein Nein
g4dn.12xgroß Nein Nein
g4dn.16xgroß Nein Nein
g4dn.metal Nein Nein
g5.8xlarge Nein Nein
g5.12xlarge Nein Nein
g5.16xlarge Nein Nein
g5.24xlarge Nein Nein
g5.48xlarge Nein Nein
inf1.24xlarge Nein Nein
p3dn.24xgroß Nein Nein
p4d.24xgroß Ja Nein
p4de.24xlarge Ja Nein
vt1.24xlarge Nein Nein
Um die verfügbaren Instance-Typen zu sehen, die EFAs in einer bestimmten Region unterstützt werden

Die verfügbaren Instance-Typen variieren je nach Region. Um die verfügbaren Instance-Typen zu sehen, die EFAs in einer Region unterstützt werden, verwenden Sie den describe-instance-typesBefehl mit dem --region Parameter. Schließen Sie den Parameter --filters ein, um die Ergebnisse auf die Instance-Typen zu beschränken, die EFA unterstützen, und den Parameter --query, um die Ausgabe auf den Wert von InstanceType zu beschränken.

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

Unterstützte Betriebssysteme

Die Betriebssystemunterstützung ist je nach Prozessortyp unterschiedlich. Die folgende Tabelle zeigt die unterstützten Betriebssysteme.

Betriebssystem Intel/AMD (x86_64)-Instance-Typen AWS Graviton (arm64) -Instanztypen
Amazon Linux 2023
Amazon Linux 2
RHEL 8 und 9
Debian 11 und 12
Rocky Linux 8 und 9
Ubuntu 22.04 und 24.04
SUSE Linux Enterprise 15 und höher SP2
OpenSUSE Leap 15.5 und höher
Anmerkung

Einige der aufgelisteten Betriebssysteme werden möglicherweise nicht von Intel MPI unterstützt. Wenn Sie Intel MPI verwenden, lesen Sie in der Intel MPI-Dokumentation nach, ob Ihr Betriebssystem unterstützt wird.

EFA-Einschränkungen

EFAs haben die folgenden Einschränkungen:

Anmerkung

EFA-Verkehr bezieht sich auf den Verkehr, der über das EFA-Gerät entweder über eine EFA- (EFA mit ENA) oder eine Nur-EFA-Schnittstelle übertragen wird.

  • RDMA-Schreibvorgänge werden nicht bei allen Instance-Typen unterstützt. Weitere Informationen finden Sie unter Unterstützte Instance-Typen.

  • EFA-Verkehr zwischen P4 d/P4de/DL 1-Instances und anderen Instance-Typen wird derzeit nicht unterstützt.

  • Instance-Typen, die mehrere Netzwerkkarten unterstützen, können mit einer EFA pro Netzwerkkarte konfiguriert werden. Alle anderen unterstützten Instance-Typen unterstützen nur einen EFA pro Instance.

  • Für c7g.16xlarge, m7g.16xlarge und r7g.16xlarge werden Dedicated Instances und Dedicated Hosts nicht unterstützt, wenn ein EFA angefügt ist.

  • EFA-Verkehr kann Availability Zones nicht überschreiten oder. VPCs Dies gilt nicht für normalen IP-Verkehr vom ENA-Gerät einer EFA-Schnittstelle.

  • Der Datenverkehr von EFA kann nicht umgeleitet werden. Normaler IP-Datenverkehr vom ENA-Gerät einer EFA-Schnittstelle bleibt umleitbar.

  • EFA wird auf AWS Outposts nicht unterstützt.

  • Das EFA-Gerät einer EFA-Schnittstelle (EFA mit ENA) wird auf Windows-Instances nur für Anwendungen unterstützt, die auf dem AWS Cloud Digital Interface Software Development Kit (AWS CDI SDK) basieren. Wenn Sie eine EFA-Schnittstelle (EFA mit ENA) an eine Windows-Instance für Anwendungen anhängen, die nicht auf dem CDI-SDK basieren, funktioniert diese als ENA-Schnittstelle, jedoch ohne die zusätzlichen EFA-Gerätefunktionen. Die reine EFA-Schnittstelle wird von AWS CDI basierten Anwendungen unter Windows oder Linux nicht unterstützt. Weitere Informationen finden Sie im AWS Cloud Digital Interface Software Development Kit (AWS CDI SDK) -Benutzerhandbuch.

EFA-Preisgestaltung

EFA ist als optionale EC2 Amazon-Netzwerkfunktion verfügbar, die Sie auf jeder unterstützten Instance ohne zusätzliche Kosten aktivieren können.