Rust CUDA 项目重启
Rust CUDA 项目在休眠三年多后重启,该项目能让开发者用 Rust 编写并运行 CUDA 内核,借助 NVVM IR 在 NVIDIA GPU 上直接执行代码。
- 短期目标成果
- 更新 Rust 工具链:此前依赖旧版 Rust 编译器(nightly-2021-12-04),新贡献者 @jorge-ortega 将其更新到 nightly-2025-03-02,提升了与 Rust 生态系统的兼容性并能使用新语言特性,此过程参考了 @apriori 在 2022 年的草案 PR。
- 支持最新 CUDA 工具包:NVIDIA 最新 CUDA 工具包为 12.x,之前 Rust CUDA 仅支持 11.x 且在 12.x 上会报错。@jorge-ortega 成功测试,@Schmiedium 更新版本检查,@LegNeato 将 12.x 集成到 CI,但因测试有限和代码库完善中,对 12.x 的支持仍为实验性。
- 修复 CI:项目 CI 因三年未维护出现问题,@jorge-ortega、@Schmiedium 和 @LegNeato 修复格式、警告、依赖、代码和链接错误,虽因缺 NVIDIA GPU 无法运行 GPU 测试,但 CI 为后续开发提供保障。
- 合并 PR:合并 2022 年以来超 16 个旧 PR,修复内存安全问题、增加内存管理功能、优化 API、支持获取设备 UUID 等;重启后合并超 22 个新 PR,来自 7 位新贡献者。
- 清理项目:@LegNeato 清理项目,关闭过时问题和无关 PR,添加 GitHub 标签提升项目可发现性。
- 未来规划:研究 Rust 与 C++ 的互操作性,简化 CUDA 主机和库集成;与其他 Rust CUDA 项目合作,整合主机端工具和工作流程;与 rustc PTX 后端团队协作,探索共享基础设施及从 NVVM IR 转换到 PTX 的可行性;借助 rust-gpu 的工具和编译器基础设施减少重复工作。
- 与其他项目的关系
- Rust GPU:与 Rust CUDA 类似,面向 Vulkan GPU,使用 SPIR-V。长期愿景是合并开发者 API,提供统一的 GPU 编程体验,两项目有共同维护者。
- rustc PTX backend:Rust 编译器的实验性 nvptx 后端生成 CUDA 的 PTX IR,计划与之协作,探索互补或集成方式。
- cudarc:为 Rust 中的 CUDA 编程提供主机端抽象,将探索与 Rust CUDA 的互操作或整合方式。
Github 仓库:https://github.com/rust-gpu/rust-cuda
Rust 1.85.1 发布
Rust 团队发布了 Rust 的 1.85.1 版本
- 修复内容
- 修复联合文档测试编译问题:在稳定的 2024 版中,由于实现方面的漏洞,联合文档测试无法正常工作。rustdoc 受功能稳定性的内部错误影响,自动回退到 “未合并” 的方法,而不是预期的方式。在 1.85.1 版本中,这些错误已得到修复,联合文档测试编译的性能提升得以实现。详细的风险分析等内容可查看相关回溯问题。
- 修复其他回归问题:1.85.1 版本还修复了 1.85.0 版本引入的一些问题,包括:
- 在生成文档时放宽部分
target_feature
检查 - 修复 Windows 1607 系统上
std::fs::rename
函数的错误 - 降级引导程序
cc
以修复自定义目标 - 从源 tar 包构建 Rust 时跳过子模块更新
- 在生成文档时放宽部分
可以执行命令 rustup update stable
更新到最新版本。
GCC 15 迎来重大 Rust 更新合并
GCC 15 迎来重大 Rust 更新合并 —— 集成了 Polonius 借用检查器
今天发布了大约 145 个针对 Rust “gccrs” 前端的补丁,随后在即将发布的 GCC 15.1 稳定版之前被合并到了 GCC 的 Git 仓库中。
今天,一大组 gccrs 补丁被合并,旨在为即将发布的 GCC 15 编译器版本增强 Rust 前端功能。这一轮补丁中最重要的是将 Polonius 借用检查器添加到了编译器中。 来自恩倍科公司(Embecosm)的亚瑟・科恩(Arthur Cohen)在提交所有这些补丁之前的补丁系列中解释道: “这个补丁集是四个规模相近的补丁集的第一个,目的是将我们对 Rust 前端的最新更改同步到上游。
我们计划在 GCC 15.1 发布之前,每周向上游推送小的补丁集。
这个首个补丁集的主要变化是在编译器中添加了 Polonius 借用检查器,以及一般情况下与外部函数接口(FFI)相关和与 Rust crate 交互所需的所有基础设施。因此,现在要构建 GCC 的 Rust 前端,需要安装 Rust 编程语言。提醒一下,这个变化是暂时的,我们正在努力支持足够多的语言特性,以便能够自行满足我们的需求。
这个补丁集还从 C 前端汲取灵感,增加了对内联汇编的一些支持。此外,在支持 Rust 标准库方面也有许多更改,例如处理更多的属性、处理负特性实现、内置派生宏等等。
在接下来的几天里,我会跟进发布接下来的三个补丁集。”
对于 gccrs 来说,这是令人兴奋的时刻,这使得这个 Rust 前端作为基于 LLVM 的官方 Rust 编译器的替代方案,正变得越来越实用。
--
From 日报小组 Yuan YQ
社区学习交流平台订阅:
评论区
写评论还没有评论