이 문서에서는 Google Cloud 서비스의 NCCL 원격 분석을 수집하는 라이브러리인 Collective Communication Analyzer (CoMMA)를 설명합니다. NCCL 원격 분석은 실행 중에 NCCL이 생성하는 성능 측정항목과 운영 이벤트를 수집합니다. NVIDIA Collective Communication Library (NCCL)은 병렬로 실행되는 GPU와 분산 컴퓨팅 시스템 간의 고성능 통신을 가속화합니다. 이 고성능 통신은 딥 러닝 및 고성능 컴퓨팅 (HPC)에 특히 유용합니다.
NCCL 버전 2.23 이상에서는 개발자가 NCCL 집단 작업 중에 원격 분석을 수집하기 위해 함수 콜백을 등록할 수 있는 NCCL 프로파일러 플러그인 API가 도입되었습니다. Google에서는 NVIDIA의 NCCL 프로파일러 플러그인 API를 사용하여 Google Cloud 서비스의 NCCL 원격 분석을 수집하는 라이브러리인 Collective Communication Analyzer (CoMMA)를 제공합니다. CoMMA는 일부 이미지에 자동으로 설치되고 사용 설정되지만, CoMMA를 사용 중지하거나 다시 사용 설정하거나 수동으로 설치하고 사용 설정하여 데이터 수집을 제어할 수도 있습니다.
CoMMA가 사용 설정된 이미지
A4X Max, A4X, A4, A3 Ultra, A3 Mega, A3 High (8 GPU) 머신 유형의 경우 NCCL Google 인프라 번들 (gIB) 플러그인을 패키징하는 이미지를 사용하면 CoMMA가 설치되고 자동으로 사용 설정됩니다. 다음 이미지에는 NCCL gIB 플러그인이 포함되어 있습니다.
- containerd 포함 Container-Optimized OS (cos_containerd) 노드 이미지: Google Kubernetes Engine (GKE)은 이러한 이미지를 사용하여 GKE Autopilot 클러스터를 만듭니다. CoMMA 바이너리는
/home/kubernetes/bin/gib디렉터리에서 사용할 수 있습니다. - 딥 러닝 소프트웨어 레이어 컨테이너 이미지: GKE 클러스터에 AI 및 ML 프레임워크와 라이브러리를 배포하고 구성하는 데 사용됩니다.
이미지를 사용하고 CoMMA가 NCCL 원격 분석을 수집하지 못하도록 하려면 CoMMA 사용 중지를 참고하세요. 하지만 지연 감지와 같은 기능이 작동하려면 CoMMA가 사용 설정되어 있어야 합니다. 이러한 이미지를 사용하지 않고 CoMMA가 NCCL 원격 분석을 수집하도록 하려면 CoMMA 설치를 참고하세요.
이점
CoMMA가 수집하는 NCCL 원격 분석은 GPU 통신에서 성능 병목 현상(특히 지연자)을 식별하는 데 도움이 됩니다. CoMMA는 집단 통신 작업의 지연 시간 히스토그램과 같은 세부 데이터를 수집합니다. 그러면 진단 서비스가 이 데이터를 처리하고 사용하여 지연자를 정확히 찾아낼 수 있습니다.
CoMMA를 사용하여 원격 분석을 수집하면 다음과 같은 이점이 있습니다.
지연 감지에 필요: CoMMA는 세부적인 NCCL 원격 분석을 수집하여 GPU 간 통신에서 성능 병목 현상이나 지연을 식별합니다. CoMMA는 대규모 AI 및 ML 학습 워크로드의 문제를 식별하고 해결하는 데 도움이 되는 자세한 NCCL 원격 분석을 제공합니다.
예를 들어 CoMMA는 NCCL 작업에 사용된 알고리즘을 캡처합니다. 이 정보는 성능 분석 및 조정에 유용합니다. 워크로드와 시스템 구성에 따라 알고리즘의 성능 특성이 크게 달라질 수 있기 때문입니다.
CoMMA는 최적 이하의 성능 및 오류 문제 해결에도 도움이 됩니다. TCP, RDMA, 스위치 패브릭과 같은 하위 수준 전송 계층에서 발생하는 오류를 특정 NCCL 집합 및 시작 노드로 추적합니다.
오버헤드가 적은 추적: CoMMA는 활성 NCCL 원격 분석 수집 중에 최소한의 컴퓨팅 리소스를 사용하므로 대규모 언어 모델 (LLM) 학습과 같이 성능에 민감하고 장기 실행되는 머신러닝 워크로드에 적합합니다.
NCCL 원격 분석 범위 확대: CoMMA는 NCCL 프로파일러 플러그인 API를 사용합니다. 이 API는 전송 기반 플러그인에 비해 더 광범위한 NCCL 원격 분석을 수집합니다. 전송 기반 플러그인은 주로 네트워크 하드웨어 및 네트워크 프로토콜을 통한 데이터 전송을 비롯한 기본 네트워크 전송에 관한 원격 분석을 수집합니다. 프로파일러 플러그인은 집단 통신, 프록시 작업, 데이터 전송 타이밍 등 NCCL의 통신 작업에 관한 원격 분석을 수집합니다.
CoMMA 작동 방식 이해하기
애플리케이션 런타임 중에 NCCL은 LD_LIBRARY_PATH 환경 변수로 지정된 위치에 설치된 CoMMA 라이브러리를 자동으로 로드합니다. 그러면 CoMMA가 NCCL 원격 분석을 수집하고 다른 Google 서비스에서 이를 사용할 수 있습니다. 선택적으로 이 데이터를 로컬 파일 시스템으로 내보낼 수도 있습니다.
다음 단계
- CoMMA를 사용 설정, 사용 중지, 구성하는 방법을 알아봅니다.
- CoMMA 문제 해결 방법을 알아보세요.
- 지연된 사용자 감지 및 해결 방법을 알아보세요.