NVIDIA NCCL
NVIDIA Collective Communications Library (NCCL) は、NVIDIA GPU とネットワーク用に最適化されたマルチ GPU およびマルチノード通信プリミティブを実装します。NCCL は、 PCIe および NVLink高速インターコネクト上で高帯域幅と低遅延向けに最適化された、オールギャザー、オールリデュース、ブロードキャスト、リデュース、リデュース スキャッター、およびポイントツーポイントの送受信ルーチンを提供します。ノードとノード間の NVIDIA Mellanox ネットワーク。
Caffe2、Chainer、MxNet、PyTorch、TensorFlowなどの主要な深層学習フレームワークはすべて NCCL を統合し、マルチ GPU マルチノード システムでの深層学習トレーニングを高速化します。
NCCL は、NVIDIA HPC SDKの一部として、また Ubuntu および Red Hat 用の別個のパッケージとしてダウンロードできます。
パフォーマンス
NCCL を使用すると、開発者が特定のマシンに合わせてアプリケーションを最適化する必要がなくなり、便利になります。NCCL は、ノード内およびノード間の複数の GPU で高速な集約を提供します。
プログラムが簡単
NCCL は、さまざまなプログラミング言語から簡単にアクセスできるシンプルな C API を使用します。NCCL は、MPI (Message Passing Interface) によって定義された一般的な集合 API に厳密に従っています。
互換性
NCCL は、シングルスレッド、マルチスレッド (GPU ごとに 1 スレッド)、マルチプロセス (MPI と GPU でのマルチスレッド操作の組み合わせ) など、ほぼすべてのマルチ GPU 並列化モデルと互換性があります。
主な特徴
- AMD、ARM、PCI Gen4、および IB HDR 上の高帯域幅パスの自動トポロジ検出
- SHARPV2 を利用した運用では、ネットワーク内の最大 2 倍のピーク帯域幅が削減されます
- 最大の帯域幅と最小の遅延を備えた最適なリングおよびツリー セットをグラフ検索します。
- マルチスレッド、マルチプロセス アプリケーションをサポート
- InfiniBand Verbs、libfabric、RoCE、および IP ソケットのノード間通信
- InfiniBand適応ルーティングによりトラフィックを再ルーティングし、混雑したポートを緩和します。
リソース
- NVIDIA ディープラーニング SDK ドキュメント
- 技術ブログ: NCCL 2.4 を使用してディープ ラーニング トレーニングを大規模にスケールする
- 技術ブログ: NCCL 2.3 によるディープラーニング トレーニングのスケーリング
- 関連するライブラリとソフトウェア:
資力
- NVIDIA ディープラーニング SDK ドキュメント
- テクニカル ブログ: NCCL 2.4 を使用してディープ ラーニング トレーニングを大規模にスケールする
- テクニカル ブログ: NCCL 2.3 を使用したディープ ラーニング トレーニングのスケーリング
- 関連するライブラリとソフトウェア: