HPCやAIのワークロード向けに、CPU、GPU、ハードウェアアクセラレータ間でallreduceやbroadcastなどを実行する、統合的な集合通信ライブラリおよびAPIです。
NVIDIA/nccl
NCCLは、単一ノードおよびマルチノードの学習向けに、all-reduceやall-gatherなどの最適化されたGPU通信プリミティブを提供するNVIDIAのライブラリです。
- スター
- 5,213
- フォーク
- 1,475
- 未解決の Issue
- 466
- 最終コミット
- 4 日前
これは何?
NCCL(「ニッケル」と発音)は、GPU向けの独立した集合通信ルーチンライブラリです。all-reduce、all-gather、reduce、broadcast、reduce-scatterに加え、send/receiveベースのあらゆる通信パターンを実装しています。分散ディープラーニングのように、多数のGPU間で高速にデータをやり取りする必要があるワークロードを対象としています。
NCCLは、ノード内ではPCIe、NVLink、NVSwitch経由、ノード間ではInfiniBand VerbsまたはTCP/IPソケット経由の高帯域通信に最適化されています。1台のマシン内でも複数ノードにまたがる場合でも、任意の数のGPUをサポートし、単一プロセスとマルチプロセス(例: MPI)のどちらのアプリケーションでも動作します。
このリポジトリには、ビルド用のmakeターゲットを備えたライブラリのソースコードのほか、Debian、RPM、汎用tarball、Python wheel向けのパッケージング方法が含まれています。テストは別のnccl-testsリポジトリにあります。
主な機能
- 01all-reduce、all-gather、reduce、broadcast、reduce-scatterの集合通信を実装
- 02ノード内または複数ノード間で任意の数のGPUをサポート
- 03PCIe、NVLink、NVSwitch、InfiniBand Verbs、TCP/IPソケットを利用
- 04単一プロセスおよびマルチプロセス(例: MPI)のアプリケーションで動作
- 05ソースからビルドでき、deb、rpm、tarball、Python wheelとしてパッケージ化可能
ユースケース
- マルチGPU分散ディープラーニングの学習における勾配同期
- HPCジョブで多数のGPU間のテンソルを交換
- 付属のnccl-testsスイートを使ったインターコネクト帯域幅のベンチマーク
クイックスタート
- 1
NVIDIAの開発者向けページから公式のNCCLビルドをダウンロードします
- 2
ソースからライブラリをビルドします
make -j src.build
使う前に知っておきたいこと
- メタデータではライセンスが明確に指定されていないため、使用前にリポジトリのライセンス条件を確認してください。
- ソースからビルドするには、CUDA Toolkitがインストールされており、NVIDIA GPUが必要です。
収録されている特集
トピック
よくある質問
- nccl とは?
- NCCLは、単一ノードおよびマルチノードの学習向けに、all-reduceやall-gatherなどの最適化されたGPU通信プリミティブを提供するNVIDIAのライブラリです。 NCCL(「ニッケル」と発音)は、GPU向けの独立した集合通信ルーチンライブラリです。all-reduce、all-gather、reduce、broadcast、reduce-scatterに加え、send/receiveベースのあらゆる通信パターンを実装しています。分散ディープラーニングのように、多数のGPU間で高速にデータをやり取りする必要があるワークロードを対象としています。
- nccl は無料で使えますか?ライセンスは?
- nccl は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- nccl は今もメンテナンスされていますか?
- 活発にメンテナンス中。nccl の最終コミットは 2026年11月3日 です。
- nccl は何に使えますか?
- マルチGPU分散ディープラーニングの学習における勾配同期 HPCジョブで多数のGPU間のテンソルを交換 付属のnccl-testsスイートを使ったインターコネクト帯域幅のベンチマーク
- nccl のインストール方法は?
- NVIDIAの開発者向けページから公式のNCCLビルドをダウンロードします ソースからライブラリをビルドします: make -j src.build
- nccl はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/NVIDIA/nccl
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
NVIDIAが提供するPyTorch拡張。混合精度・分散学習用ユーティリティを備え、CUDAおよびC++の融合カーネルも利用できます。
NVIDIA GPUまたはマルチスレッドCPUで実行でき、カーネル融合にも対応した、NumPy風テンソル式のためのC++20ヘッダーオンリーライブラリ。
AWSクラスターで分散AIの学習と推論を実行するためのリファレンスアーキテクチャ、テンプレート、サンプル。
HGEMM、FP8/FP4 GEMM、Flash-Attentionを網羅する200以上のカーネルを収録した、最新のCUDA学習ノートとコードのオープンソース書籍。