news 2026/10/31 6:33:38

第十章 GPU 虚拟地址空间管理:10.2 GPU 虚拟地址空间演进与职责划分

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第十章 GPU 虚拟地址空间管理:10.2 GPU 虚拟地址空间演进与职责划分

GPU 地址空间的管理方式由两项因素决定:硬件提供怎样的地址转换,以及地址的分配、映射与驻留在内核与用户态之间如何分工。随着硬件从全局地址翻译表发展到每上下文独立的页表,DRM 的寻址模型先后经历了提交时定址、每进程 VM 下的预先绑定和 VM_BIND 三种形态。每一次演进都把一部分工作从提交路径中移出,同时要求内核在提交之外长期维护更多的状态。本篇按演进顺序梳理三种形态各自解决的问题与遗留的问题,归纳 GPU 虚拟地址管理需要承担的职责,并据此说明 drm_gpuvm 与驱动之间的职责划分。

1. 提交时定址

1.1 全局地址空间与重定位

早期 GPU 只有一张全局地址翻译表,即 GART,Intel 称为 GTT。它把分散的物理页映射为 GPU 地址空间中的连续区间,所有进程共享这一个地址空间。地址只能由内核统一分配,通常由 drm_mm 管理;BO 在其中的位置以及是否被迁移,用户态都无从得知。

用户态构造命令时又必须引用 BO 的地址,由此形成重定位(relocation)机制。用户态在命令中为地址预留占位,并随提交附带一张重定位表,逐条说明“本 BO 的某个偏移处引用了哪个 BO 的哪个位置”。内核在提交时放置每个 BO、确定其地址,再把地址回填到命令缓冲区中,过程如图 10.2.1 所示。i915 的 execbuffer 与 radeon 的 CS 都采用这一模型。

图 10.2.1
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/31 6:27:29

SpriteKit 2D游戏入门:掌握场景与节点、动作及碰撞检测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/31 6:26:56

Delphi 13 迁移实战:Ehlib 12.0.035 安装配置与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/31 6:26:33

ESP32-S3与C3 Mini选型指南:PSRAM、USB差异与采购核对清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/31 6:25:19

RK3576嵌入式开发踩坑记:从U-Boot到设备树的实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/31 6:25:12

工业触控芯片选型:从电容感应原理到抗油污粉尘盐雾的工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华