< 返回版块

Yuan YQ 发表于 2025-03-19 11:32

Rust CUDA 项目重启

Rust CUDA 项目在休眠三年多后重启,该项目能让开发者用 Rust 编写并运行 CUDA 内核,借助 NVVM IR 在 NVIDIA GPU 上直接执行代码。

  1. 短期目标成果
    • 更新 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 标签提升项目可发现性。
  2. 未来规划:研究 Rust 与 C++ 的互操作性,简化 CUDA 主机和库集成;与其他 Rust CUDA 项目合作,整合主机端工具和工作流程;与 rustc PTX 后端团队协作,探索共享基础设施及从 NVVM IR 转换到 PTX 的可行性;借助 rust-gpu 的工具和编译器基础设施减少重复工作。
  3. 与其他项目的关系
    • 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 版本

  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

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页