※この記事はアフィリエイト広告を含みます
NVIDIA官方!Rust直接GPU代码转换的『CUDA-oxide』横空出世!
📰 新闻概览
- NVIDIA实验室推出了一款实验性编译器“cuda-oxide”,可以用Rust语言编写SIMT(单一指令多线程)GPU内核。
- 无需使用自定义DSL(领域特定语言)或外部绑定,标准的Rust代码可以直接编译为PTX(NVIDIA GPU指令集)。
- 目前已发布v0.1.0早期Alpha版,支持Rust的类型系统、所有权管理,甚至通过async/.await实现异步执行。
💡 重要要点
- 纯Rust编译器: 采用自定义的
rustc代码生成后端,在保持Rust安全性的同时,能够编写GPU内核。 - 异步GPU编程: 将GPU的操作构建为“DeviceOperation”图,并可以在
tokio等运行时中使用.await等待结果。 - 宏集成: 通过使用
#[cuda_module]和#[kernel]等属性,可以将设备二进制文件无缝嵌入到主机执行文件中。
🦈 鲨鱼的视角(策展人的观点)
NVIDIA终于认真对待“Rust on GPU”了!之前需要复杂的封装和自定义DSL,而CUDA-oxide作为rustc的后端运行,实在是极具革命性!将Rust强大的类型系统和所有权模型直接带入GPU的并行计算中,绝对是解决CUDA开发内存安全问题的最强武器!尤其是可以使用async/.await编写GPU的流管理设计,对现代开发者来说简直是个福音。虽然目前还处于Alpha版,但它具备改变C++主导CUDA开发格局的潜力!
🚀 接下来会如何发展?
Rust将推动高性能且安全的AI库和物理模拟的开发迅速发展。那些因C++开发成本而犹豫的Rust工程师们,将纷纷加入GPU计算,生态系统预计将大幅扩展!
💬 鲨鱼的简短感想
这正是兼顾安全与高效的海洋霸主之进化!快来亲自体验一下吧!
📚 术语解释
-
PTX: NVIDIA GPU上运行的低级指令集,类似于汇编语言的角色。
-
SIMT: 单一指令多线程的缩写,指的是GPU特有的并行处理方式,可以同时执行大量线程。
-
codegen: 将程序的源代码转换为机器可理解的形式(如二进制)的处理过程。