Repolode
NVIDIA

NVIDIA/raft

面向 NVIDIA GPU 的 CUDA 加速可复用基础算法与原语库,涵盖机器学习、线性代数和信息检索。

Star
1,052
Fork
256
未关闭 Issue
446
最近提交
18小时前

这是什么?

RAFT 提供机器学习与信息检索中常用的基础算法和原语,实现基于 CUDA 加速,可作为编写高性能 GPU 应用的构建模块。内容涵盖稠密与稀疏线性代数、求解器、统计与采样、距离计算、数据格式转换,并包含多节点多 GPU 通信基础设施。

RAFT 是以 C++ 头文件为主的模板库,同时提供可选的共享库,可缩短常见模板类型的编译时间,并提供无需 CUDA 编译器即可调用的主机端运行时 API。内存管理基于 CCCL 或 NVIDIA RMM 资源,输入使用 mdspan 视图,并提供拥有内存的 mdarray 封装。Python 用户可使用 pylibraft 包装运行时 API,它接受任何支持 __cuda_array_interface__ 的数组对象;raft-dask 则用于在 Dask 集群上构建分布式 GPU 算法。

RAFT 面向开发库和应用的工程师,而非用于探索性分析的数据科学家。软件包可通过 Conda 安装,也提供面向 CUDA 12 和 13 的实验性 pip 包。

核心功能

  • 01以 C++ 头文件为主的模板库,可选共享库以加快编译。
  • 02提供无需 CUDA 编译器即可调用的主机端运行时 API。
  • 03包含稠密与稀疏线性代数、求解器和统计等原语。
  • 04通过 pylibraft 提供 Python 封装,可与 CuPy、PyTorch、Numba、cuDF 互操作。
  • 05借助 raft-dask 在 Dask 集群上实现多节点多 GPU 通信。

适用场景

  • 在更大的系统中构建 GPU 加速的向量检索或最近邻组件。
  • 编写自定义 CUDA 算法时复用已有的线性代数与归约原语。
  • 借助 Dask 在多节点上运行分布式 GPU 算法。
  • 在 Python 中调用 GPU 原语,无需编写 CUDA 代码。

快速上手

  1. 1

    通过 conda 安装 RAFT(CUDA 13)

    mamba install -c rapidsai -c conda-forge raft-dask pylibraft cuda-version=13.3
  2. 2

    或通过 pip 安装 pylibraft(CUDA 12)

    pip install pylibraft-cu12

使用前须知

  • 需要支持 CUDA 的 NVIDIA GPU,无法在纯 CPU 设备上使用。
  • 它面向底层原语,而非直接用于数据科学探索。
  • pip 安装包为实验性质,且不包含 C++ 头文件。

收录于专题

标签

常见问题

raft 是什么?
面向 NVIDIA GPU 的 CUDA 加速可复用基础算法与原语库,涵盖机器学习、线性代数和信息检索。 RAFT 提供机器学习与信息检索中常用的基础算法和原语,实现基于 CUDA 加速,可作为编写高性能 GPU 应用的构建模块。内容涵盖稠密与稀疏线性代数、求解器、统计与采样、距离计算、数据格式转换,并包含多节点多 GPU 通信基础设施。
raft 可以免费使用吗?用的什么许可证?
raft 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
raft 还在维护吗?
活跃维护中。raft 最近一次提交是在 2026年11月6日。
raft 适合用来做什么?
在更大的系统中构建 GPU 加速的向量检索或最近邻组件。 编写自定义 CUDA 算法时复用已有的线性代数与归约原语。 借助 Dask 在多节点上运行分布式 GPU 算法。 在 Python 中调用 GPU 原语,无需编写 CUDA 代码。
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

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目