AWS Learning
Compute

Elastic Fabric Adapter (EFA)

Network device cho EC2 HPC/AI workloads, OS-bypass, MPI/NCCL, low latency inter-instance communication

Tóm tắt nhanh

Elastic Fabric Adapter (EFA) là network device có thể gắn vào EC2 instance để tăng tốc giao tiếp giữa các instance cho workload AI/ML distributed trainingHigh Performance Computing (HPC).

Nếu chỉ nhớ một câu:

EFA = card mạng đặc biệt cho EC2 cluster cần latency thấp, throughput cao, giao tiếp node-to-node cực nhanh.

Câu hỏiTrả lời nhanh
EFA dùng để làm gì?Tăng tốc inter-instance communication cho AI/ML, HPC, MPI, NCCL
Có phải internet/network bình thường không?Không. EFA tối ưu traffic đặc biệt giữa instances, không thay thế VPC networking thông thường
Có dùng IP routing bình thường không?EFA traffic không routable; ENA trong EFA interface vẫn xử lý IP traffic bình thường
Có chạy cross-AZ không?Không cho EFA traffic. Nên đặt instances trong cùng AZ, thường cùng cluster placement group
Có mất thêm phí EFA không?AWS docs: EFA là optional EC2 networking feature, không tính thêm phí trên supported instances
Cần thư viện gì?Libfabric/OFI, MPI hoặc NCCL/NIXL/Neuron SDK tùy workload
Dễ nhầm với gì?ENA, placement group, Direct Connect, SR-IOV, Elastic Network Interface

EFA là gì?

Theo AWS, Elastic Fabric Adapter (EFA) là một network device gắn vào Amazon EC2 instance để tăng tốc workload Artificial Intelligence (AI), Machine Learning (ML)High Performance Computing (HPC).

EFA giúp đạt:

  • Latency thấp hơn và ổn định hơn so với TCP transport truyền thống trong cloud HPC.
  • Throughput cao hơn cho giao tiếp giữa instances.
  • OS-bypass: ứng dụng có thể giao tiếp gần trực tiếp với EFA device thông qua Libfabric, giảm overhead của kernel networking stack.
  • Tối ưu cho các framework cần giao tiếp node-to-node dày đặc như MPI, NCCL, NIXL, AWS Neuron SDK.

EFA không phải là một service độc lập kiểu database/queue. Nó là tính năng network của EC2 cho một số instance types được hỗ trợ.


Vấn đề EFA giải quyết

Trong nhiều workload compute lớn, bottleneck không chỉ là CPU/GPU mà là network giữa các node.

Ví dụ:

  • Train mô hình deep learning trên 64 GPU instances: các node phải đồng bộ gradient liên tục.
  • Mô phỏng thời tiết/CFD/physics bằng MPI: mỗi process cần trao đổi dữ liệu với process khác cực nhanh.
  • Distributed inference hoặc disaggregated inference: nhiều node cần truyền tensor/activation/state với latency thấp.

Nếu dùng TCP/IP thông thường:

Application

MPI/NCCL

Kernel TCP/IP stack

ENA driver

Network

Mỗi lần qua kernel/network stack tạo overhead. Với workload tightly-coupled, overhead nhỏ cũng làm giảm scaling efficiency.

EFA rút ngắn đường đi:

Application

MPI/NCCL/NIXL/Neuron

Libfabric / OFI

EFA device - OS-bypass

AWS network

Kết quả: latency thấp hơn, throughput tốt hơn, hiệu quả scale-out tốt hơn.


Mental model dễ nhớ

Hãy tưởng tượng cluster EC2 là một đội công nhân cần chuyền vật liệu liên tục:

  • ENA = đường phố bình thường, xe nào cũng đi được, có biển số/IP/routing.
  • Placement Group = sắp công nhân đứng gần nhau trong cùng khu để chuyền nhanh hơn.
  • EFA = băng chuyền tốc độ cao giữa công nhân, chỉ dùng cho loại hàng đặc biệt HPC/AI.
  • Libfabric/MPI/NCCL = quy tắc và tay cầm để dùng băng chuyền đó.

Câu nhớ:

