Glossary
GPU Hardware
这里的 hardware block, IP (Intellectual Property) block, controller, processor, engine 基本上都是指一个具有相对独立功能的硬件处理单元。
Abbr.
Stands for
Description
GMC
Graphics Memory Controller
管理 GPU 上不同 IP 如何获取内存 (VRAM) 的控制器,它也提供每进程 GPU 虚拟地址空间的支持(听起来有点像 MMU)
IH
Interrupt Handler
GPU 上的中断控制器
PSP
Platform Security Processor
处理 SoC 上的安全策略,执行 trusted app, 为其它 IP 验证和加载固件程序
SMU
System Management Unit
SoC 的电源管理微控制器,驱动通过这个模块来控制芯片的时钟,电压域,电源轨等
DCN
Display Controller Next
显示控制器
SDMA
System DMA
多功能 DMA engine, KMD 利用它完成分页,GPU 页表更新,而且它通过 UMD 暴露给用户态使用
GC
Graphics and Compute
GFX/Compute engine, 这是 GPU 上最大的 IP, 它包含 3D pipeline 和 shader cores
VCN
Video Codec Next
Multi-media engine,它处理视频和图像的编解码,通过 UMD 暴露给用户态使用
CP
Command Processor
包含 GFX/Compute engine 的前端,一批微控制器,包括 PFP,ME,CE,MEC,它们上面运行固件代码,为驱动提供与 GFX/Compute engine 进行交互的接口
CE
Constant Engine
GFX CP 里的一个小处理器,主要用来更新 buffer descriptor 以便异步地将 PFP/ME 使用的 buffer 加载进 cache
PFP
Pre-Fetch Parser
GFX CP 里的一个小处理器,需要给它加载 µCode 去执行, 从名字能看出来它是预取 packets 的
ME
MicroEngine
GFX CP 里的一个小处理器,它和 PFP 组成一个 Drawing Engine,可以和 CE 异步执行
MEC
MicroEngine Compute
微控制器用来控制 GFX/Compute engine 上的 compute queues, Compute Engine 一般有 2 个 MEC, 而且每个 MEC 支持 32 个 HW ring(queue)
MES
MicroEngine Scheduler
一个新的微控制器用来控制 queues, 估计既可以控制 compute queues, 也可以控制 gfx queues, 而且它上面运行的固件可能取代现有的内核 gpu scheduler, 而变成 firmware-based scheduling 😃 猜
RLC
RunList Controller
又一个 GFX/Compute engine 里的微控制器,用来处理 GFX/Compute engine 内部的电源管理,至于名字是历史遗留,与它的功能没有毛关系
Driver
Abbr.
Stands for
Description
KIQ
Kernel Interface Queue
KMD 的一个控制队列,用来管理 GFX/Compute engine 上的其它队列
IB
Indirect Buffer
某个特定 engine 的 command buffer, 通常不是直接将命令写入硬件 queue 里,而是先将命令写入一块内存,然后再将内存的地址写入硬件 queue
HQD
Hardware Queue Descriptor
kernel queues 或 user queues 将“映射”到一个 HQD, 一个 HQD 可能就是一个 MMIO 地址寄存器。kernel queues 和 user queues 映射的区别是, kernel queues 总是静态地映射到一个 HQD, 而 user queues 由 MES 动态地 映射到剩余的所有其它 HQDs
MQD
Memory Queue Descriptor
定义 queue 的状态,包括 GPU virtual address, doorbell 等,驱动为每个它创建的 queue 设置一个 MQD, MQD 被交给 MES firmware 去映射
KFD
Kernel Fusion Driver
AMD APU 芯片的内核驱动, 主要用于 HSA 架构的芯片
KGD
Kernel Graphics Driver
AMD GPU 芯片的内核驱动, 主要用于独立显卡和 OEM 上的 GPU 芯片
RAS
Reliability, Availability, Serviceability
AMDGPU 驱动的一个功能特性,帮助错误检测上报,错误处理和调试
References
Kernel Doc