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 來表示多維資料。為了讓不同環境都能使用,RAFT 提供兩個 Python 套件:pylibraft 為執行時 API 的輕量封裝,raft-dask 則提供透過 Dask 的多節點、多 GPU 分散式演算法基礎建設。
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++ 專案。