raft
RAFT 包含機器學習與資訊檢索領域中基本且廣泛使用的演算法與基礎元件。這些演算法經過 CUDA 加速,構成撰寫高效能應用程式的基礎元件。
raft 是什麼?
RAFT 包含機器學習與資訊檢索領域中基本且廣泛使用的演算法與基礎元件。這些演算法經過 CUDA 加速,構成撰寫高效能應用程式的基礎元件。
raft 概覽
這是什麼
RAFT(Reusable Accelerated Functions and Tools)是一個 C++ 標頭檔唯讀的模板函式庫,內含機器學習與資料探勘中廣泛使用的基本演算法與基礎元件。這些演算法經過 CUDA 加速,可作為建構高效能應用程式的積木。RAFT 也提供兩個 Python 函式庫:pylibraft(輕量級 Python 包裝,封裝主機可存取的執行時期 API)與 raft-dask(用於在 Dask 上建構多節點多 GPU 分散式演算法的通訊基礎設施)。
主要功能
- CUDA 加速的機器學習與資訊檢索演算法與基礎元件。
- 以基礎元件為核心的方法,加速演算法建構並降低維護負擔。
- C++ 標頭檔唯讀模板函式庫,可選用共享函式庫以加快編譯時間並提供執行時期 API。
- 透過 mdspan 與 mdarray 支援多維陣列,並使用 CCCL 或 RMM 的記憶體資源進行記憶體管理。
- Python 函式庫:pylibraft 提供輕量級 Python 包裝,raft-dask 支援分散式多 GPU 運算。
- 透過 cuda_array_interface 與 DLPack 與其他函式庫(CuPy、PyTorch、JAX、TensorFlow、cuDF)互通。
使用情境
- 建構高效能 CUDA 加速的機器學習與資料探勘應用程式。
- 加速資訊檢索演算法與工作流程。
- 使用可重複使用的基礎元件開發自訂演算法,涵蓋稠密與稀疏運算、求解器、統計與工具。
- 使用 Dask 進行多節點多 GPU 分散式運算。
快速開始
請參閱儲存庫的 README 以取得安裝說明。該函式庫提供 C++ 與 Python API。以下是使用 C++ API 計算成對距離的簡短範例: ```c++ #include #include #include #include raft::device_resources handle; int n_samples = 5000; int n_features = 50; auto input_view = raft::make_device_matrix_view(input, n_samples, n_features); auto labels_view = raft::make_device_vector_view(labels, n_samples); auto output_view = raft::make_device_matrix_view(output, n_samples, n_samples); raft::random::make_blobs(handle, input_view, labels_view); auto metric = cuvs::distance::DistanceType::L2SqrtExpanded; cuvs::
內容整理自該專案公開的 README 與儲存庫資訊。