Asahi Linux 计划使用 Rust 编写 Apple 芯片的 GPU 驱动程序

出品|开源中国

Linux 上的 Apple M1 和 M2 支持 最大障碍之一是当前缺乏 GPU 加速,Asahi Linux 一直在对 Apple M 系列芯片的图形处理器进行逆向工程,早期实验在 macOS 和 Asahi Linix 的 m1n1 环境下进行,下一步计划则是编写 Direct Rendering Manager (DRM) 内核驱动程序。

而据外媒 Phoronix 报道,Asahi Linix 的核心开发者 Asahi Lina 正在探索用 Rust 编程语言编写该 DRM 内核 GPU 驱动程序的可行性。

Asahi Lina 在邮件列表中解释道:

我开始为 Apple AGX (针对 M1 和 M2 系列芯片) 开发一个新的内核 GPU 驱动程序。

这些 GPU 运行固件并具有相当复杂的共享内存数据结构,需要由主机管理,因此我一直倾向于 Rust,它具有安全性、更好的元编程和通用表达能力。

我有一个用 Python 编写的原型驱动程序,但更高级的语言对于对 GPU 进行逆向工程,以及为驱动程序设计不同的工作方式非常有帮助。

我意识到这是 Linux 上 Rust 语言的早期阶段,这是一个雄心勃勃的挑战,但我愿意学习,驱动程序需要一些时间才能稳定到任何一种方式(尤其是 UAPI)都可以上游的程度,

我听说 Rust For Linux 最迟将在接下来的几个内核周期中被合并,因此用 Rust 写 Linux 驱动感觉不像以前那样是一场赌博。

如果成了,这将是第一个用 Rust 语言编写的 Linux 内核 GPU 驱动程序。鉴于目前尚未有 Rust 编写的实际驱动程序代码,驱动程序的 Rust 实现有几种可能性:完全使用 Rust 实现(涉及 DRM 子系统的渲染部分),或者只是大部分固件交互逻辑在 Rust 中完成,然后顶层驱动程序用 C 编写并调用 Rust 抽象层。目前仍有待观察。

有关使用 Rust 写 Apple GPU 驱动的详细描述,可以通过 rust-for-linux 邮件列表 找到。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章