Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

English | 中文版

总结

ascend-rs 项目证明了在 NPU 编程领域实现内存安全是可行的,而且不需要牺牲性能。通过 Rust 的所有权系统、生命周期和 RAII 模式,我们在编译期消除了一整类内存安全错误——而这在传统的 C++ NPU 编程中只能依赖程序员的经验和纪律。

从 Hello World 到向量化 softmax 内核,我们看到了一个从源码到 NPU 执行的完整流程:Rust 源码 → MLIR 中间表示 → 带 AscendC 向量指令的 C++ → NPU 二进制 → 设备执行 → 安全的结果回传。在 Ascend 910B3 硬件上 413 个测试全部通过(0 失败、0 崩溃),基准测试证实 Rust 向量化内核完全匹配手工优化的 C++ 性能——零额外开销。实验性的 PTOAS 代码生成路径(第 7.1.2 节)进一步展示了 Tile 级操作可以用安全的 Rust 表达,并通过 PTO 虚拟指令集编译,由 ptoas 汇编器自动插入同步屏障。

随着 ascend_compile crate 的引入,ascend-rs 的影响力已扩展到 Rust 内核开发者之外。通过提供带有 C ABI 和 Python 绑定的独立、经过验证的编译库,该项目使更广泛的昇腾生态系统——TileLang、Triton、PyTorch 以及未来的编译器框架——能够共享同一个经过充分测试的编译后端。同样的验证检查能力(捕获缺失的同步屏障和缓冲区溢出)现在保护着来自任何来源的内核。

方向是明确的:为每一位昇腾 NPU 用户带来安全保障,无论他们是编写 Rust 内核、Python DSL 还是集成编译器工具链——并在此过程中使整个生态系统更加可靠。


关于项目

ascend-rs 在华为 Boyle 研究中心内部开发,目前正在等待开源发布决定。如果你对内存安全的 NPU 编程或合作感兴趣,请联系作者。


作者: Yijun Yu