Repolode
openucx

openucx/ucc

HPCやAIのワークロード向けに、CPU、GPU、ハードウェアアクセラレータ間でallreduceやbroadcastなどを実行する、統合的な集合通信ライブラリおよびAPIです。

スター
322
フォーク
132
未解決の Issue
103
最終コミット
昨日

これは何?

UCCは、並列プログラムが連携するために使うallreduceやbroadcastなど、複数プロセス間のデータ交換を行う集合通信操作向けのライブラリおよびAPIです。HPC、AI/ML、I/Oのワークロード向けに設計されており、単一のインターフェースで複数のプログラミングモデルやランタイムに対応することを目指しています。

ライブラリは、ノンブロッキング集合通信、一度初期化して繰り返し呼び出せる操作、柔軟なリソース割り当てモデルを提供します。ハードウェアによる集合通信を設計の中核に据えています。UCCはUCXのUCSユーティリティを基盤とし、InfiniBand、RoCE、共有メモリ、SHARP、CUDA、NCCL、RCCL、MLX5などのトランスポートをサポートします。

UCCはOpen MPIの集合通信コンポーネントとして利用でき、READMEではmpirunのパラメーターを使ってMPIおよびOpenSHMEMプログラムで有効にする方法を説明しています。autotoolsでビルドでき、UCXが必要です。CUDAとHIPのサポートはオプションです。

主な機能

  • 01複数のプログラミングモデルに対応するノンブロッキング集合通信操作。
  • 02一度初期化すれば、複数回呼び出せる集合通信操作。
  • 03SHARPおよびInfiniBand、RoCE、MLX5のトランスポートを通じたハードウェア集合通信。
  • 04CUDA、NCCL、HIP、RCCLに対応したGPU集合通信。
  • 05ランタイムパラメーターを使ったOpen MPIおよびOpenSHMEMとの連携。

ユースケース

  • マルチノードHPCアプリケーションでallreduceやbroadcastを高速化する。
  • InfiniBandまたはRoCE上でGPU集合通信を使い、分散AI/ML学習を実行する。
  • Open MPIまたはOpenSHMEMプログラムの集合通信バックエンドとしてUCCを有効にする。

クイックスタート

  1. 1

    リポジトリをクローンして、そのディレクトリに移動します

  2. 2

    ビルドスクリプトを生成します

    ./autogen.sh
  3. 3

    UCXのインストール先を指定してビルドを設定します

    ./configure --prefix=<ucc-install-path> --with-ucx=<ucx-install-path>
  4. 4

    ライブラリをコンパイルします

    make

使う前に知っておきたいこと

  • 事前にUCXをビルドしてインストールしておく必要があります。
  • READMEにはソースからのビルド方法のみ記載されており、パッケージマネージャーを使ったインストール方法はありません。

収録されている特集

トピック

#collectives#hpc#mpi#gpu#infiniband#distributed-computing#cuda#deep-learning#openshmem#pgas

よくある質問

ucc とは?
HPCやAIのワークロード向けに、CPU、GPU、ハードウェアアクセラレータ間でallreduceやbroadcastなどを実行する、統合的な集合通信ライブラリおよびAPIです。 UCCは、並列プログラムが連携するために使うallreduceやbroadcastなど、複数プロセス間のデータ交換を行う集合通信操作向けのライブラリおよびAPIです。HPC、AI/ML、I/Oのワークロード向けに設計されており、単一のインターフェースで複数のプログラミングモデルやランタイムに対応することを目指しています。
ucc は無料で使えますか?ライセンスは?
ucc は BSD-3-Clause ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
ucc は今もメンテナンスされていますか?
活発にメンテナンス中。ucc の最終コミットは 2026年11月5日 です。
ucc は何に使えますか?
マルチノードHPCアプリケーションでallreduceやbroadcastを高速化する。 InfiniBandまたはRoCE上でGPU集合通信を使い、分散AI/ML学習を実行する。 Open MPIまたはOpenSHMEMプログラムの集合通信バックエンドとして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学習ノートとコードのオープンソース書籍。

学習リソース#cuda#gpu#tensor-cores
1.2万+17 今週1275CudaGPL-3.0更新 一昨日

採用したカーネルを次世代の参照カーネルへ昇格させながら、CUDAとCuTe DSLのカーネルを最適化する自己進化型GPUカーネルエージェント。

AI・機械学習#gpu#cuda#cute-dsl
282+212 今週39PythonApache-2.0更新 3 日前