NVIDIA/cccl

CUDA Core Compute Libraries

何を解決するか

CUDA C++開発者は、高性能な並列アルゴリズムと標準ライブラリの抽象化が必要ですが、これらは以前は複数の独立したライブラリに分散されていました。CCCLはこれらの重要な構成要素を1つのリポジトリに統合し、開発を簡素化し、安全で効率的かつポータブルなCUDAコードを書くことを容易にします。

仕組み

CCCLはヘッダーのみのコレクションで、3つのコアライブラリを統合しています。

  • Thrust: 高レベルのC++並列アルゴリズムライブラリで、GPUとマルチコアCPU間での生産性向上とパフォーマンスのポータビリティを提供します。
  • CUB: より低レベルでCUDAに特化したライブラリで、「光の速さ」の並列アルゴリズムに焦点を当てており、カスタムカーネル用のデバイス全体および協調的(ブロック単位/ワープ単位)なビルディングブロックを提供します。
  • libcudacxx: CUDA C++標準ライブラリで、ホストコードとデバイスコードの両方でC++標準ライブラリの機能を実装し、アトミック操作や同期プリミティブなどのCUDA固有のハードウェア機能に対する抽象化を提供します。

対象ユーザー

NVIDIA GPU上で並列計算を行うために標準化された、高性能なツールセットを必要とするCUDA C++開発者。

主な特徴

  • 統合リポジトリ: Thrust、CUB、libcudacxxを1つに統合し、より一貫した開発体験を提供します。
  • ヘッダーのみ: 事前にコンパイルされたバイナリを必要とせず、ビルドシステムへの統合が簡単です。
  • パフォーマンスのポータビリティ: 異なるGPUアーキテクチャ間で効率的に実行できるようにし、一部のケースではマルチコアCPUでも動作します。
  • 広範な互換性: 複数のCUDA Toolkitバージョン、ホストコンパイラ(GCC、MSVC)、C++方言(C++17、C++20)をサポートします。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch
  • プロジェクト