恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

第 1 章 SDMA 是什么:GPU 里的异步搬运工

  • 首页
  • 资讯中心
  • /
  • 第 1 章 SDMA 是什么:GPU 里的异步搬运工

相关资讯

WindowsCleaner 完整教程:免费C盘清理工具3步上手与定时自动清理配置指南 2026/8/18 10:13:43
雅思写作高分攻略:从逻辑框架到实战提分策略 2026/8/18 10:13:43
网盘直链下载助手速成:3步把六大网盘批量下载接入本地下载器 2026/8/18 10:13:43

最新资讯

大气层Atmosphere稳定版安装攻略:15分钟解锁Switch自制生态,从注入到超频一次讲透
T-UEM三级统一能源计量架构:从字节跳动总部能碳治理看大型园区的计量闭环设计
分布式AI治理的拜占庭攻击防御:从共识算法到实战架构
键盘鼠标可视化神器 Keyviz 快速上手:3 步设置,让每次按键都被看见
免费给老Mac续命:OpenCore Legacy Patcher 升级最新macOS 完整避坑教程
注册表、LaunchAgent、systemd:察元AI文档助手三平台 MCP 常驻方案

今日推荐

数据缺失处理:从MCAR、MAR到MNAR的机制解析与多重插补实践
MAGS-SLAM:多智能体协同3D高斯泼溅SLAM系统解析
LLM智能体记忆管理:基于关键词门控的混合激活机制CAMeR详解

本周热门

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码
【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码
隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

第 1 章 SDMA 是什么:GPU 里的异步搬运工

发布时间:2026/8/18 10:13:43
第 1 章 SDMA 是什么:GPU 里的异步搬运工 本章目标先在脑子里建立SDMA 是什么、为什么需要它、它到底干哪几件事的直觉。读完本章你应该能用一句话向别人解释 SDMA。1.1 一句话定义SDMASystem DMA是 GPU 上一组独立于图形GFX和计算Compute引擎之外的专用DMA 引擎负责在后台异步地搬运数据和更新页表。“System DMA” 里的 System强调它擅长在系统内存system memory与显存VRAM之间搬运数据DMADirect Memory Access则说明它不需要 CPU 逐字节参与拷贝。1.2 为什么需要一个专用的 DMA 引擎在没有 SDMA 的世界里往显存里搬数据有两条笨路CPU 亲自搬memcpy通过 PCIe BAR 一个字一个字地写显存。慢、占用 CPU、还会阻塞主线程。让 GFX 引擎搬图形引擎当然也能做拷贝但它是主力干活的让它去搬数据等于让主厨去端盘子——占用了宝贵的图形/计算吞吐。SDMA 的价值就体现在三个词上异步asynchronous提交任务后 CPU 立刻返回去干别的搬运在后台进行。并行parallelSDMA 与 GFX/Compute 是物理上独立的硬件单元可以真正同时工作。渲染的同时预取下一帧纹理就是靠它。卸载offload把纯搬运工作从 CPU 和 GFX 上卸下来各司其职。一个经典类比GFX 引擎是主厨SDMA 是传菜和备料的帮工。主厨专心炒菜渲染/计算帮工在旁边不停地把食材纹理、buffer、页表搬到该在的位置两者互不打断。1.3 SDMA 到底干哪几件事在 amdgpu 驱动里SDMA 主要承担三类职责。记住这三件事后面所有章节都是围绕它们展开职责一内存拷贝 / 填充Copy Fill最本职的工作——把一块内存的数据搬到另一块或者用某个值填满一块内存。典型场景BOBuffer Object在system memory ↔ VRAM之间迁移TTM 子系统做显存腾挪时的数据搬运清零一块新分配的显存。对应驱动里的amdgpu_buffer_funcsemit_copy_buffer/emit_fill_buffer详见第 11 章。职责二页表更新Page Table UpdateGPU 有自己的虚拟内存VM和多级页表。当一段 GPU 虚拟地址的映射发生变化时——比如新分配、迁移、解除映射——需要把新的PTE/PDE页表项写进显存里的页表结构。这件事也交给 SDMA 来做因为页表更新本质上就是往特定地址写一批数据正是 DMA 的强项它可以异步进行不打断正在运行的计算任务SDMA 甚至有专门的页表操作指令PTEPDE一条命令批量更新连续页表项。对应驱动里的amdgpu_vm_pte_funcscopy_pte/write_pte/set_pte_pde详见第 12 章。这也是 SDMA 与内存管理、SVM 产生联系的关键。职责三作为一条标准队列参与调度Ring / IBSDMA 并不是一个给个地址就搬的黑盒它对外表现为一条或多条ring环形命令队列。驱动把要它干的活儿编成一串命令packet写进 ring硬件从 ring 里取出命令依次执行。这意味着 SDMA 完整地融入了 amdgpu 的通用队列基础设施用ring buffer传递命令用IBIndirect Buffer间接缓冲区承载较大的命令流用fence通知任务完成接入GPU scheduler参与统一调度。这一层是理解软件实现的钥匙详见第 6 章、第 8 章。1.4 与其它搬运方式的对比搬运方式是否占用 CPU是否占用 GFX是否异步典型用途CPU memcpy走 BAR是否否小数据、初始化GFX 引擎拷贝否是是与渲染耦合的搬运SDMA否否是大块搬运、页表更新、迁移结论很直接只要是纯搬运或页表维护且希望不打断计算/渲染就应该走 SDMA。1.5 一张图先建立全局观amdgpu 驱动doorbell 通知SDMA 硬件引擎 (多实例)读取命令流 → 执行 拷贝/填充/页表写 → 触发 fence 中断BO 迁移 / TTMVM 页表更新通用提交buffer_funcsvm_pte_funcsring/IB 提交SDMA ring 命令队列图里的每一个方框后面都会有专门的章节展开。现在你只需要记住这个从上层用例汇聚到ring再交给硬件执行的大致流向。1.6 本章小结SDMA 是 GPU 上独立、异步、专用的 DMA 引擎与 GFX/Compute 并行工作。它干三件事① 内存拷贝/填充 ② 页表更新 ③ 作为 ring 参与调度。它存在的意义是把纯搬运和页表维护从 CPU、GFX 上卸载下来让各引擎各司其职。页表更新这一职责是 SDMA 连接到VM / SVM 内存管理的桥梁是本系列的重点伏笔。下一章预告我们进入硬件模型看看 ring buffer 的 RPTR/WPTR 指针、doorbell 敲门机制以及一个实例两条队列的硬件由来——这些概念是理解软件实现的物理基础。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号