기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
를 사용하여 AWS Deep Learning AMIs 인스턴스 시작 EFA
최신 BaseDLAMI는와 함께 사용할 준비가 EFA되었으며 필요한 드라이버, 커널 모듈, libfabric, openmpi 및 GPU 인스턴스용 NCCL OFI 플러그인
릴리스 정보DLAMI에서 지원되는 CUDA 버전의 Base를 찾을 수 있습니다.
참고:
-
mpirun
에서를 사용하여 NCCL 애플리케이션을 실행할 때 EFA 지원되는 설치의 전체 경로를 다음과 같이 지정EFA해야 합니다./opt/amazon/openmpi/bin/mpirun <command>
-
애플리케이션에서 EFA를 사용할 수 있으려면 DLAMI에서 EFA 사용 단원과 같이
mpirun
명령에FI_PROVIDER="efa"
를 추가하십시오.
EFA를 사용한 보안 그룹 준비
EFA에는 보안 그룹 자체 내의 모든 인바운드 및 아웃바운드 트래픽을 허용하는 보안 그룹이 필요합니다. 자세한 내용은 EFA 설명서를 참조하세요.
-
에서 Amazon EC2 콘솔을 엽니다https://console.aws.amazon.com/ec2/
. -
탐색 창에서 보안 그룹을 선택한 다음, 보안 그룹 생성을 선택합니다.
-
보안 그룹 생성 창에서 다음을 수행하세요.
-
보안 그룹 이름의 경우
EFA-enabled security group
과 같은 보안 그룹의 고유한 이름을 입력합니다. -
(선택 사항) 설명에 보안 그룹에 대한 간략한 설명을 입력합니다.
-
에서 EFA사용 가능한 인스턴스를 시작할 VPC를 VPC선택합니다.
-
생성(Create)을 선택합니다.
-
-
생성한 보안 그룹을 선택하고 설명 탭에서 그룹 ID를 복사합니다.
-
인바운드 및 아웃바운드 탭에서 다음을 수행합니다.
-
편집을 선택합니다.
-
유형(Type)에서 모든 트래픽(All traffic)을 선택합니다.
-
소스(Source)에서 사용자 지정(Custom)을 선택합니다.
-
복사한 보안 그룹 ID를 필드에 붙여넣습니다.
-
저장(Save)을 선택합니다.
-
-
Linux 인스턴스에 대한 인바운드 트래픽 권한 부여를 참조하여 인바운드 트래픽을 활성화합니다. 이 단계를 건너뛰면 DLAMI 인스턴스와 통신할 수 없습니다.
인스턴스 시작
EFA의 AWS Deep Learning AMIs 는 현재 다음 인스턴스 유형 및 운영 체제에서 지원됩니다.
-
P3dn: Amazon Linux 2, Ubuntu 20.04
-
P4d, P4de: Amazon Linux 2, Amazon Linux 2023, Ubuntu 20.04, Ubuntu 22.04
-
P5, P5e, P5en: Amazon Linux 2, Amazon Linux 2023, Ubuntu 20.04, Ubuntu 22.04
다음 섹션에서는 EFA 활성화된 DLAMI 인스턴스를 시작하는 방법을 보여줍니다. EFA 활성화된 인스턴스를 시작하는 방법에 대한 자세한 내용은 클러스터 배치 그룹으로 시작 EFA- 활성화된 인스턴스를 참조하세요.
-
에서 Amazon EC2 콘솔을 엽니다https://console.aws.amazon.com/ec2/
. -
인스턴스 시작을 선택합니다.
-
선택 AMI 페이지의 릴리스 정보 DLAMI 페이지에서 지원되는를 선택합니다. DLAMI
-
인스턴스 유형 선택 페이지에서 다음과 같이 지원되는 인스턴스 유형 중 하나를 선택하고 다음: 인스턴스 세부 정보 구성을 선택합니다. 지원되는 인스턴스 목록은 다음 링크를 참조하세요. EFA 및 시작하기 MPI
-
인스턴스 세부 정보 구성 페이지에서 다음을 수행합니다.
-
인스턴스 수에 시작할 EFA를 사용한 인스턴스 수를 입력합니다.
-
네트워크 및 서브넷에서 인스턴스를 시작할 VPC 및 서브넷을 선택합니다.
-
[선택 사항] 배치 그룹에서 배치 그룹에 인스턴스 추가를 선택합니다. 최상의 성능을 위해 배치 그룹 내에서 인스턴스를 시작합니다.
-
[선택 사항] 배치 그룹 이름에서 새 배치 그룹 추가를 선택하고 배치 그룹을 설명하는 이름을 입력한 뒤 배치 그룹 전략에서 클러스터를 선택합니다.
-
이 페이지에서 “Elastic Fabric Adapter”를 활성화해야 합니다. 이 옵션이 비활성화된 경우 선택한 인스턴스 유형을 지원하는 서브넷으로 서브넷을 변경합니다.
-
네트워크 인터페이스 항목의 디바이스 eth0에서 새 네트워크 인터페이스를 선택합니다. 선택적으로 기본 IPv4 주소와 하나 이상의 보조 IPv4 주소를 지정할 수 있습니다. 연결된 IPv6 CIDR 블록이 있는 서브넷으로 인스턴스를 시작하는 경우 선택적으로 기본 IPv6 주소와 하나 이상의 보조 IPv6 주소를 지정할 수 있습니다.
-
다음: 스토리지 추가를 선택합니다.
-
-
스토리지 추가 페이지에서 인스턴스를 연결할 볼륨과 AMI로 지정한 볼륨(루트 디바이스 볼륨 등)을 지정하고 다음: 태그 추가를 선택합니다.
-
태그 추가 페이지에서 사용자에게 친숙한 이름 등의 인스턴스 태그를 지정한 후 다음: 보안 그룹 구성(Next: Configure Security Group)을 선택합니다.
-
보안 그룹 구성 페이지의 보안 그룹 할당에서 기존 보안 그룹 선택을 선택하고 이전에 생성한 보안 그룹을 선택합니다.
-
[검토 및 시작(Review and Launch)]를 선택합니다.
-
인스턴스 시작 검토 페이지에서 설정을 검토한 후 시작을 선택하여 키 페어를 선택하고 인스턴스를 시작합니다.
EFA 첨부 파일 확인
콘솔에서
인스턴스를 시작한 후 AWS 콘솔에서 인스턴스 세부 정보를 확인합니다. 이렇게 하려면 EC2 콘솔에서 인스턴스를 선택하고 페이지의 하단 창에서 설명 탭을 확인합니다. ‘Network Interfaces: eth0’ 매개 변수를 찾아 eth0을 클릭하면 팝업이 열립니다. 'Elastic Fabric Adapter'가 활성화되어 있는지 확인합니다.
EFA이 활성화 되지 않은 경우 다음 중 하나를 사용하여 이 문제를 해결할 수 있습니다.
-
인스턴스를 종료하고 동일한 단계로 새 EC2 인스턴스를 시작합니다. EFA이 연결되어 있는지 확인합니다.
-
기존 인스턴스에 EFA를 연결합니다.
-
EC2 콘솔에서 네트워크 인터페이스로 이동합니다.
-
Create a Network Interface(네트워크 인터페이스 생성)를 클릭합니다.
-
인스턴스가 있는 서브넷과 동일한 서브넷을 선택합니다.
-
‘Elastic Fabric Adapter’를 활성화하고 생성을 클릭합니다.
-
EC2 인스턴스 탭으로 돌아가 인스턴스를 선택합니다.
-
Actions: Instance State(작업: 인스턴스 상태)로 이동하여 EFA을 연결하기 전에 인스턴스를 중지합니다.
-
작업에서 네트워킹: Networking: Attach Network Interface(네트워크 인터페이스 연결)를 선택합니다.
-
방금 생성한 인터페이스를 선택하고 연결을 클릭합니다.
-
인스턴스를 재시작합니다.
-
인스턴스에서
다음 테스트 스크립트는 DLAMI에 이미 있습니다. 이를 실행하여 커널 모듈이 올바르게 로드되었는지 확인합니다.
$ fi_info -p efa
출력은 다음과 비슷한 형태가 됩니다.
provider: efa fabric: EFA-fe80::e5:56ff:fe34:56a8 domain: efa_0-rdm version: 2.0 type: FI_EP_RDM protocol: FI_PROTO_EFA provider: efa fabric: EFA-fe80::e5:56ff:fe34:56a8 domain: efa_0-dgrm version: 2.0 type: FI_EP_DGRAM protocol: FI_PROTO_EFA provider: efa;ofi_rxd fabric: EFA-fe80::e5:56ff:fe34:56a8 domain: efa_0-dgrm version: 1.0 type: FI_EP_RDM protocol: FI_PROTO_RXD
보안 그룹 구성 확인
다음 테스트 스크립트는 DLAMI에 이미 있습니다. 이를 실행하여 생성한 보안 그룹이 올바르게 구성되었는지 확인합니다.
$ cd /opt/amazon/efa/test/ $ ./efa_test.sh
출력은 다음과 비슷한 형태가 됩니다.
Starting server... Starting client... bytes #sent #ack total time MB/sec usec/xfer Mxfers/sec 64 10 =10 1.2k 0.02s 0.06 1123.55 0.00 256 10 =10 5k 0.00s 17.66 14.50 0.07 1k 10 =10 20k 0.00s 67.81 15.10 0.07 4k 10 =10 80k 0.00s 237.45 17.25 0.06 64k 10 =10 1.2m 0.00s 921.10 71.15 0.01 1m 10 =10 20m 0.01s 2122.41 494.05 0.00
응답이 중단되거나 작업이 완료되지 않으면 보안 그룹에 올바른 인바운드/아웃바운드 규칙이 있는지 확인합니다.