Elastic Fabric Adapter - Amazon Elastic Compute Cloud

Elastic Fabric Adapter

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

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

EFA는 Libfabric 1.11.1과 통합되며 HPC 애플리케이션을 위한 Open MPI 4.0.5 및 Intel MPI 2019 업데이트 7과 기계 학습 애플리케이션을 위한 NCCL(Nvidia Collective Communications Library)을 지원합니다.

참고

Windows 인스턴스에서는 EFAs에서 제공하는 OS 우회 기능을 지원하지 않습니다. EFA를 Windows 인스턴스에 연결한 경우 인스턴스는 추가적인 EFA 기능이 없는 ENA(Elastic Network Adapter)로 작동합니다.

EFA 기본 사항

EFA는 추가 기능이 있는 ENA(Elastic Network Adapter)입니다. 따라서 추가적인 OS 우회 기능을 포함한 모든 ENA의 기능을 제공합니다. OS 우회는 HPC 및 기계 학습 애플리케이션이 네트워크 인터페이스 하드웨어와 직접 통신하도록 하는 액세스 모델로서 낮은 지연율과 신뢰성 높은 전송 기능을 제공합니다.


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

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

EFA에서 HPC 애플리케이션은 Libfabric API에 MPI 또는 NCCL 인터페이스를 사용합니다. Libfabric API는 운영 체제 커널을 우회하여 EFA 디바이스와 직접 통신을 통해 네트워크에 패킷을 전송합니다. 이는 오버헤드를 줄이고 HPC 애플리케이션이 더욱 효율적으로 실행되도록 합니다.

참고

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

EFAs 및 ENA 간의 차이점

Elastic Network Adapter(ENA)는 VPC 네트워킹을 지원하는 데 필요한 기존 IP 네트워킹 기능을 제공합니다. EFA는 ENA와 동일한 모든 기존 IP 네트워킹 기능을 제공하는 것에 더해 OS 바이패스 기능도 지원합니다. OS 우회는 HPC 및 기계 학습 애플리케이션이 운영 체제 커널을 우회하여 EFA 디바이스와 직접 통신할 수 있도록 합니다.

지원되는 인터페이스 및 라이브러리

EFA는 다음 인터페이스 및 라이브러리를 지원합니다.

  • Open MPI 4.0.5

  • Intel MPI 2019 Update 7

  • NCCL(Nvidia Collective Communications Library) 2.4.2 이상

지원되는 인스턴스 유형

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

  • 범용:m5dn.24xlarge |m5dn.metal |m5n.24xlarge |m5zn.12xlarge |m5zn.metal m6i.32xlarge | |

  • 컴퓨팅 최적화:c5n.18xlarge |c5n.metal |c6gn.16xlarge

  • 메모리 최적화:r5dn.24xlarge |r5dn.metal |r5n.24xlarge |r5n.metal

  • 스토리지 최적화: i3en.24xlarge | i3en.metal

  • 액셀러레이티드 컴퓨팅: g4dn.metal | inf1.24xlarge | p3dn.24xlarge | p4d.24xlarge

사용 가능한 인스턴스 유형은 리전마다 다릅니다. 리전에서 EFA를 지원하는 사용 가능한 인스턴스 유형을 확인하려면 describe-instance-types 명령을 --region 옵션 및 해당 리전 코드와 함께 사용합니다.

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

다음은 예제 출력입니다.

g4dn.metal i3en.24xlarge r5n.24xlarge c5n.18xlarge m5n.24xlarge inf1.24xlarge m5dn.24xlarge c5n.metal p3dn.24xlarge i3en.metal r5dn.24xlarge

지원되는 AMIs

다음 AMI는 인텔 x86 기반 인스턴스 유형이 포함된 EFA를 지원합니다.

  • Amazon Linux 2

  • CentOS 7 및 8

  • RHEL 7 및 8

  • Ubuntu 18.04 및 20.04

  • SUSE Linux Enterprise 15 SP2 이상

  • openSUSE Leap 15.2 이상

다음 AMI는 Arm 기반(Graviton 2) 인스턴스 유형이 포함된 EFA를 지원합니다.

  • Amazon Linux 2

  • CentOS 8

  • RHEL 8

  • Ubuntu 18.04 및 20.04

  • SUSE Linux Enterprise 15 SP2 이상

EFA 제한 사항

EFA에는 다음과 같은 제한 사항이 있습니다.

  • p4d.24xlarge 인스턴스는 최대 4개의 EFAs를 지원합니다. 지원되는 다른 모든 인스턴스 유형은 인스턴스당 하나의 EFA만 지원합니다.

  • EFA OS 우회 트래픽은 단일 서브넷으로 제한됩니다. 즉 EFA 트래픽은 서브넷 간 전송이 불가능합니다. EFA의 일반 IP 트래픽은 서브넷 간 전송이 가능합니다.

  • EFA OS 우회 트래픽은 라우팅되지 않습니다. EFA의 일반 IP 트래픽은 라우팅이 가능합니다.

  • EFA은 보안 그룹 자체 내의 모든 인바운드 및 아웃바운드 트래픽을 허용하는 보안 그룹에 구성되어야 합니다.

  • C6gn 인스턴스와 다른 EFA 사용 인스턴스 간의 EFA 트래픽은 지원되지 않습니다.