Amazon EC2의 AI/ML 및 HPC 워크로드를 위한 Elastic Fabric Adapter - Amazon Elastic Compute Cloud

Amazon EC2의 AI/ML 및 HPC 워크로드를 위한 Elastic Fabric Adapter

Elastic Fabric Adapter(EFA)는 Amazon EC2 인스턴스에 연결하여 인공 지능(AI), 기계 학습(ML), 고성능 컴퓨팅(HPC) 애플리케이션을 가속화할 수 있는 네트워크 디바이스입니다. EFA를 사용하면 AWS 클라우드가 제공하는 확장성, 유연성, 탄력성을 통해 온프레미스 AI/ML 또는 HPC 클러스터의 애플리케이션 성능을 구현할 수 있습니다.

EFA는 전통적으로 클라우드 기반 HPC 시스템에서 사용하는 TCP 전송보다 지연율이 낮고 일정하며 더 높은 처리량을 제공합니다. 또한 대규모 AI/ML 및 HPC 애플리케이션에서 중요한 인스턴스 간 통신 성능을 확장합니다. 이는 기존 AWS 네트워크 인프라에서 작업하도록 최적화되어 애플리케이션 요구량에 따라 크기를 변경합니다.

EFA는 Libfabric 1.7.0 이상과 통합되며 AI 및 ML 애플리케이션을 위한 NCCL(Nvidia Collective Communications Library)과 HPC 애플리케이션을 위한 Open MPI 4 이상, Intel MPI 2019 업데이트 5 이상을 지원합니다.

EFA 기본 사항

EFA 디바이스는 두 가지 방법으로 EC2 인스턴스에 연결할 수 있습니다.

  1. EFA 디바이스와 ENA 디바이스를 모두 생성하는 기존 EFA 인터페이스(ENA 포함 EFA라고도 함)를 사용합니다.

  2. EFA 디바이스만 생성하는 EFA 전용 인터페이스를 사용합니다.

EFA 디바이스는 SRD(Scalable Reliable Datagram) 프로토콜을 통해 내장 OS 바이패스 및 혼잡 제어와 같은 기능을 제공합니다. EFA 디바이스 기능을 사용하면 지연 시간이 짧고 안정적인 전송 기능을 통해 EFA 인터페이스가 Amazon EC2의 HPC 및 ML 애플리케이션에 더 나은 애플리케이션 성능을 제공할 수 있습니다. ENA 디바이스는 기존 IP 네트워킹을 제공합니다.

EFA를 사용한 HPC 소프트웨어 스택과 기존 스택 비교.

전통적으로 AI/ML 애플리케이션은 NCCL을 사용하고 HPC 애플리케이션은 MPI(Message Passing Interface)를 사용하여 시스템의 네트워크 전송과 인터페이스합니다. AWS 클라우드에서 NCCL 또는 MPI를 사용하는 애플리케이션 인터페이스를 의미하며 이는 인스턴스 간 네트워크 통신을 위해 운영 체제의 TCP/IP 스택과 ENA 디바이스 드라이버를 사용한다는 의미입니다.

기존 EFA(ENA 포함 EFA) 또는 EFA 전용 인터페이스와 함께, AI/ML 애플리케이션은 NCCL을 사용하고 HPC 애플리케이션은 MPI를 사용하여 Libfabric API와 직접 인터페이스합니다. Libfabric API는 운영 체제 커널을 우회하여 EFA 디바이스와 직접 통신을 통해 네트워크에 패킷을 전송합니다. 이를 통해 오버헤드를 줄이고 AI/ML 및 HPC 애플리케이션을 더욱 효율적으로 실행할 수 있습니다.

참고

Libfabric은 OFI(OpenFabrics Interface) 프레임워크의 핵심 구성 요소로서 OFI의 사용자 공간 API를 정의하고 내보냅니다. 자세한 내용은 Libfabric OpenFabrics 웹 사이트를 참조하세요.

ENA, EFA 및 EFA 전용 네트워크 인터페이스 간의 차이점

