【Rust日报】2025-08-14 《在内核中编写 Rust GPU 驱动系列:GPU 如何工作》

💡 原文中文,约2200字,阅读约需6分钟。
📝

内容提要

文章介绍了Tyr Rust GPU驱动系列的第二篇,重点讲解了Arm Mali CSF GPU在Linux内核中的运作,用户态驱动UMD与内核态驱动KMD的协作,以及Tyr提供的紧凑ioctl接口。同时提到Asahi Linux在GPU驱动方面的进展,强调了上游化和性能优化的重要性。

🎯

关键要点

  • 文章介绍了Tyr Rust GPU驱动系列的第二篇,聚焦Linux内核中Arm Mali CSF GPU的运作原理。
  • 用户态驱动UMD负责将Vulkan指令转换为GPU可执行的命令缓冲,内核态驱动KMD承担GPU内存分配、作业调度等核心任务。
  • Tyr提供的紧凑ioctl接口包括设备查询、虚拟内存与缓冲对象管理等五大类别。
  • Asahi Linux是一个开源项目,旨在让Linux原生运行在苹果的Apple Silicon Mac设备上,已在GPU驱动、音频支持等方面取得显著进展。
  • Asahi Linux的Mesa驱动程序已完全集成到上游,消除了对下游补丁的依赖,标志着图形栈的全面上游化完成。
  • 随着Mesa驱动程序的上游化,性能优化工作迅速推进,显著提升了GPU性能。
  • Mesa 25.2新增对VK_EXT_map_memory_placed的支持,使得WINE能够在AArch64上运行32位Windows应用程序。
  • Linux 6.16引入了SPMI控制器驱动程序,音频相关补丁已合并,为上游化支持扬声器铺平道路。
  • Asahi Linux团队在上游化方面取得显著进展,目前下游补丁数量已降至1000以下,超过20%的补丁成功上游化。
  • Dioxus-leaflet为Rust框架Dioxus提供易用的Leaflet地图组件,适合旅游、实时定位等场景。
  • Rust库封装App Store Server API与通知验证,支持沙盒/生产环境。
  • Typst-WASM是一个零后端浏览器即时PDF生成器,支持嵌入文件和Node同API。

延伸问答

Arm Mali CSF GPU在Linux内核中的主要功能是什么?

Arm Mali CSF GPU在Linux内核中负责GPU内存分配、作业调度和命令队列提交等核心任务。

用户态驱动UMD和内核态驱动KMD之间的协作是怎样的?

用户态驱动UMD负责将Vulkan指令转换为GPU可执行的命令缓冲,而内核态驱动KMD则处理内存分配和作业调度等任务。

Tyr提供的ioctl接口包含哪些功能?

Tyr提供的紧凑ioctl接口包括设备查询、虚拟内存与缓冲对象管理、调度组生命周期及作业提交等五大类别。

Asahi Linux在GPU驱动方面取得了哪些进展?

Asahi Linux在GPU驱动方面已实现Mesa驱动程序的全面上游化,消除了对下游补丁的依赖,并显著提升了GPU性能。

Mesa 25.2版本新增了什么重要功能?

Mesa 25.2新增对VK_EXT_map_memory_placed的支持,使得WINE能够在AArch64上运行32位Windows应用程序。

Asahi Linux团队在上游化方面的成就是什么?

Asahi Linux团队已将下游补丁数量降至1000以下,超过20%的补丁成功上游化,标志着项目的成熟。

➡️

继续阅读