NVIDIA推出cuda-oxide 实验性Rust‑CUDA编译后端 直接生成PTX提升GPU开发效率
•44 阅读•5分钟•前沿
NVIDIACUDARustPTX
•44 阅读•5分钟•前沿
发布概览
NVIDIA AI实验室在2026年5月10日正式开源 cuda-oxide v0.1.0。该项目提供一个自定义的 rustc codegen 后端,将标记为 #[kernel] 的 Rust 函数通过 Stable MIR → Pliron IR → LLVM IR → PTX 流水线直接编译为 CUDA PTX,省去传统的 C++/CUDA 编写或 Python‑Triton 抽象层。
技术实现
- 编译管线:
Rust source → rustc_frontend → Stable MIR (rustc_public) → dialect‑mir → dialect‑llvm → LLVM IR (.ll) → llc (NVPTX) → PTX (.ptx)。使用 Stable MIR 保证跨 Nightly 版本的兼容性。 - Pliron:全 Rust 实现的 MLIR‑like 中间层,定义了
dialect-mir、dialect-llvm与dialect-nvvm三大方言,实现从 MIR 到 LLVM 的无缝转换,整个过程无需 C++ 编译链。 - 单源编译:主机代码与设备 kernel 同文件,
cargo oxide通过-Z codegen-backend=librustc_codegen_cuda.so自动分流:带有cuda_oxide_kernel__前缀的函数走 cuda‑oxide 流程,其余交由标准 LLVM 后端。 - 安全模型:
- Tier 1:通过
DisjointSlice与ThreadIndex实现写入竞争自动消除,无需unsafe。 - Tier 2 与 Tier 3:提供受限的共享内存、warp 原语以及高级 Tensor Memory Accelerator (TMA) 接口,需显式
unsafe并附安全合约。
- Tier 1:通过
使用指南
- 环境要求:Ubuntu 24.04、CUDA Toolkit 12.x、LLVM 21+(带 NVPTX 后端)以及 Rust nightly (2026‑04‑03)。
- 安装步骤:
sudo apt install llvm-21 clang-21 libclang-common-21-dev rustup toolchain install nightly-2026-04-03 rustup component add rust-src rustc-dev --toolchain nightly-2026-04-03 git clone https://github.com/NVlabs/cuda-oxide.git cd cuda-oxide cargo install --git https://github.com/NVlabs/cuda-oxide.git cargo-oxide cargo oxide doctor # 检查依赖完整性 - 编写 kernel:在
.rs文件中使用#[kernel]注解,例如:use cuda_device::{kernel, thread, DisjointSlice}; #[kernel] pub fn scale(input: &[f32], factor: f32, mut out: DisjointSlice) { let idx = thread::index_1d(); if let Some(elem) = out.get_mut(idx) { *elem = input[idx.get()] * factor; } } - 编译运行:
生成的
cargo oxide run vecadd # 自动生成 host binary 与 vecadd.ptx.ptx文件会被 CUDA 驱动在运行时加载。
业界意义
cuda‑oxide 将 Rust 的安全抽象 与 CUDA 的高性能计算 直接对接,突破了以往必须在 C++ 与 Python 之间切换的尴尬局面。对 AI 研究者而言,可在同一代码库中实现模型前向算子、数据预处理甚至自定义激活函数,保持语言统一性并享受 Rust 编译期检查的安全保障。与此同时,NVIDIA 通过开源实验性后端展示了对 开源 GPU 生态 的持续投入,预计将在未来的深度学习框架(如 PyTorch、TensorFlow)以及专用推理库中提供更丰富的 Rust 接口。
“Rust 的所有权模型与 CUDA 的并行执行模型天然匹配,cuda‑oxide 的出现或将成为高性能 AI 应用开发的新范式。” — NVIDIA AI Labs 研发负责人
后续计划包括对 Hopper、Blackwell 系列 GPU 的高级指令(TMA、WGMMA)支持以及在 LLVM 22 上的进一步性能调优,届时可望在生成的 PTX 代码中实现接近手写 CUDA 的吞吐量。
本文是对第三方新闻源的主观解读。消息可能出现过时、不准确、歧义或错误的地方,仅供参考使用。点击此处查看消息源。