NVIDIA/raft
RAFT contains fundamental widely-used algorithms and primitives for machine learning and information retrieval. The algorithms are CUDA-accelerated and form building blocks for more easily writing high performance applications.
What it solves
RAFT は機械学習とデータマイニング向けの CUDA 加速基礎アルゴリズムとプリミティブのコレクションを提供します。コア計算の繰り返し実装という問題を、再利用可能なビルディングブロックを提供することで解決し、開発時間と保守負担を削減すると同時に、高性能アプリケーション向けの最適化を集中させます。
How it works
RAFT は C++ ヘッダーオンリーのテンプレートライブラリとして実装され、コンパイル時間短縮とランタイム API 提供のためにオプションの共有ライブラリも用意されています。RAPIDS Memory Manager (RMM) を利用してメモリ割り当てを行い、mdspan と mdarray を使って多次元データを表現します。これらのツールを様々な環境で利用できるように、2 つの Python ライブラリを提供しています:ランタイム API の軽量ラッパーである pylibraft と、Dask を介したマルチノード・マルチ GPU 分散アルゴリズム基盤である raft-dask です。
Who it’s for
データソース提供者やアプリケーション開発者向けに設計されており、ワークフローを加速する低レベルのプリミティブが必要な方に適しています。探索や実験を行うデータサイエンティストを対象とはしていません。
Highlights
- Broad Algorithmic Support: 密行列・疎行列の線形代数、ソルバー、統計、データ形式変換の加速関数を含みます。
- Interoperability:
pylibraftは__cuda_array_interface__をサポートし、CuPy、PyTorch、JAX、TensorFlow、RAPIDS cuDF とのゼロコピー統合が可能です。 - Distributed Computing: Dask を使用して複数ノード・複数 GPU にまたがる分散 GPU アルゴリズム構築のインフラを提供します。
- Flexible C++ Design: ヘッダーオンリーのテンプレート構造により、C++ プロジェクトへの統合が容易です。