众力资讯网

关于 NVIDIA 开始推进 CUDA Rust 这件事~ NVIDIA 宣布

关于 NVIDIA 开始推进 CUDA Rust 这件事~

NVIDIA 宣布进一步推进 CUDA Rust,现在能直接用 Rust 编写 GPU Kernel,并将其编译为 PTX 了。

熟悉 CUDA 编程方式、想要保留更多底层控制权的开发者,可以选择 cuda-oxide 这条路线。它延续了 SIMT 编程模型,开发者可以自行管理线程和内存。cutile-rs 路线则采用 Tile 模型,开发者只要描述数据块的计算逻辑便好,编译器会自行处理线程映射和内存布局,从而减少开发者对底层执行细节的手动管理。

这两条路线目前还处于早期阶段。NVIDIA 表示会持续完善相关的工具链,并推进 CUDA Rust 与 CUDA C++、CUDA Python 之间的互操作。

在 Hacker News 上,相关讨论很快从 CUDA Rust 延伸到了 CUDA。目前这个讨论帖子已有 600 points、220 条评论。

一部分开发者认为,写 GPU Kernel 还是要保留足够的底层控制;也有人提到 Triton,认为更高层的工具已经能减少不少开发工作。除此之外,Rust 的所有权和内存安全机制能在 GPU 编程中发挥多大作用,以及现阶段工具链是否足够成熟,也是评论区讨论比较多的问题。

比较有争议点的还是 CUDA 的厂商绑定。 有评论指出,一旦代码库深度依赖 CUDA,之后想迁移就很难轻装上阵;要兼顾其他平台,又得处理不同硬件和工具链之间的差异。

不过,下面也有人解释了自己为什么愿意用 CUDA:手动启动 Kernel 要照顾的细节太多,很容易出错。CUDA 能把 grid、参数和 Kernel 调用放在一个表达式里,让编译器参与检查。这种便利,是他们看重的地方。

HackerNews NVIDIA CUDA Rust GPU编程