🚀 GPU缓存一致性 & 数据局部性
📚 30章 · 从架构到极致优化
🧑🏫
友好 · 专业硬核
01
第1章
GPU架构概述
从图形渲染到通用计算,GPU的演变之路。
→
02
第2章
缓存基础
CPU缓存与GPU缓存的异同,为什么GPU需要缓存。
→
03
第3章
GPU内存层次结构
全局内存、共享内存、寄存器、本地内存、常量内存、纹理内存。
→
04
第4章
缓存一致性基础
什么是缓存一致性,为什么在GPU中是个难题。
→
05
第5章
GPU缓存一致性协议
NVIDIA的L1/L2缓存一致性模型。
→
06
第6章
跨SM缓存一致性
多个流式多处理器之间的数据同步挑战。
→
07
第7章
原子操作与缓存一致性
atomicAdd等操作如何保证数据一致。
→
08
第8章
Volatile关键字
在GPU编程中如何使用volatile避免缓存优化。
→
09
第9章
内存栅栏(Fence)
__threadfence()、__threadfence_block()、__threadfence_system()的使用场景。
→
10
第10章
共享内存Bank Conflict
什么是Bank Conflict,如何通过Padding优化。
→
11
第11章
共享内存布局优化
Swizzle模式与数据重排。
→
12
第12章
全局内存合并访问
Coalesced Access的原理与实现。
→
13
第13章
数据局部性原理
时间局部性与空间局部性在GPU中的应用。
→
14
第14章
Tiling技术
通过分块(Tiling)提高数据复用率。
→
15
第15章
寄存器溢出
寄存器压力过大时如何影响性能,如何避免。
→
16
第16章
常量内存优化
__constant__的使用场景与性能优势。
→
17
第17章
纹理内存与表面内存
利用硬件缓存加速特定访问模式。
→
18
第18章
只读缓存(Read-Only Cache)
__ldg()指令的使用与优化。
→
19
第19章
统一内存(Unified Memory)
简化编程模型,但一致性开销如何?
→
20
第20章
Prefetching技术
如何手动预取数据到缓存。
→
21
第21章
流水线隐藏延迟
通过指令级并行隐藏内存访问延迟。
→
22
第22章
Occupancy与缓存命中率
如何平衡线程数量与缓存资源。
→
23
第23章
Warp调度与缓存行为
Warp如何影响缓存访问模式。
→
24
第24章
L2缓存分区
NVIDIA的L2缓存切片(Slice)架构。
→
25
第25章
缓存抖动(Cache Thrashing)
原因分析与解决方案。
→
26
第26章
多GPU缓存一致性
NVLink与跨GPU数据共享。
→
27
第27章
AMD GPU缓存架构
与NVIDIA的对比分析。
→
28
第28章
Intel GPU缓存架构
Xe架构的缓存设计。
→
29
第29章
性能分析工具
NVIDIA Nsight Compute、Visual Profiler中的缓存指标解读。
→
30
第30章
实战案例:矩阵乘法
从Naive到极致优化,缓存一致性优化全流程。
→