Placement Group đưa máy lại gần nhau; EFA cho chúng nói chuyện cực nhanh; MPI/NCCL là ứng dụng biết dùng EFA.


EFA hoạt động như thế nào?

EFA cung cấp các capability quan trọng:

1. OS-bypass

Ứng dụng HPC/AI có thể bypass kernel networking path thông qua Libfabric. Việc này giảm context switch và kernel overhead.

Không phải mọi traffic đều bypass OS. Chỉ workload/libraries biết dùng Libfabric/EFA mới tận dụng lợi ích này.

2. SRD - Scalable Reliable Datagram

AWS docs mô tả EFA device có built-in OS-bypass và congestion control thông qua Scalable Reliable Datagram (SRD) protocol.

SRD là transport được AWS tối ưu trên hạ tầng AWS network để cung cấp reliable transport latency thấp cho HPC/ML.

3. Tích hợp thư viện HPC/AI

EFA tích hợp với:

  • Libfabric / OpenFabrics Interfaces (OFI)
  • Open MPI 4.1+
  • Intel MPI 2019 Update 5+
  • NVIDIA Collective Communications Library (NCCL) 2.4.2+
  • NVIDIA Inference Xfer Library (NIXL) 1.0.0+
  • AWS Neuron SDK 2.3+

4. RDMA support

AWS docs nêu:

  • EFA hỗ trợ RDMA write trên hầu hết supported instance types có Nitro version 4 trở lên.
  • RDMA read được hỗ trợ trên tất cả instances có Nitro version 4 trở lên.

Cần kiểm tra supported instance type cụ thể vì RDMA write không phải instance nào cũng có.


ENA vs EFA vs EFA-only

Amazon EC2 có nhiều kiểu network interface liên quan:

LoạiIP networkingGán IPv4/IPv6Là primary ENI được không?Mục đích
ENANetworking thông thường trong VPC
EFA with ENAVừa có IP networking, vừa có EFA device cho HPC/AI
EFA-onlyKhôngKhôngKhôngChỉ EFA device, tách traffic EFA khỏi IP traffic

ENA là gì?

Elastic Network Adapter (ENA) là enhanced networking adapter cho EC2, phục vụ traffic IP bình thường: SSH, HTTP, database, package download, control plane app traffic.

EFA with ENA là gì?

Một network interface vừa có:

  • ENA device cho IP networking.
  • EFA device cho low-latency HPC/AI communication.

Đây là kiểu dễ hiểu nhất khi bắt đầu.

EFA-only là gì?

Interface chỉ có EFA device, không có IP address, không dùng cho IP routing. AWS ParallelCluster mới có thể tự cấu hình EFA-only để tách EFA traffic khỏi IP traffic, tối ưu bandwidth và tiết kiệm IP address.


EFA dùng cho workload nào?

Nên dùng EFA khi workload tightly-coupled

EFA phù hợp nhất khi các node phải trao đổi dữ liệu liên tục và performance phụ thuộc mạnh vào latency/network throughput.

WorkloadVì sao EFA hữu ích
Distributed deep learning trainingĐồng bộ gradient/all-reduce bằng NCCL
HPC simulationMPI communication dày đặc giữa processes
Computational fluid dynamics (CFD)Domain decomposition cần exchange boundary data
Weather modelingNhiều node trao đổi state liên tục
Genomics/financial risk simulationParallel compute cần low latency
Distributed inference đặc thùTruyền tensor/state giữa node bằng NIXL hoặc framework hỗ trợ

Workload loosely-coupled có thể không cần EFA

Ví dụ:

  • Web servers sau load balancer.
  • Batch jobs độc lập, ít giao tiếp nhau.
  • ETL jobs chủ yếu đọc/ghi S3.
  • Microservices giao tiếp HTTP/gRPC bình thường.
  • Database replication thông thường.

Các workload này thường cần ENA/network bandwidth bình thường, placement design, hoặc storage optimization hơn là EFA.


EFA không phù hợp khi nào?

Không chọn EFA chỉ vì “muốn network nhanh hơn”. Chọn EFA khi ứng dụng thực sự biết dùng MPI/NCCL/Libfabric/EFA.

