최신 머신러닝 프레임워크는 GPU 간 통신 기본 요소를 위해 NVIDIA Collective Communications Library(NCCL)를 자주 사용합니다.
Google의 향상된 NCCL 버전은 NCCL/gIB라고 하며Google Cloud의 A5X, A4X Max, A4X, A4, A3 Ultra 인스턴스에서 사용할 수 있습니다. NCCL/gIB는 Google 인프라에서 업스트림 NCCL보다 성능이 더 우수한 경우가 많습니다. NCCL 성능은 전체 워크로드 성능에 영향을 줄 수 있으므로 NCCL/gIB를 사용하는 것이 좋습니다.
NCCL/gIB에는 다음과 같은 Google 관련 기능과 최적화가 포함되어 있습니다.
- gIB 네트워크 플러그인은 Google 네트워크에서 향상된 부하 분산을 제공하므로 집합 작업 중에 높은 처리량과 짧은 지연 시간을 더 일관되게 유지할 수 있습니다.
- Google Cloud VM에서 최적의 조정 옵션을 선택하는 커스텀 조정기 플러그인
- CoMMA 프로파일러 플러그인은 워크로드에 대한 자세한 성능 측정항목과 진단 데이터를 제공합니다.
- env 플러그인은 Google Cloud VM 전반에 플랫폼별 변수 구성을 제공합니다.
NCCL/gIB 아키텍처
NCCL/gIB는 머신러닝 프레임워크 및 클러스터의 NVIDIA GPU와 상호작용하여 성능을 최적화하고 원격 분석을 수집합니다(다음 다이어그램 참조).

NCCL/gIB 사용의 이점
안정성 문제 없이 Google Cloud VM에서 업스트림 NVIDIA Collective Communications Library를 사용할 수 있지만 NCCL/gIB는 Google Cloud 에 더 최적화되어 있으며 동일한 NCCL 매개변수를 사용하더라도 특정 통신 패턴의 경우 성능 차이가 매우 클 수 있습니다.
예를 들어 다음 그래프는 AllReduce 성능에서 NCCL/gIB와 업스트림 NCCL을 비교한 것입니다. NCCL/gIB는 특정 메시지 크기에서 업스트림 NCCL보다 최대 12배 더 우수한 성능을 발휘합니다.

백그라운드 트래픽이 없는 A3 Ultra(H200)를 사용한 32노드 NCCL AllReduce 성능
마찬가지로, 백그라운드 트래픽이 있는 AllGather 성능에서 NCCL/gIB와 업스트림 NCCL을 비교하면 이 그래프에 표시된 것처럼 NCCL/gIB가 더 큰 메시지 크기에서 업스트림 NCCL보다 약 50% 더 우수한 성능을 보입니다.

노이즈가 있는 백그라운드가 있는 공유 패브릭에서 A3 Ultra(H200)를 사용하는 32노드 NCCL AllGather 성능
또한 CoMMA 프로파일러 플러그인은 Google에 개선된 커스텀 원격 분석을 제공하므로 워크로드 수준 문제가 발생할 경우 더 효과적으로 지원할 수 있습니다.
NCCL/gIB 설치
NCCL 테스트를 실행하기 전에 런타임 환경에 NCCL/gIB를 설치해야 합니다.
NCCL/gIB 사용
클러스터에서 NCCL/gIB 테스트를 실행하려면 다음 목록에서 요구사항에 가장 적합한 페이지를 선택합니다.
- NVIDIA NGC 컨테이너에서 gIB NCCL 플러그인 사용
- Compute Engine 인스턴스에서 NCCL 테스트 실행
- Cluster Toolkit을 사용하는 GKE 클러스터에서 NCCL 실행
- A4X Max를 사용하는 GKE 클러스터에서 NCCL 실행
- A4X를 사용하는 GKE 클러스터에서 NCCL 실행
- A4 또는 A3 Ultra를 사용하는 GKE 클러스터에서 NCCL 실행
- Slurm 클러스터에서 NCCL 테스트 실행
- Cluster Director에서 NCCL 테스트 실행
A5X를 사용하는 GKE 클러스터에서 NCCL/gIB를 실행하는 방법에 대한 안내는 Google Cloud 담당자에게 문의하세요.
테스트를 실행한 후 클러스터 문제를 해결하는 방법을 알아보려면 문제 해결을 위한 NCCL/gIB 로그 수집 및 이해를 참조하세요.