🧠 GPU内存子系统
设计与优化策略
📘 30章 · 从入门到精通
🎯 寄存器 · 共享内存 · 缓存 · 全局内存
⚡ 带宽 · 延迟 · 预取 · 池化
🧩 30个实战章节
1
GPU内存层次结构概览
寄存器文件、共享内存、L1/L2缓存、全局内存、常量内存、纹理内存的层级关系与访问延迟对比。
2
全局内存访问模式
合并访问(Coalesced Access)原理、对齐要求、步长访问对带宽的影响。
3
共享内存与Bank冲突
共享内存架构、Bank映射机制、冲突避免策略(Padding、Swizzle)。
4
寄存器压力与Spilling
寄存器分配策略、寄存器溢出(Register Spilling)对性能的影响、优化方法。
5
常量内存与纹理内存
常量内存的广播机制、纹理内存的缓存特性与插值功能。
6
L2缓存优化
L2缓存分区、流式访问与随机访问的差异、缓存行利用率的提升技巧。
7
内存带宽利用率分析
理论带宽与实际带宽的差距、利用Nsight Compute分析内存吞吐。
8
内存延迟隐藏
Warp调度机制、指令级并行(ILP)、线程级并行(TLP)对延迟的掩盖。
9
数据预取技术
软件预取(__pipeline_prefetch)、硬件预取、预取距离的调优。
10
内存池(Memory Pool)设计
自定义分配器、伙伴系统、Slab分配器在GPU上的实现。
11
统一内存(Unified Memory)
UM的页迁移机制、页错误处理、性能陷阱与优化策略。
12
DMA引擎与异步传输
cudaMemcpyAsync、Stream与Event、双缓冲(Double Buffering)技术。
13
内存压缩技术
Delta压缩、ZBC(Zero Bandwidth Compression)、无损压缩在GPU中的应用。
14
NUMA架构下的内存访问
多GPU系统的内存拓扑、P2P访问优化、NVLink与PCIe的差异。
15
内存分配与释放的开销
cudaMalloc/cudaFree的陷阱、内存池化与复用策略。
16
缓存一致性协议
GPU与CPU的缓存一致性、MESI协议变体、跨设备数据同步。
17
内存错误处理
ECC内存、单比特翻转(SBE)与双比特翻转(DBE)、错误恢复机制。
18
内存带宽与计算强度的平衡
Roofline模型分析、计算受限与带宽受限的识别。
19
张量核心(Tensor Core)与内存访问
矩阵乘法中的内存布局优化、共享内存与张量核心的配合。
20
稀疏内存访问优化
稀疏矩阵的存储格式(CSR、COO)、稀疏内核的内存访问模式。
21
内存屏障与原子操作
__syncthreads、__threadfence、原子操作的性能开销与替代方案。
22
多级缓存替换策略
LRU、RRIP、SRRIP在GPU缓存中的应用与调优。
23
内存虚拟化与SR-IOV
GPU虚拟化中的内存隔离、SR-IOV的VF分配与内存映射。
24
持久线程(Persistent Threads)与内存管理
持久线程模式下的内存分配策略、工作窃取(Work Stealing)。
25
内存带宽的功耗优化
DVFS对内存频率的影响、节能模式下的内存访问策略。
26
跨代GPU内存架构演进
Fermi到Hopper的内存子系统变化、关键技术创新。
27
内存性能剖析工具
Nsight Compute、nvprof、NVIDIA Visual Profiler的内存分析功能。
28
内存安全与边界检查
GPU内存越界检测、Address Sanitizer for GPU、调试技巧。
29
异构内存管理
CPU-GPU共享内存池、HMM(Heterogeneous Memory Management)机制。
30
未来趋势:CXL互连与近内存计算
CXL互连、近内存计算(Near-Memory Computing)、存算一体架构对GPU内存的影响。