嵌入 Python 的编程语言,可将数值计算代码即时编译为 CPU 或 GPU(CUDA、Vulkan、Metal 等)上运行的高性能代码。
NVIDIA/cuda-rust
NVIDIA 推出的 Rust CUDA 平台,提供主机端运行时及 SIMT、Tile 两种 GPU 内核编程模型。
- Star
- 4,000
- Fork
- 362
- 未关闭 Issue
- 234
- 最近提交
- 昨天
这是什么?
CUDA Rust 让 Rust 开发者能够直接驱动 NVIDIA GPU。它包含基于 CUDA driver API 的主机端 crate,提供上下文、流、设备内存缓冲区、事件以及可组合的惰性异步操作,并配有两种设备端内核编程模型。
cuda-oxide 面向传统的 SIMT 模型,开发者编写逐线程代码,并自行管理线程、线程块和共享内存。它是一个自定义的 rustc 代码生成后端,将 Rust 提前编译为 PTX。cutile-rs 面向 Tile 模型,内核以多维张量的整块 tile 为单位进行运算,由编译器决定如何将工作映射到具体架构上,它是一个 proc-macro 插件,在首次启动时即时编译。
两种模型都把 Rust 的所有权规则延伸到 GPU 启动边界:可变缓冲区在启动前被划分为互不重叠的部分,不可变缓冲区则可以共享。项目目前处于早期研究阶段,功能尚不完整,API 可能发生变化。
核心功能
- 01提供 Rust 版主机端驱动绑定,包括上下文、流、设备内存和事件。
- 02SIMT 内核模型,支持显式线程与线程块索引,提前编译为 PTX。
- 03Tile 内核模型,基于张量分块运算,首次启动时即时编译。
- 04在内核启动边界上对设备缓冲区应用类似所有权的借用规则。
- 05两种模型的内核可在同一个流上共享设备缓冲区协同运行。
适用场景
- 用 Rust 编写自定义 GPU 内核,需要精细控制线程、warp 和共享内存时。
- 将密集张量或数值计算表达为 tile 运算,由编译器处理调度细节。
- 基于共享运行时 crate 构建可组合的异步 GPU 计算流程。
收录于专题
标签
常见问题
- cuda-rust 是什么?
- NVIDIA 推出的 Rust CUDA 平台,提供主机端运行时及 SIMT、Tile 两种 GPU 内核编程模型。 CUDA Rust 让 Rust 开发者能够直接驱动 NVIDIA GPU。它包含基于 CUDA driver API 的主机端 crate,提供上下文、流、设备内存缓冲区、事件以及可组合的惰性异步操作,并配有两种设备端内核编程模型。
- cuda-rust 可以免费使用吗?用的什么许可证?
- cuda-rust 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- cuda-rust 还在维护吗?
- 活跃维护中。cuda-rust 最近一次提交是在 2026年11月6日。
- cuda-rust 适合用来做什么?
- 用 Rust 编写自定义 GPU 内核,需要精细控制线程、warp 和共享内存时。 将密集张量或数值计算表达为 tile 运算,由编译器处理调度细节。 基于共享运行时 crate 构建可组合的异步 GPU 计算流程。
- 在哪里获取 cuda-rust?
- 源代码和安装说明在 GitHub 上:https://github.com/NVIDIA/cuda-rust
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
2.8万+2 本周2392C++Apache-2.0更新于 上个月
一个仅含头文件的 C++ 库,用任务图编写任务并行程序,支持多线程与 CUDA GPU。
1.2万+6 本周1418C++Other维护活跃更新于 23天前
一款 Python 性能分析器,可逐行统计 CPU、GPU 和内存消耗,并可选生成 AI 优化建议。
1.4万+13 本周446PythonApache-2.0维护活跃更新于 6天前
面向消费级 GPU 与异构机器的 C++ 大模型推理服务,结合投机解码、投机预填充与定制内核。
2977+12 本周290C++Apache-2.0维护活跃更新于 19小时前
面向 NVIDIA GPU 的 CUDA C++ 模板库与 Python DSL,用于编写高性能矩阵乘法等线性代数内核。
1.1万+26 本周2171C++Other更新于 昨天