AI Briefing

분산 트레이닝 관점에서 본 AWS 인터커넥트 기술 소개 - AWS 환경에서 NCCL을 이용한 GPU 간 통신

·2026.05.12 13:48

AWS EFA 위에서 NCCL이 GPU 집합 통신을 최적화하는 방식을 설명했다.

EFA는 AWS 분산 트레이닝용 고속 네트워크 인프라이고, NCCL은 그 위에서 GPU 간 통신을 조율하는 라이브러리다. 이 글은 AWS 환경에서 NCCL이 어떻게 AllReduce, AllGather, ReduceScatter 같은 집합 통신을 수행하는지, 그리고 왜 대규모 학습 성능의 핵심이 되는지를 정리한다.

NCCL은 CPU 중심의 MPI와 달리 GPU 간 통신에 맞춰 설계됐고, AWS에서는 aws-ofi-nccl 플러그인을 통해 libfabricEFA를 사용한다. 반면 MPI 구현체는 libfabric을 직접 사용하며, 특히 Intel MPI는 내장 libfabric에 EFA provider가 없어 별도 설정이 없으면 TCP로 떨어질 수 있어 I_MPI_OFI_LIBRARY_INTERNAL=0, FI_PROVIDER=efa 설정이 필요하다.

집합 통신은 일대일 연결을 줄이고 전체 GPU가 협력하도록 만드는 방식이다. 예를 들어 AllReduce는 각 GPU의 그래디언트를 합산해 모든 GPU에 동일하게 배포하고, AllGather는 조각난 데이터를 합쳐 전체를 모두에게 전달하며, ReduceScatter는 합산한 결과를 나눠 보관해 메모리를 줄인다.

NCCL은 하드웨어 토폴로지도 자동으로 읽는다. NVLink, NVSwitch, PCIe, NUMA 구조를 파악해 가까운 GPU끼리 먼저 묶고, EFA 카드와 가장 가까운 NIC 경로를 선택해 통신 지연을 줄인다. 이후에는 메시지 크기에 따라 RingTree 알고리즘을 자동 선택하고, 여러 채널청크(chunk) 로 나눠 파이프라이닝해 대역폭을 최대한 끌어낸다.

운영 관점에서는 최신 스택에서 대부분의 튜닝이 자동화돼 있어 과도한 환경변수 조정보다 기본값을 쓰는 편이 낫다. 글은 최소 설정으로 FI_EFA_USE_HUGE_PAGE=0을 권장하고, 문제 확인이 필요할 때만 NCCL_DEBUG=INFO로 EFA 인식 여부와 프로토콜 선택을 점검하라고 정리한다.**

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.