🚀 共享内存优化访存带宽实战
📚 30章 · 进阶
GPU
01
共享内存基础
GPU内存层次结构、共享内存与全局内存的区别、物理位置与延迟特性
02
Bank Conflict原理
共享内存Bank组织方式、Conflict产生机制、不同访问模式分析
03
无Conflict访问模式
连续访问与步长访问、Padding技术、Swizzle模式介绍
04
共享内存与数据复用
减少全局内存访问、数据分块(Tiling)技术、Tile大小影响
05
矩阵转置优化
朴素转置带宽瓶颈、共享内存优化、Coalesced读写权衡
06
矩阵乘法优化(上)
朴素矩阵乘法分析、Tiled实现、Block与共享内存大小选择
07
矩阵乘法优化(下)
Bank Conflict避免、Register重用、向量化加载与存储
08
归约操作优化
树形归约、Warp级归约、避免Divergent Branch
09
直方图计算优化
原子操作与共享内存、私有化直方图、多通道并行合并
10
Stencil计算优化
Halo区域加载、边界条件处理、时间Tiling技术
11
卷积操作优化
Im2Col+GEMM、共享内存输入重排、Winograd算法简介
12
FFT优化
Cooley-Tukey算法、蝶形运算、Bit-reversal重排
13
排序网络优化
Bitonic Sort共享内存实现、Warp级排序、合并网络
14
稀疏矩阵向量乘法(SpMV)
CSR格式分析、共享内存行合并、负载均衡策略
15
图算法优化
BFS共享内存实现、Frontier管理、Warp-centric vs Thread-centric
16
动态并行与共享内存
Dynamic Parallelism简介、子核共享内存、同步与数据一致性
17
共享内存与常量/纹理内存对比
延迟与带宽特性、适用场景、混合使用策略
18
Occupancy与共享内存
Occupancy计算、共享内存大小影响、性能权衡
19
共享内存的异步拷贝
CUDA 11+异步拷贝指令、Memcpy_async、Pipeline机制
20
共享内存与Warp Shuffle对比
Shuffle指令原理、性能差异、混合使用场景
21
多GPU共享内存
NVLink与共享内存、跨GPU数据共享、Peer-to-Peer访问
22
共享内存调试与Profiling
NVIDIA Nsight使用、性能计数器、常见瓶颈分析
23
共享内存中的原子操作
AtomicAdd/Sub/Exch、Fermi到Ampere演进、优化技巧
24
共享内存与L1 Cache
L1 Cache与共享内存硬件共享、配置比例调整、性能影响
25
共享内存中的Double Buffer
Double Buffering技术、隐藏内存延迟、流水线设计
26
共享内存与Tensor Core
Tensor Core简介、共享内存作为输入、WMMA API使用
27
共享内存中的复杂数据结构
结构体数组 vs 数组结构体、链表/树、对齐与填充
28
共享内存的持久化
Persistent Threads技术、生命周期管理、动态共享内存分配
29
共享内存在深度学习中的应用
Layer Normalization、Softmax、Attention机制优化
30
综合实战:图像处理Pipeline
从输入到输出完整优化、多阶段共享内存复用、性能调优总结