给显卡写并行程序,过去常要在Rust之外另学一套写法,再处理两种语言之间的连接。NVlabs开源的cuda-oxide想把这段路拉直:开发者可在同一份文件里写CPU端代码和GPU内核——也就是交给显卡大量线程同时执行的小程序,再用一条cargo oxide build完成构建。
它保留Rust的类型检查和惯用写法,通过自定义rustc编译器后端,把标记为#[kernel]的函数逐步转成PTX——CUDA工具链使用的GPU中间指令。项目示例甚至允许内核接收会捕获外部变量的Rust闭包,编译器会将其具体化,并自动作为参数传给GPU。换句话说,它不是在Rust外面包一层DSL(专用小语言)或外语绑定,而是让Rust代码本身成为CUDA内核。
安全边界仍需留意:原始启动配置要求调用者用unsafe保证线程维度和资源匹配;带启动契约的内核才会生成经过检查的安全接口。项目目前处于alpha阶段,NVlabs明确提醒仍有缺陷、功能缺口和接口变动。