新闻中心

NVIDIA 推出 CUDA Rust:两条路线让 GPU 内核用 Rust 原生编写 NEWS DETAIL

当前位置:首页 > 新闻中心
资讯分类 · 新闻中心 作者 · 超级管理员 审核人 · 内容审核团队 发布时间 · 2026-09-10 更新时间 · 2026-09-10 来源 · 本站

NVIDIA 推出 CUDA Rust:两条路线让 GPU 内核用 Rust 原生编写

2026 年 9 月,NVIDIA 宣布推进 Rust 原生 GPU 编程。CUDA C++ 与 CUDA Python 已是成熟的企业级工具链,CUDA Rust 将作为新的前端路线持续完善到 2027 年及以后。

推动这一变化的是系统层代码的迁移:推理引擎、服务基础设施、驱动与智能体运行时越来越多用 Rust 编写——Nova Linux 驱动是 Rust 写的,NVIDIA Dynamo 采用 Rust 内核,NVTX 也提供了 Rust 绑定。但 GPU 内核本身通常仍需用其他语言编写,CUDA Rust 正是为填补这一空缺。

路线选择对应 CUDA 自身的两种编程模型。SIMT 沿用 CUDA C++ 的思路:描述单个线程做什么,然后启动成千上万个线程;Tile 是较新的模型,描述一个数据块做什么,具体映射交给 Tile IR 编译器。NVIDIA 的建议是优先选择 Tile,因为源码不必编码架构相关决策;需要自行管理内存与线程时再下探到 SIMT。

SIMT 路线的 cuda-oxide 是自定义 rustc codegen 后端,把 #[kernel] 函数经由 Rust MIR、Pliron IR 框架与 LLVM IR 编译到 PTX,其余代码交给标准后端。使用门槛包括 Linux、计算能力 8.0 以上的 GPU、CUDA 12.x 或更新版本、带 libclang 头文件的 clang 以及固定版本的 nightly 工具链,项目目前仍处于早期 alpha。

Tile 路线的 cutile-rs 工作层级更高,一块数据作为一个逻辑线程执行一次内核体。要求相对更轻:计算能力 8.0 以上的 GPU、CUDA 13.3、稳定版 Rust 1.89 或更新版本,不需要 nightly 与自备 LLVM。它已发布在 crates.io,并已被 HuggingFace 的 Grout 推理引擎与 mistral.rs 使用。

两条路线都把安全放在编译期:cuda-oxide 用 DisjointSlice 把一次可变借用拆成每线程独占的分片,并以 launch contract 校验启动配置;cutile-rs 通过张量分区与所有权保证每个块独占自己的子张量。NVIDIA 还计划支持 CUDA Rust、CUDA C++ 与 CUDA Python 之间的互操作,避免前端选型把项目锁进单一生态。