최신 머신러닝 프레임워크는 GPU 간 통신 기본 요소를 위해 NVIDIA Collective Communications Library (NCCL)를 자주 사용합니다.
Google의 향상된 NCCL 버전은 NCCL/gIB라고 하며 Google CloudA3 Ultra, A4, A4X VM에서 사용할 수 있습니다. NCCL/gIB는 Google 인프라에서 업스트림 NCCL보다 성능이 더 뛰어난 경우가 많습니다. NCCL 성능은 전반적인 워크로드 성능에 영향을 미칠 수 있으므로 NCCL/gIB를 사용하는 것이 좋습니다.
NCCL/gIB에는 다음과 같은 Google 관련 기능 및 최적화가 포함되어 있습니다.
- gIB 네트워크 플러그인 은 Google 네트워크에서 향상된 부하 분산을 제공하므로 집합 작업 중에 처리량이 높고 지연 시간이 짧습니다.
- VM에서 최적의 튜닝 옵션을 선택하는 맞춤 튜너 플러그인입니다. Google Cloud
- CoMMA 프로파일러 플러그인은 워크로드에 대한 세부 성능 측정항목과 진단 데이터를 제공합니다.
- env 플러그인은 VM 전반에서 플랫폼별 변수 구성을 제공합니다. Google Cloud
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에 향상된 맞춤 원격 분석을 제공하므로 워크로드 수준 문제가 발생할 경우 Google에서 더 나은 지원을 제공할 수 있습니다.
NCCL/gIB 사용
클러스터에서 NCCL/gIB 테스트를 실행하려면 다음 목록에서 요구사항에 가장 적합한 페이지를 선택하세요.
- Compute Engine VM에서 NCCL 테스트 실행
- 기본 구성을 사용하는 GKE 클러스터에서 NCCL 실행
- A4X를 사용하는 커스텀 GKE 클러스터에서 NCCL 실행
- A4 또는 A3 Ultra를 사용하는 커스텀 GKE 클러스터에서 NCCL 실행
- Slurm 클러스터에서 NCCL 테스트 실행
- Cluster Director에서 NCCL 테스트 실행
테스트를 실행한 후 클러스터 문제를 해결하는 방법을 알아보려면 문제 해결을 위한 NCCL/gIB 로그 수집 및 이해를 참고하세요.