NVIDIA推出cuda-oxide 实验性Rust‑CUDA编译后端 直接生成PTX提升GPU开发效率

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-mirdialect-llvmdialect-nvvm 三大方言,实现从 MIR 到 LLVM 的无缝转换,整个过程无需 C++ 编译链。
  • 单源编译:主机代码与设备 kernel 同文件,cargo oxide 通过 -Z codegen-backend=librustc_codegen_cuda.so 自动分流:带有 cuda_oxide_kernel__ 前缀的函数走 cuda‑oxide 流程,其余交由标准 LLVM 后端。
  • 安全模型
    • Tier 1:通过 DisjointSliceThreadIndex 实现写入竞争自动消除,无需 unsafe
    • Tier 2Tier 3:提供受限的共享内存、warp 原语以及高级 Tensor Memory Accelerator (TMA) 接口,需显式 unsafe 并附安全合约。

使用指南

  1. 环境要求:Ubuntu 24.04、CUDA Toolkit 12.x、LLVM 21+(带 NVPTX 后端)以及 Rust nightly (2026‑04‑03)。
  2. 安装步骤
    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   # 检查依赖完整性
    
  3. 编写 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;
        }
    }
    
  4. 编译运行
    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 的吞吐量。

本文是对第三方新闻源的主观解读。消息可能出现过时、不准确、歧义或错误的地方,仅供参考使用。点击此处查看消息源。