GPU相关常用术语
1 Burst writeBurst write 的意思是突发写入指的是在一次操作中连续写入多个数据单元而不是每次只写一个。你可以把它理解成一次“开门”然后连续把很多数据一次性送进去而不是每写一个数据就“开门关门”一次。下面是更清晰的解释在存储设备如 DDR、Flash、硬盘中读写通常需要一定的“启动开销”例如地址建立、行激活等。如果要写很多连续的数据用 burst write 可以避免重复的启动开销从而大幅提升速度。一次 burst 通常包含固定数量的数据节拍比如 4 拍、8 拍、16 拍等。举个简单例子假设你要写 8 个 64 字节的数据不用 burst需要 8 次独立写操作每次都要发送地址 控制信号。用 burst write只发送一次起始地址然后连续写 8 个数据块即可。Burst write 常见于• DDR SDRAM• PCIe、AXI、AHB 等总线• NAND Flash• GPU、DMA 传输2 GDDR 交织(Interleaving)[Memory Controller]│┌─────┴─────┐│ Channel 0 │ Channel 1 ← 双通道 DDR└─────┬─────┘│┌─────┴─────┐│ Rank 0 │ Rank 1 ← 同一Channel下不同CS└─────┬─────┘│┌───┬───┬───┬───┐│B0│B1│B2│B3… │ Banks ← 内部存储体└───┴───┴───┴───┘│┌───────────────┐│ Row (行) │ ← 一整行读到row buffer└───────────────┘│┌───────────────┐│ Column (列) │ ← 最终读写数据└───────────────┘GDDR 交织Interleaving就是把连续的显存地址打散交替放到不同的Bank/Rank/Channel让 GPU 可以并行访问、隐藏 DRAM 延迟、榨干带宽。下面讲得直白又够技术一、核心思想一句话正常连续地址 → 同一个 Bank → 排队串行访问 → 慢、带宽低。交织连续地址 →Bank0 → Bank1 → Bank2 → Bank3 → …轮着来→ 多个 Bank 同时干活 →并行、延迟被隐藏、带宽翻倍。二、GDDR 的三级交织GPU 显存特有1Bank 交织最底层芯片内1 颗 GDDR 芯片内部有很多 Bank如 8/16 个连续地址轮流分配给不同 Bank效果一个 Bank 忙充电/刷新时GPU 马上读下一个 Bank流水线无等待2Rank 交织单通道内1 个通道上有多颗 GDDR 芯片组成 Rank地址跨芯片交错分布效果同一通道内多芯片并发提高单通道利用率3Channel 交织GPU 多通道最重要GPU 有 6/8/12 个独立显存通道如 384bit 12×32bit连续地址按 32B/64B 粒度轮流向各通道发请求效果真正并行总带宽 单通道 × 通道数比如 GDDR6 12 通道 → 12×单通道带宽三、举个例子4 通道简化版逻辑地址连续0, 1, 2, 3, 4, 5, 6, 7...交织后物理分布地址 0 → Channel 0地址 1 → Channel 1地址 2 → Channel 2地址 3 → Channel 3地址 4 → Channel 0地址 5 → Channel 1 …GPU 访问时一次发 4 个请求到 4 个通道同时返回数据而不是等一个通道读完再读下一个。四、为什么 GDDR 特别需要交织GPU 是海量并行线程对显存带宽需求极高比 CPU 高几十倍GDDR 频率极高GDDR6 可达 20Gbps/pin但单个 Bank 有忙周期交织能把串行变并行、隐藏延迟、把带宽吃满是 GPU 显存性能的核心技术GDDR Interleaving地址分散到多通道/Bank加速数据访问完全不同层级但都是提升内存性能的手段。六、一句话总结GDDR 交织 地址打散、多通道/Bank 并行、隐藏延迟、拉满带宽是 GPU 显存高性能的基石。你说的这个4/2/路交织一般就是指GDDR / 显存的 3 级交织粒度4路交织 / 2路交织 / 路交织Channel Interleaving我用最直白、驱动/硬件工程师都懂的方式讲清楚1. 什么叫“路”路 Channel 显存通道比如一块显卡是256bit通常就是8 路 × 32bit或者4 路 × 64bit“几路交织”就是地址在几个通道之间轮流发。2. 4路交织4-channel interleaving地址按4 个通道轮着来地址0 → CH0 地址1 → CH1 地址2 → CH2 地址3 → CH3 地址4 → CH0 地址5 → CH1 ...一次读写可以4 通道并行带宽接近 ×4。3. 2路交织2-channel interleaving只在2 个通道之间轮CH0 → CH1 → CH0 → CH1...并行度只有 2带宽比 4 路弱。4. 路交织Channel Interleaving就是最顶层、最大粒度的交织通道之间交织决定最大显存带宽它下面还有Bank 交织芯片内部burst 交织路交织是影响性能最大的一级。5. 硬件/驱动里的实际意义4路交织高性能、带宽大适合游戏卡、计算卡2路交织成本低、位宽窄比如入门显卡、嵌入式 GPU你在GPU 显存配置、DRAM 初始化寄存器、显存训练日志里看到的4-way interleaving 2-way interleaving简短总结4/2/路交织 地址在 4 个 / 2 个 / 显存通道之间轮流分布实现并行访问、提高带宽。3 Aperture BaseAperture Base显存/PCIe 窗口基地址是 GPU 驱动与硬件里的关键术语指CPU 能直接访问的显存VRAM或 GART/GTT 地址窗口的起始物理地址。一、核心定义Aperture在计算机语境中特指物理地址空间中的一段“窗口”CPU 通过这段地址可直接读写设备内存如 GPU 显存。Base即这段地址窗口的起始地址基地址。全称Aperture Base Address窗口基地址作用定义CPU 侧看到的显存映射起始地址。二、GPU 里的两种 Aperture你最常遇到1. VRAM Aperture直接显存窗口功能CPU 可直接读写物理显存MMIO 方式。地址范围[Aperture Base, Aperture Base 显存大小)。典型场景旧显卡/AGP 时代CPU 直接写显存。现代 GPU用于固件初始化、调试、特殊寄存器访问。2. GART / GTT Aperture页表映射窗口GART/GTTGraphics Address Remapping TableGPU 页表。功能CPU 访问一段连续虚拟地址 → 经 GPU 页表 → 映射到分散的物理显存或系统内存。核心用途让 CPU 看到连续地址硬件自动处理显存碎片化。集成显卡iGPU共享内存时必备。三、与 PCIe BAR 的关系必懂Aperture Base 本质上就是 PCIe BAR 中被分配的基地址GPU 在 PCIe 配置空间声明我需要一大段地址如 256MB/1GB/8GB。系统 BIOS/OS 枚举时分配一段物理地址给它。这个分配的起始地址→ 就是Aperture Base。Linux 内核代码示例AMDGPU// 显存窗口基地址与大小adev-gmc.vram_start0xD0000000;// Aperture Baseadev-gmc.vram_end0xDFFFFFFF;// Aperture Base Size - 1四、为什么叫“Aperture光圈/窗口”比喻像相机光圈打开一个窗口。本质CPU 地址空间 → 透过 Aperture → 看到 GPU 显存。关键CPU 不直接拥有显存物理地址而是通过这个映射窗口访问。五、驱动/硬件中的常见别名Aperture BaseFB BaseFrame Buffer BaseGART Base / GTT BasePCIe BAR (Memory BAR) Base Address六、一句话总结Aperture Base CPU 访问 GPU 显存/共享内存的“映射窗口”起始物理地址是 PCIe BAR 分配的核心地址。要不要我帮你整理一份Aperture Base、GART、BAR、VRAM 地址的核心区别与联系表格方便你快速查阅