Không phù hợp nếu:

  • App chỉ giao tiếp HTTP/TCP bình thường.
  • Bottleneck là disk/S3/database chứ không phải node-to-node latency.
  • Các instances nằm nhiều AZ và cần cross-AZ active-active communication.
  • Bạn cần routable network path qua VPC peering/TGW/VPN/DX — EFA traffic không routable.
  • Instance type hoặc OS không hỗ trợ.
  • Bạn không muốn quản lý HPC/AI runtime; khi đó cân nhắc managed services như SageMaker, AWS ParallelCluster, AWS Batch, EKS với plugin phù hợp.

Thành phần kỹ thuật cần nhớ

Thành phầnVai trò
EC2 supported instance typePhần cứng/Nitro support EFA
EFA network interfaceDevice gắn vào instance
Security Group self-reference all trafficĐiều kiện cần để OS-bypass hoạt động giữa nodes
Same subnet/AZEFA traffic không cross-AZ/VPC
Cluster Placement GroupGiảm latency bằng cách đặt instances gần nhau
EFA installerCài driver/libfabric/plugin cần thiết
Libfabric/OFIUser-space API để app dùng EFA
MPI/NCCL/NIXL/NeuronCommunication library sử dụng EFA
AMI đã cài EFADùng để launch nhiều nodes nhất quán
Launch Template/ParallelClusterTự động hóa cấu hình EFA

Yêu cầu và giới hạn quan trọng

1. Phải dùng supported instance types

Không phải EC2 instance nào cũng hỗ trợ EFA. Các dòng HPC/GPU/network-optimized/compute lớn thường có hỗ trợ, nhưng phải kiểm tra AWS docs hoặc CLI.

Ví dụ cách kiểm tra bằng AWS CLI:

aws ec2 describe-instance-types \
  --filters Name=network-info.efa-supported,Values=true \
  --query 'InstanceTypes[*].InstanceType' \
  --output table

2. Hệ điều hành phải được hỗ trợ

AWS docs liệt kê OS support theo x86_64 và Graviton/arm64, gồm các bản như:

  • Amazon Linux 2023
  • Amazon Linux 2
  • RHEL 8/9/10
  • Debian 11/12/13
  • Rocky Linux 8/9
  • Ubuntu 22.04/24.04
  • SUSE Linux Enterprise 15 SP2+
  • OpenSUSE Leap 15.5+ cho x86_64

Nếu dùng Intel MPI, cần kiểm tra thêm support từ Intel MPI documentation.

3. EFA traffic không cross-AZ hoặc cross-VPC

Đây là điểm cực kỳ quan trọng:

EFA traffic không thể đi qua Availability Zones hoặc VPCs.

Điều này không áp dụng cho IP traffic bình thường từ ENA device của EFA interface. Nghĩa là SSH/HTTP/IP vẫn routable theo VPC, nhưng EFA device traffic thì không.

4. EFA traffic không routable

EFA traffic không đi qua route table/TGW/VPC peering/VPN/Direct Connect như IP traffic bình thường.

5. Không hỗ trợ AWS Outposts

AWS docs nêu EFA không được hỗ trợ trên AWS Outposts.

6. Không attach/detach khi instance đang running

Khác ENI bình thường ở một điểm quan trọng: EFA không thể attach/detach khỏi instance ở trạng thái running. Cần instance stopped hoặc attach khi launch.

7. Security Group phải cho phép all traffic self-reference

Để OS-bypass hoạt động, EFA phải thuộc security group cho phép all inbound và all outbound traffic tới chính security group đó.

8. Multiple network cards

Instance types hỗ trợ nhiều network cards có thể cấu hình một EFA trên mỗi network card. Các supported instance types khác thường chỉ hỗ trợ một EFA per instance.

9. Dedicated Instance/Host limitation

AWS docs nêu c7g.16xlarge, m7g.16xlarge, r7g.16xlarge Dedicated Instances và Dedicated Hosts không được hỗ trợ khi attach EFA.

10. Windows support bị giới hạn

EFA device của EFA with ENA interface trên Windows chỉ hỗ trợ cho AWS CDI SDK based applications. Với non-CDI SDK based applications, nó hoạt động như ENA interface, không có EFA capabilities bổ sung. EFA-only không hỗ trợ AWS CDI based applications trên Windows hoặc Linux.


