- 博客(10)
- 资源 (1)
- 收藏
- 关注
原创 AMD KFD ioctls分析9-1: doorbell机制
是一种单向事件通知机制,类似现实中的门铃 —— 当主机(CPU)需要向 GPU 发送任务时,通过写入门铃寄存器(Doorbell Register)“按下按钮”,GPU 检测到该操作后自动处理新任务。是一种轻量级的异步通知技术,用于高效协调 CPU 与 GPU 之间的命令提交和任务调度。其核心思想是通过特定寄存器操作触发硬件响应,避免传统轮询或中断带来的高开销。amd的kgd和kfd是一套驱动,所以doorbell资源是共用的,这个从。表示kfgd使用的数量,剩下的就是给kfd的。的赋值代码可以看出,
2025-07-01 23:04:59
540
原创 mmap 匿名映射
mmap匿名映射是一种高效的内存管理机制,主要用于分配大块连续虚拟地址空间。其核心特点包括:1)直接分配页对齐内存(通常4KB);2)返回零初始化的连续虚拟地址空间;3)适用于大内存分配(如超过128KB)和进程间共享。与malloc相比,mmap更底层,需手动释放(munmap),但避免了内存碎片问题。典型应用包括GPU显存映射、零拷贝数据传输等高性能场景。示例代码展示了如何通过MAP_ANONYMOUS标志创建1MB匿名映射区域,并实现读写操作。该机制通过虚拟地址到物理内存的映射,为需要大块连续内存的应
2025-06-26 15:08:37
354
原创 GPU中的event机制之signal page的通俗解释
摘要:信号页的工作原理可以用餐厅订单看板来类比。信号页是GPU(服务员)和用户程序(厨师)共享的内存区域(看板),GPU通过写入特定位置(放订单纸条)来触发事件,程序定期检查(看板)并处理相应事件(做菜)。这种方式避免了直接交互,实现高效通信(0.5秒快速响应)、并行处理(多订单不冲突)和简洁协作。本质上,信号页就是让硬件和软件通过共享内存区域进行异步通信的机制。
2025-06-23 20:46:41
209
原创 地址空间中的Aperture的通用定义与规则详解
孔径是 GPU 内存寻址的 “地址路由表”,通过基址、限制、Mtype 和 ATC 位定义了地址范围的行为规则。64KB 对齐、禁止跨孔径和重叠等规则,本质上是为了硬件高效性和系统安全性。FLAT_* 指令的硬件检测与 S_LOAD 的驱动层约束,共同确保内存访问的合法性。孔径是 GPU 内存寻址中的关键概念,用于定义一段连续的虚拟地址范围,并指定其对应的内存类型和转换规则,可以理解为一段具有特定属性的地址空间。所有孔径(包括 SUA 和 DUA)的基址和限制地址必须满足。
2025-06-18 20:08:07
855
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人