Amazon EC2는 두 가지 유형의 네트워크 인터페이스를 제공합니다.

  • ENA 인터페이스는 VPC를 위한 IP 네트워킹을 지원하는 데 필요한 모든 기존 IP 네트워킹 및 라우팅 기능을 제공합니다. 자세한 내용은 EC2 인스턴스에서 ENA로 향상된 네트워킹 활성화 단원을 참조하십시오.

  • EFA(ENA 포함 EFA) 인터페이스는 IP 네트워킹을 위한 ENA 디바이스와 짧은 지연 시간, 높은 처리량 통신을 위한 EFA 디바이스를 모두 제공합니다.

  • EFA 전용 인터페이스는 기존 IP 네트워킹을 위한 ENA 디바이스 없이 EFA 디바이스 기능만 지원합니다.

다음 표에서는 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 이상

    참고

    Graviton 기반 인스턴스에는 Open MPI 4.0 이상이 더 좋습니다.

  • 인텔 MPI 2019 업데이트 5 이상

  • NCCL(Nvidia Collective Communications Library) 2.4.2 이상

  • AWS Neuron SDK 버전 2.3 이상

지원되는 인스턴스 유형

다음 인스턴스 유형은 EFAs를 지원합니다.

Nitro v5
  • 범용: 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

  • 고성능 컴퓨팅: hpc7g.4xlarge | hpc7g.8xlarge | hpc7g.16xlarge

Nitro v4
  • 범용: 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-12tb.224xlarge | u7in-16tb.224xlarge | u7in-24tb.224xlarge | u7in-32tb.224xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.32xlarge | x2iedn.metal

  • 스토리지 최적화: i4g.16xlarge | i4i.32xlarge | i4i.metal | im4gn.16xlarge

  • 가속 컴퓨팅: 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
  • 범용: 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

특정 리전에서 EFA를 지원하는 사용 가능한 인스턴스 유형 확인

사용 가능한 인스턴스 유형은 리전마다 다릅니다. 리전에서 EFA를 지원하는 사용 가능한 인스턴스 유형을 확인하려면 describe-instance-types 명령을 --region 파라미터와 함께 사용합니다. EFA를 지원하는 인스턴스 유형으로 결과 범위를 지정하려면 --filters 파라미터를 포함하고 InstanceType 값으로 출력 범위를 지정하려면 --query 파라미터를 포함합니다.

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 디바이스를 통해 전송되는 트래픽을 말합니다.

  • P4d/P4de/DL1 인스턴스와 다른 인스턴스 유형 간의 EFA 트래픽은 현재 지원되지 않습니다.

  • 여러 네트워크 카드를 지원하는 인스턴스 유형은 네트워크 카드당 하나의 EFA로 구성할 수 있습니다. 지원되는 다른 모든 인스턴스 유형은 인스턴스당 하나의 EFA만 지원합니다.

  • c7g.16xlarge, m7g.16xlarger7g.16xlarge 전용 인스턴스 및 전용 호스트의 경우 EFA 연결 시 지원되지 않습니다.

  • EFA 트래픽은 가용 영역 또는 VPC를 통과할 수 없습니다. 이는 EFA 인터페이스의 ENA 디바이스에서 발생하는 일반 IP 트래픽에는 적용되지 않습니다.

  • EFA 트래픽은 라우팅할 수 없습니다. EFA 인터페이스의 ENA 디바이스에서 발생하는 일반 IP 트래픽은 라우팅 가능한 상태로 유지됩니다.

  • EFA는 AWS Outposts에서 지원되지 않습니다.

  • EFA(ENA 포함 EFA) 인터페이스의 EFA 디바이스는 AWS Cloud Digital Interface 소프트웨어 개발 키트(AWS CDI SDK) 기반 애플리케이션용 Windows 인스턴스에서만 지원됩니다. CDI SDK 기반이 아닌 애플리케이션의 Windows 인스턴스에 EFA(ENA 포함 EFA) 인터페이스를 연결하면 추가된 EFA 디바이스 기능 없이 ENA 인터페이스로 작동합니다. EFA 전용 인터페이스는 Windows 또는 Linux에서 실행되는 AWS CDI 기반 애플리케이션에서 지원되지 않습니다. 자세한 내용은 AWS Cloud Digital Interface 소프트웨어 개발 키트(AWS CDI SDK) 사용 설명서를 참조하세요.

EFA 요금

EFA는 추가 비용 없이 지원되는 모든 인스턴스에서 활성화할 수 있는 선택적 Amazon EC2 네트워킹 기능으로 사용할 수 있습니다.