Cách triển khai EFA thủ công trên EC2

Flow thủ công phổ biến:

1. Chọn supported instance type + OS
2. Tạo security group EFA self-reference
3. Launch temporary instance
4. Cài EFA software installer
5. Verify Libfabric/EFA
6. Cài app HPC/AI
7. Tạo AMI
8. Launch cluster trong cùng subnet/AZ + cluster placement group
9. Chạy MPI/NCCL job

Bước 1: Security group

Tạo security group trong VPC sẽ chạy cluster.

Inbound:

TypeSource
All trafficChính security group đó
SSHIP quản trị của bạn, không nên 0.0.0.0/0 cho production

Outbound:

TypeDestination
All trafficChính security group đó
Cần thêm internet/NAT/VPC endpoint tùy việc cài package, gọi AWS API

Bước 2: Launch temporary instance

Chọn:

  • Supported AMI/OS.
  • Supported instance type.
  • Subnet trong AZ mong muốn.
  • Security group EFA.
  • Enable EFA khi launch hoặc attach EFA khi instance stopped.

Bước 3: Cài EFA software

AWS có EFA installer để cài driver, Libfabric, Open MPI integration... Tùy OS, dùng hướng dẫn AWS hiện hành.

Sau cài đặt, verify bằng các lệnh như:

fi_info -p efa

Nếu không thấy provider efa, thường do driver/library chưa đúng, instance không support, EFA chưa attach, hoặc OS/kernel không phù hợp.

Bước 4: Tạo AMI

Khi node mẫu đã có EFA software + app dependencies, tạo AMI để launch toàn bộ cluster nhất quán.

Bước 5: Launch cluster trong cluster placement group

Dùng cluster placement group để đặt instances gần nhau, tối ưu low-latency network.

Bước 6: Chạy workload

Ví dụ MPI:

mpirun -np 16 -hostfile hosts ./my_hpc_app

Ví dụ NCCL workload thường thông qua framework như PyTorch Distributed, DeepSpeed, Megatron-LM, Horovod, hoặc script training tự cấu hình backend.


Triển khai EFA với AWS ParallelCluster

AWS ParallelCluster là cách dễ hơn để tạo HPC cluster trên AWS.

Theo AWS docs, với ParallelCluster và Slurm scheduler, bật EFA bằng cấu hình:

SlurmQueues:
  - Name: compute
    ComputeResources:
      - Name: hpc
        InstanceType: c7gn.16xlarge
        Efa:
          Enabled: true

AWS khuyến nghị chạy EFA-enabled instances trong placement group để giảm latency. ParallelCluster có cấu hình PlacementGroup trong phần Networking.

Từ AWS ParallelCluster 3.15.0, khi bật EFA, ParallelCluster tự động cấu hình EFA-only network interfaces để tách EFA traffic khỏi IP traffic, tối ưu bandwidth và giảm tiêu thụ IP address. Đây là default được AWS khuyến nghị cho đa số tightly-coupled HPC và distributed AI/ML training.

Khi nên dùng ParallelCluster:

  • Bạn chạy HPC bằng Slurm.
  • Cần auto scaling compute nodes.
  • Muốn tránh tự viết quá nhiều automation AMI/launch template.
  • Muốn cấu hình EFA, placement group, shared storage, scheduler theo mô hình chuẩn HPC.

EFA trong AI/ML distributed training

Trong distributed training, nhiều GPU nodes cần truyền gradient hoặc tensor qua network. Các operation như all-reduce, all-gather, reduce-scatter có thể trở thành bottleneck.

EFA giúp khi framework sử dụng NCCL qua OFI/EFA:

PyTorch / TensorFlow / JAX

Distributed backend

NCCL

AWS OFI NCCL / Libfabric

EFA

AWS network

Ví dụ workload

  • Train LLM hoặc model thị giác lớn trên nhiều P4d/P5/Trn/Inf instances.
  • Data parallel training cần gradient synchronization.
  • Model parallel/pipeline parallel training cần truyền activation giữa nodes.

Lưu ý

  • EFA chỉ giúp phần communication. Nếu bottleneck là data loading từ S3/EBS/EFS/FSx, cần tối ưu storage/data pipeline.
  • Với GPU training, cần đúng driver CUDA/NCCL/framework version.
  • Với AWS Neuron, cần đúng Neuron SDK version và instance train/inference phù hợp.

