密ベクトルの類似検索とクラスタリングを効率化する、PythonバインディングとオプションのGPUアクセラレーションを備えたC++ライブラリ。
NVIDIA/raft
NVIDIA GPU上の機械学習、線形代数、情報検索向けに、CUDAで高速化したC++ヘッダーオンリーライブラリとPythonラッパーを提供します。
- スター
- 1,052
- フォーク
- 256
- 未解決の Issue
- 446
- 最終コミット
- 24 時間前
これは何?
RAFTは、機械学習や情報検索向けの基本的なアルゴリズムとプリミティブを提供するライブラリです。高性能なGPUアプリケーションの構成要素として利用できる、CUDAで高速化した実装を備えています。密・疎線形代数、ソルバー、統計とサンプリング、距離計算、データ形式の変換をカバーし、マルチノード・マルチGPUの通信基盤も含みます。
RAFTはC++のヘッダーオンリーテンプレートライブラリで、一般的なテンプレート型のコンパイル時間を短縮できるオプションの共有ライブラリもあります。また、CUDAコンパイラを必要としない、ホストから呼び出せるランタイムAPIを公開しています。メモリ管理にはCCCLまたはNVIDIA RMMのリソースを使い、入力にはmdspanビューと、所有権を持つmdarrayレイヤーを使用します。Pythonユーザー向けには、ランタイムAPIをラップし、__cuda_array_interface__をサポートする任意のオブジェクトを受け付けるpylibraftパッケージと、Daskクラスター上で分散GPUアルゴリズムを実行するraft-daskがあります。
RAFTは、探索的分析を行うデータサイエンティストではなく、ライブラリやアプリケーションを開発する人を対象としています。パッケージはConda経由で配布されており、CUDA 12および13向けには実験的な形でpip経由でも提供されています。
主な機能
- 01ヘッダーオンリーのC++テンプレートライブラリ。コンパイル時間を短縮するオプションの共有ライブラリも利用できます。
- 02CUDAコンパイラ不要でホストから呼び出せるランタイムAPI。
- 03密・疎線形代数、ソルバー、統計処理のプリミティブ。
- 04CuPy、PyTorch、Numba、cuDFと連携する、pylibraftによるPythonラッパー。
- 05Daskクラスター上でraft-daskを介して行う、マルチノード・マルチGPU通信。
ユースケース
- 大規模なシステムの一部として、GPUで高速化したベクトル検索や最近傍探索のコンポーネントを構築する。
- 検証済みの線形代数やリダクションのプリミティブを再利用して、独自のCUDAアルゴリズムを実装する。
- Daskを使って、複数ノードにまたがる分散GPUアルゴリズムを実行する。
- CUDAコードを書かずに、PythonからGPUプリミティブを呼び出す。
クイックスタート
- 1
conda で RAFT をインストール(CUDA 13)
mamba install -c rapidsai -c conda-forge raft-dask pylibraft cuda-version=13.3 - 2
または pip で pylibraft をインストール(CUDA 12)
pip install pylibraft-cu12
使う前に知っておきたいこと
- CUDA 対応の NVIDIA GPU が必要です。CPU のみのマシンでは使用できません。
- データサイエンスで直接利用するためではなく、低レベルのプリミティブ向けです。
- pip パッケージは実験的なもので、C++ ヘッダーは含まれていません。
収録されている特集
トピック
よくある質問
- raft とは?
- NVIDIA GPU上の機械学習、線形代数、情報検索向けに、CUDAで高速化したC++ヘッダーオンリーライブラリとPythonラッパーを提供します。 RAFTは、機械学習や情報検索向けの基本的なアルゴリズムとプリミティブを提供するライブラリです。高性能なGPUアプリケーションの構成要素として利用できる、CUDAで高速化した実装を備えています。密・疎線形代数、ソルバー、統計とサンプリング、距離計算、データ形式の変換をカバーし、マルチノード・マルチGPUの通信基盤も含みます。
- raft は無料で使えますか?ライセンスは?
- raft は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- raft は今もメンテナンスされていますか?
- 活発にメンテナンス中。raft の最終コミットは 2026年11月6日 です。
- raft は何に使えますか?
- 大規模なシステムの一部として、GPUで高速化したベクトル検索や最近傍探索のコンポーネントを構築する。 検証済みの線形代数やリダクションのプリミティブを再利用して、独自のCUDAアルゴリズムを実装する。 Daskを使って、複数ノードにまたがる分散GPUアルゴリズムを実行する。 CUDAコードを書かずに、PythonからGPUプリミティブを呼び出す。
- raft のインストール方法は?
- conda で RAFT をインストール(CUDA 13): mamba install -c rapidsai -c conda-forge raft-dask pylibraft cuda-version=13.3 または pip で pylibraft をインストール(CUDA 12): pip install pylibraft-cu12
- raft はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/NVIDIA/raft
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
NVIDIA GPU向けの高性能GEMMや関連する線形代数カーネルを記述するための、CUDA C++テンプレートライブラリとPython DSL。
NVIDIA GPUまたはマルチスレッドCPUで実行でき、カーネル融合にも対応した、NumPy風テンソル式のためのC++20ヘッダーオンリーライブラリ。
CPU、CUDA、OpenCLバックエンドを備え、数値計算や深層学習向けに設計された、Nim製の高速で使いやすいN次元テンソルライブラリ。
高次元の埋め込みベクトルをCPUで高速にクラスタリングする、scikit-learn風APIのPythonライブラリ。
グラフおよびツリーインデックスを使い、高次元ベクトルを高速に近似最近傍検索するC++ライブラリとCLI。