NCCL/gIB를 사용하여 클러스터 네트워킹 최적화

최신 머신러닝 프레임워크는 GPU 간 통신 기본 요소에 NVIDIA Collective Communications Library (NCCL)을 사용하는 경우가 많습니다.

Google의 향상된 NCCL 버전은 NCCL/gIB라고 하며 Google Cloud의 A3 Ultra, A4, A4X VM에서 사용할 수 있습니다. NCCL/gIB는 Google 인프라에서 업스트림 NCCL보다 성능이 더 뛰어난 경우가 많습니다. NCCL 성능은 전체 워크로드 성능에 영향을 줄 수 있으므로 NCCL/gIB를 사용하는 것이 좋습니다.

NCCL/gIB에는 다음과 같은 Google 전용 기능과 최적화가 포함되어 있습니다.

  • gIB 네트워크 플러그인은 Google 네트워크에서 부하 분산을 개선하여 집단 작업 중에 처리량이 높고 지연 시간이 짧은 상태를 더 일관되게 유지합니다.
  • Google Cloud VM에서 최적의 조정 옵션을 선택하는 맞춤 튜너 플러그인
  • CoMMA 프로파일러 플러그인은 워크로드에 대한 자세한 성능 측정항목과 진단 데이터를 제공합니다.

NCCL/gIB 아키텍처

NCCL/gIB는 이 다이어그램에 표시된 대로 머신러닝 프레임워크 및 클러스터의 NVIDIA GPU와 상호작용하여 성능을 최적화하고 원격 분석을 수집합니다.

ML 워크로드는 NVIDIA GPU와 NCCL에 모두 연결되는 ML 프레임워크로 관리되며, NCCL은 다양한 Google 도구 및 플러그인에 연결됩니다.

NCCL/gIB 사용의 이점

안정성 문제 없이 Google Cloud VM에서 업스트림 NVIDIA Collective Communications Library를 사용할 수 있지만 NCCL/gIB는 Google Cloud 에 더 최적화되어 있으며 동일한 NCCL 매개변수를 사용하더라도 특정 통신 패턴의 성능 차이가 매우 클 수 있습니다.

예를 들어 다음 그래프는 AllReduce 성능에 대한 업스트림 NCCL과 NCCL/gIB를 비교한 것입니다. NCCL/gIB는 특정 메시지 크기에서 업스트림 NCCL보다 최대 12배 더 우수합니다.

NCCL/gIB가 AllReduce 작업에서 업스트림 NCCL보다 성능이 우수함을 보여주는 그래프

백그라운드 트래픽이 없는 A3 Ultra (H200)를 사용한 32노드 NCCL AllReduce 성능

백그라운드 트래픽이 있는 AllGather 성능에서 NCCL/gIB와 업스트림 NCCL을 비교한 결과도 이 그래프에 표시된 것처럼 NCCL/gIB가 더 큰 메시지 크기에서 업스트림 NCCL보다 약 50% 더 우수합니다.

NCCL/gIB가 AllGather 작업에서 업스트림 NCCL보다 성능이 우수함을 보여주는 그래프

노이즈가 많은 백그라운드가 있는 공유 패브릭에서 A3 Ultra (H200)를 사용하는 32노드 NCCL AllGather 성능

또한 CoMMA 프로파일러 플러그인은 Google에 개선된 맞춤 원격 분석을 제공하여 워크로드 수준 문제가 발생할 경우 Google에서 더 나은 지원을 제공할 수 있도록 합니다.

NCCL/gIB 사용

클러스터에서 NCCL/gIB 테스트를 실행하려면 다음 목록에서 요구사항에 가장 적합한 페이지를 선택하세요.

테스트를 실행한 후 클러스터 문제를 해결하는 방법을 알아보려면 문제 해결을 위해 NCCL/gIB 로그 수집 및 이해를 참고하세요.