EFA trong HPC/MPI

Trong HPC, nhiều ứng dụng dùng Message Passing Interface (MPI).

HPC application

Open MPI / Intel MPI

Libfabric / OFI

EFA

EFA đặc biệt hữu ích cho tightly-coupled MPI

Ví dụ:

  • CFD
  • weather simulation
  • molecular dynamics
  • finite element analysis
  • reservoir simulation

Không phải mọi MPI job đều cần EFA

Nếu MPI job ít communication, chạy embarrassingly parallel, hoặc chủ yếu đọc/ghi file, EFA có thể không tạo khác biệt lớn.


Security Group cho EFA

Security group là lỗi cấu hình phổ biến nhất với EFA.

Rule cần có cho EFA OS-bypass

Inbound:

Type: All traffic
Source: sg-xxxxxxxxxxxxxxxxx  # chính security group EFA

Outbound:

Type: All traffic
Destination: sg-xxxxxxxxxxxxxxxxx  # chính security group EFA

SSH rule

Production không nên mở SSH toàn internet. Dùng một trong các cách:

  • Source là corporate IP/VPN CIDR.
  • Bastion host.
  • AWS Systems Manager Session Manager nếu phù hợp.

Vì sao cần self-reference all traffic?

Các node trong cluster cần giao tiếp EFA với nhau. Self-reference rule đảm bảo tất cả instances cùng security group có thể truyền traffic cần thiết cho EFA/MPI/NCCL.


Placement Group và subnet/AZ

EFA thường đi cùng cluster placement group.

Cluster placement group làm gì?

Cluster placement group cố gắng đặt instances gần nhau về mặt vật lý để đạt network latency thấp và throughput cao.

Vì sao cùng subnet/AZ quan trọng?

  • EFA traffic không cross-AZ.
  • Placement group cluster nằm trong một AZ.
  • Các node nên được launch trong cùng subnet/AZ để tránh lỗi hoặc performance không đạt.

Trade-off

Lựa chọnƯu điểmNhược điểm
Single AZ + cluster placement groupLatency thấp nhất cho EFAKhông có HA cross-AZ cho một job tightly-coupled
Multi-AZHA tốt hơn cho app web/microservicesKhông phù hợp EFA traffic

Với HPC/AI training, job thường được thiết kế checkpoint/retry hơn là active-active multi-AZ trong cùng một training job.


Monitoring và troubleshooting

Kiểm tra EFA provider

fi_info -p efa

Nếu lỗi:

  • Instance type có support EFA không?
  • EFA đã attach chưa?
  • OS có support không?
  • EFA installer đã cài đúng chưa?
  • Security group self-reference đã đúng chưa?

Kiểm tra network interface

ip link
lspci | grep -i efa

Tùy OS/AMI, tên interface và output có thể khác.

Lỗi thường gặp

Triệu chứngNguyên nhân thường gặpCách xử lý
fi_info -p efa không thấy providerChưa cài EFA software hoặc không attach EFACài installer, kiểm tra launch config
MPI chạy nhưng performance không khác TCPMPI không dùng OFI/EFA providerKiểm tra MPI build/env vars/provider
Job fail khi chạy nhiều nodeSecurity group thiếu self-reference all trafficThêm inbound/outbound all traffic từ chính SG
Không launch đủ node trong placement groupCapacity trong AZ không đủThử AZ khác, capacity reservation, chọn instance type khác
Cross-AZ communication không dùng EFAEFA traffic không cross-AZĐưa nodes về cùng AZ/subnet
Attach EFA vào running instance lỗiEFA không attach/detach khi runningStop instance hoặc attach lúc launch

Monitoring

AWS có hướng dẫn monitor EFA riêng. Ngoài ra cần theo dõi:

  • EC2 instance metrics trong CloudWatch.
  • Application-level metrics: step time, all-reduce time, throughput, samples/sec.
  • NCCL/MPI debug logs.
  • Network/performance benchmark như OSU Micro-Benchmarks, NCCL tests.

Chi phí

Theo AWS docs:

