microsoft/msccl
Microsoft Collective Communication Library
해결하는 문제
MSCCL은 분산 기계학습에서 일반적인 집합 통신 알고리즘의 비효율성을 해결합니다. 서로 다른 하드웨어 토폴로지(가속기 간 연결 방식)와 버퍼 크기는 각각 다른 지연과 대역폭을 가지므로, 일괄적인 접근 방식은 성능을 최대화하기 어렵습니다. MSCCL은 특정 하드웨어 구성에 맞게 최적화된 통신 패턴을 사용자가 구현하고 실행할 수 있도록 합니다.
작동 방식
NVIDIA의 NCCL 위에 구축된 MSCCL은 사용자 정의 집합 통신 알고리즘을 실행하는 런타임 프레임워크입니다. MSCCL 툴킷과 함께 작동하며, 고수준 도메인 특화 언어(MSCCLang)와 컴파일러를 제공합니다. 컴파일러는 이러한 사용자 정의 알고리즘을 XML 형식의 중간 표현(IR)으로 변환하고, MSCCL 런타임이 백엔드에서 이를 실행합니다. 사용자 정의 알고리즘이 제공되지 않으면 시스템은 자동으로 표준 NCCL 일반 알고리즘으로 전환합니다.
대상 사용자
이 도구는 Azure NDv4와 같은 여러 가속기(예: GPU)를 사용한 대규모 분산 AI 학습에 종사하는 연구자 및 엔지니어를 위한 것입니다. 하드웨어 간 연결의 성능을 극대화해야 하는 분들에게 적합합니다.
주요 특징
- 사용자 정의 프로그래밍 가능성: 특정 토폴로지와 버퍼 크기용 최적화된 통신 알고리즘을 생성할 수 있습니다.
- 성능 향상: 8xA100 NVLink 시스템과 같은 특정 구성에서는 일반 NCCL 대비 2~3배의 속도 향상을 달성할 수 있습니다.
- 통합 프로파일링: NPKit를 포함하여 전송 버블 네트워크를 식별할 수 있는 세부적인 전송 및 수신 작업 타임라인을 제공합니다.
- PyTorch 통합: PyTorch 환경에서 기본 NCCL을 MSCCL로 교체할 수 있는 경로를 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트