Bank Conflict 交互式可视化
配套文章: Shared Memory 与 Bank Conflict | 拖动滑块实时看 32 线程的 Bank 冲突模式
图 1: Stride 访问的 Bank Conflict
Stride:
1
gcd(stride, 32) =
1
冲突级别:
无冲突 (1-way)
使用 Bank 数:
32
/32
有效带宽:
100%
无冲突 (1 thread/bank)
2-way
4-way
8-way
16-32 way
有效带宽占比:
0% — 理论峰值 (19 TB/s)
图 2: Transpose — Padding 消除 Bank Conflict
tile[32][32] (无 padding, 32-way store conflict)
tile[32][33] (+1 padding, 无 conflict)
左: 列写入 tile[x][y] 时 32 个线程的 Bank ID (红=冲突)。右: +1 padding 后每列线程分散到不同 Bank。