EFA là optional Amazon EC2 networking feature có thể bật trên supported instance, không có chi phí bổ sung.

Tuy nhiên vẫn có chi phí liên quan:

  • EC2 instances, đặc biệt GPU/HPC instances.
  • EBS/FSx/EFS/S3 data storage.
  • Data transfer theo quy tắc AWS thông thường nếu có traffic tính phí khác.
  • ParallelCluster/Slurm infrastructure resources nếu dùng.
  • Capacity Reservation/Savings Plans/Reserved Instances nếu áp dụng.

So sánh EFA với các dịch vụ/công nghệ dễ nhầm

EFA vs ENA

Tiêu chíENAEFA
Mục đíchIP networking thông thườngHPC/AI low-latency communication
Dùng cho SSH/HTTP?EFA device không; EFA with ENA có ENA để làm việc này
OS-bypassKhông phải trọng tâm
RoutableEFA traffic không routable
WorkloadHầu hết EC2 appsMPI/NCCL/Libfabric-aware apps

EFA vs Elastic Network Interface (ENI)

EFA là một loại network interface đặc biệt. ENI là khái niệm network interface chung trong VPC. EFA có thêm EFA device capability cho HPC/AI.

EFA vs Placement Group

EFAPlacement Group
Network device/protocol/library pathCách đặt instances gần nhau
Cần app hỗ trợ EFAKhông cần app support
Tối ưu communication pathTối ưu physical placement
Thường dùng cùng nhauThường là điều kiện tốt để EFA phát huy

EFA vs Direct Connect

EFADirect Connect
Giao tiếp giữa EC2 instances trong cùng AZ/VPC contextKết nối mạng riêng từ on-prem tới AWS
Không routable/cross-AZ cho EFA trafficIP networking private/dedicated
Dùng cho HPC/AI clusterDùng cho hybrid networking

EFA vs SR-IOV enhanced networking

ENA enhanced networking cũng dựa trên virtualization/network offload để cải thiện performance. EFA đi xa hơn cho HPC/AI bằng OS-bypass và Libfabric/SRD path cho tightly-coupled workloads.

EFA vs FSx for Lustre

EFAFSx for Lustre
Tăng tốc node-to-node communicationHigh-performance shared file system
Dùng cho MPI/NCCL communicationDùng cho shared training/HPC datasets
Không lưu dữ liệuLưu/cung cấp dữ liệu file

Trong HPC/AI, thường dùng cả hai:

Compute nodes giao tiếp với nhau: EFA
Compute nodes đọc dataset/checkpoint: FSx for Lustre hoặc S3/EBS/EFS tùy workload

EFA vs AWS ParallelCluster

EFAAWS ParallelCluster
Network capability của EC2Tool/service để tạo HPC cluster
Một thành phần trong clusterOrchestrate Slurm, compute, storage, EFA, placement group

Kiến trúc mẫu

1. HPC MPI cluster cơ bản

VPC / Single AZ
  └─ Subnet A
      └─ Cluster Placement Group
          ├─ Head/Login Node - ENA
          ├─ Compute Node 1 - EFA
          ├─ Compute Node 2 - EFA
          ├─ Compute Node 3 - EFA
          └─ Compute Node N - EFA

Shared storage: FSx for Lustre / EFS / S3
Scheduler: Slurm / AWS ParallelCluster
Communication: MPI → Libfabric → EFA

2. Distributed GPU training

S3 dataset
  ↓ preload/cache
FSx for Lustre hoặc local NVMe cache

GPU instances trong cùng AZ + Cluster Placement Group
  ├─ p5/p4/trn node 1 - EFA
  ├─ p5/p4/trn node 2 - EFA
  └─ p5/p4/trn node N - EFA

Training framework → NCCL/Neuron → Libfabric/OFI → EFA
Checkpoints → S3
Metrics/logs → CloudWatch/S3

3. ParallelCluster với EFA

Admin
  ↓ pcluster create-cluster
AWS ParallelCluster
  ├─ Head node
  ├─ Slurm scheduler
  ├─ Compute queue with Efa.Enabled=true
  ├─ Cluster placement group
  └─ Shared storage

Checklist thiết kế

