8月18日消息,近日,一篇聚焦Rust语言GPU编程的最新研究论文显示,通过LLVM的卸载基础设施,Rust编写的GPU内核性能已能媲美手写优化的CUDA和HIP C++方案。
这套方案完全构建于LLVM后端与Rust编译器内部,无需依赖第三方组件。其编译器前端具备内存安全特性,绝大多数GPU内核无需使用裸指针即可完成开发。
Rust的所有权系统在编译期即可保证GPU内存安全,与CUDA中需要运行时调试的通信错误不同,Rust的借用检查器在编译阶段就能捕获这类问题。
基准测试在英伟达H100和AMD MI250X两款GPU上完成,采用RAJAPerf基准套件。在英伟达H100上,Rust内核的运行速度比原生CUDA快11%到慢46%不等,具体取决于工作负载。
分析这些性能差异的根源,主要来自寄存器压力与循环展开的适配度。Rust的平均寄存器压力略高于CUDA(33个寄存器对28个),在FIR、LTIMES等对循环展开敏感的微基准测试中差距最为明显。
研究团队表示,后续将通过代码生成优化和中间表示差异适配继续缩小剩余的性能差距。
该研究的核心价值在于证明了内存安全与高性能可以兼得,传统GPU编程为追求极致性能常需使用裸指针,而Rust方案在保持编译期内存安全保证的同时,实现了与手工优化C++代码竞争的性能。
该研究由曼努埃尔·S·德雷瓦尔德、马塞洛·多明格斯等五位学者共同完成,论文已发表于arXiv平台,完整研究论文可在该平台查阅(编号2608.13759)。
【本文来源:快•科技】
