NCCL은 단일 노드 및 멀티 노드 학습을 위한 all-reduce, all-gather 등의 최적화된 GPU 통신 프리미티브를 제공하는 NVIDIA 라이브러리입니다.
openucx/ucc
CPU, GPU 및 하드웨어 가속기에서 allreduce, broadcast 같은 연산을 구현해 HPC와 AI 워크로드를 지원하는 통합 collective communication 라이브러리 및 API입니다.
- 스타
- 322
- 포크
- 132
- 열린 이슈
- 103
- 마지막 커밋
- 그저께
어떤 프로젝트인가요?
UCC는 collective communication 연산을 위한 라이브러리이자 API입니다. allreduce와 broadcast처럼 병렬 프로그램이 동기화에 사용하는 다중 프로세스 간 데이터 교환을 지원합니다. HPC, AI/ML 및 I/O 워크로드를 위해 설계되었으며, 하나의 인터페이스로 여러 프로그래밍 모델과 런타임을 지원하는 것을 목표로 합니다.
이 라이브러리는 nonblocking collective, 한 번 초기화한 뒤 여러 번 호출할 수 있는 반복 실행 연산, 유연한 리소스 할당 모델을 제공합니다. 하드웨어 collective를 설계의 핵심 요소로 다룹니다. UCC는 UCX의 UCS 유틸리티를 기반으로 하며, 지원 전송 방식으로 InfiniBand, RoCE, shared memory, SHARP, CUDA, NCCL, RCCL 및 MLX5를 명시합니다.
UCC는 Open MPI의 collective 구성 요소로 사용할 수 있습니다. README에는 mpirun 매개변수를 통해 MPI 및 OpenSHMEM 프로그램에서 UCC를 활성화하는 방법이 나와 있습니다. autotools로 빌드하며 UCX가 필요하고, CUDA 및 HIP 지원은 선택 사항입니다.
핵심 기능
- 01여러 프로그래밍 모델을 지원하는 nonblocking collective 연산입니다.
- 02한 번 초기화한 뒤 여러 번 호출할 수 있는 반복 실행 collective입니다.
- 03SHARP 및 InfiniBand, RoCE, MLX5 전송 방식을 통한 하드웨어 collective를 지원합니다.
- 04CUDA, NCCL, HIP 및 RCCL을 지원하는 GPU collective입니다.
- 05런타임 매개변수를 통한 Open MPI 및 OpenSHMEM 통합입니다.
활용 사례
- 다중 노드 HPC 애플리케이션에서 allreduce 및 broadcast를 가속합니다.
- InfiniBand 또는 RoCE를 통한 GPU collective로 분산 AI/ML 학습을 실행합니다.
- Open MPI 또는 OpenSHMEM 프로그램의 collective 백엔드로 UCC를 활성화합니다.
빠른 시작
- 1
저장소를 클론하고 해당 디렉터리로 이동합니다
- 2
빌드 스크립트를 생성합니다
./autogen.sh - 3
UCX 설치 경로를 지정해 빌드를 구성합니다
./configure --prefix=<ucc-install-path> --with-ucx=<ucx-install-path> - 4
라이브러리를 컴파일합니다
make
사용 전 알아둘 점
- 먼저 UCX를 빌드하고 설치해야 합니다.
- README에는 소스에서 빌드하는 방법만 안내되어 있으며, 패키지 관리자를 통한 설치 방법은 없습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- ucc은(는) 무엇인가요?
- CPU, GPU 및 하드웨어 가속기에서 allreduce, broadcast 같은 연산을 구현해 HPC와 AI 워크로드를 지원하는 통합 collective communication 라이브러리 및 API입니다. UCC는 collective communication 연산을 위한 라이브러리이자 API입니다. allreduce와 broadcast처럼 병렬 프로그램이 동기화에 사용하는 다중 프로세스 간 데이터 교환을 지원합니다. HPC, AI/ML 및 I/O 워크로드를 위해 설계되었으며, 하나의 인터페이스로 여러 프로그래밍 모델과 런타임을 지원하는 것을 목표로 합니다.
- ucc은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- ucc은(는) BSD-3-Clause 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- ucc은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. ucc의 마지막 커밋은 2026년 11월 5일입니다.
- ucc은(는) 어디에 사용할 수 있나요?
- 다중 노드 HPC 애플리케이션에서 allreduce 및 broadcast를 가속합니다. InfiniBand 또는 RoCE를 통한 GPU collective로 분산 AI/ML 학습을 실행합니다. Open MPI 또는 OpenSHMEM 프로그램의 collective 백엔드로 UCC를 활성화합니다.
- ucc는 어떻게 설치하나요?
- 저장소를 클론하고 해당 디렉터리로 이동합니다 빌드 스크립트를 생성합니다: ./autogen.sh UCX 설치 경로를 지정해 빌드를 구성합니다: ./configure --prefix=<ucc-install-path> --with-ucx=<ucx-install-path> 라이브러리를 컴파일합니다: make
- ucc은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/openucx/ucc
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
HGEMM, FP8/FP4 GEMM, Flash-Attention을 다루는 200개 이상의 커널이 포함된 최신 CUDA 학습 노트 오픈소스 책 및 코드 모음입니다.
NVIDIA GPU 또는 멀티스레드 CPU에서 실행되는 NumPy 스타일 텐서 표현식과 선택적 커널 퓨전을 지원하는 C++20 헤더 전용 라이브러리입니다.
PyTorch, JAX, XGBoost 등 다양한 프레임워크에서 분산 AI 모델 학습과 LLM 파인튜닝을 지원하는 Kubernetes 네이티브 플랫폼입니다.
Transformer 모델의 GPU 학습과 추론을 위한 메모리 효율적인 exact attention 커널 FlashAttention의 공식 구현입니다.