Trước khi chọn EFA, kiểm tra:

  • Workload có tightly-coupled node-to-node communication không?
  • App/framework có hỗ trợ MPI/NCCL/NIXL/Neuron/Libfabric path không?
  • Instance type có hỗ trợ EFA không?
  • OS/AMI có hỗ trợ EFA không?
  • Có cần RDMA read/write không, và instance type có hỗ trợ không?
  • Các nodes có thể chạy trong cùng AZ/subnet không?
  • Đã dùng cluster placement group chưa?
  • Security group có inbound/outbound all traffic self-reference chưa?
  • EFA software/Libfabric/MPI/NCCL version đúng chưa?
  • Có benchmark trước/sau EFA không?
  • Storage/data loading có phải bottleneck riêng không?
  • Có chiến lược checkpoint/retry nếu AZ capacity hoặc job fail không?

Mẹo nhớ nhanh

Thuật ngữMẹo nhớ
EFACard mạng HPC/AI cho EC2
ENACard mạng IP bình thường/enhanced networking
EFA with ENAVừa IP traffic vừa EFA traffic
EFA-onlyChỉ EFA traffic, không IP
Libfabric/OFIAPI để app nói chuyện với EFA
MPIChuẩn giao tiếp HPC processes
NCCLThư viện giao tiếp GPU distributed training
SRDTransport AWS dùng cho EFA low-latency reliable communication
Cluster Placement GroupĐặt instances gần nhau
Self-referencing Security GroupCho node cùng cluster nói chuyện full traffic
Same AZEFA traffic không cross-AZ

Câu chốt:

EFA không làm mọi app nhanh hơn; EFA làm app HPC/AI biết dùng Libfabric/MPI/NCCL giao tiếp giữa EC2 nodes nhanh hơn.


Nguồn AWS chính thức

On this page

Tóm tắt nhanhEFA là gì?Vấn đề EFA giải quyếtMental model dễ nhớEFA hoạt động như thế nào?1. OS-bypass2. SRD - Scalable Reliable Datagram3. Tích hợp thư viện HPC/AI4. RDMA supportENA vs EFA vs EFA-onlyENA là gì?EFA with ENA là gì?EFA-only là gì?EFA dùng cho workload nào?Nên dùng EFA khi workload tightly-coupledWorkload loosely-coupled có thể không cần EFAEFA không phù hợp khi nào?Thành phần kỹ thuật cần nhớYêu cầu và giới hạn quan trọng1. Phải dùng supported instance types2. Hệ điều hành phải được hỗ trợ3. EFA traffic không cross-AZ hoặc cross-VPC4. EFA traffic không routable5. Không hỗ trợ AWS Outposts6. Không attach/detach khi instance đang running7. Security Group phải cho phép all traffic self-reference8. Multiple network cards9. Dedicated Instance/Host limitation10. Windows support bị giới hạnCách triển khai EFA thủ công trên EC2Bước 1: Security groupBước 2: Launch temporary instanceBước 3: Cài EFA softwareBước 4: Tạo AMIBước 5: Launch cluster trong cluster placement groupBước 6: Chạy workloadTriển khai EFA với AWS ParallelClusterEFA trong AI/ML distributed trainingVí dụ workloadLưu ýEFA trong HPC/MPIEFA đặc biệt hữu ích cho tightly-coupled MPIKhông phải mọi MPI job đều cần EFASecurity Group cho EFARule cần có cho EFA OS-bypassSSH ruleVì sao cần self-reference all traffic?Placement Group và subnet/AZCluster placement group làm gì?Vì sao cùng subnet/AZ quan trọng?Trade-offMonitoring và troubleshootingKiểm tra EFA providerKiểm tra network interfaceLỗi thường gặpMonitoringChi phíSo sánh EFA với các dịch vụ/công nghệ dễ nhầmEFA vs ENAEFA vs Elastic Network Interface (ENI)EFA vs Placement GroupEFA vs Direct ConnectEFA vs SR-IOV enhanced networkingEFA vs FSx for LustreEFA vs AWS ParallelClusterKiến trúc mẫu1. HPC MPI cluster cơ bản2. Distributed GPU training3. ParallelCluster với EFAChecklist thiết kếMẹo nhớ nhanhNguồn AWS chính thức