TileLang Puzzle 第二课

编程模型

Grid-Block-Thread

  • 同一个warp当中的thread是共享部分资源的

GPU存储子系统架构

内存层次模型

体系结构相关的优化案例

overall view

Occupancy-资源占用

occupancy

case 1: active block

occupancy

追求相对较小的task分割大小,以获得更高的block利用率(当然最好是切成block的倍数)

简单的数学就可以证明,由于每一个计算单元的计算速度是固定的,所以只要空转时间越短,整体效率就会越高

occupancy

case 2: active warp

occupancy

case 3: private memory

简单来说,就是使用的临时变量太多,导致最快的寄存器分配器无法满足,会出现溢写到private memory当中的情况,而private memory的访问周期往往是寄存器的上百倍,导致显著的性能损失

occupancy
occupancy

一个优化示例

occupancy

Coalescing-合并

coalescing 是指将连续的访问合并成一个访问,从而提高访存效率

case 4: Global Memory Access Coalescing

occupancy

case 5: Partial Write降低HBM写带宽

occupancy

Bank Conflict - bank冲突

case 6: Shared Memory Bank Conflicts

occupancy

一个优化示例

occupancy

Latency Hiding - 延迟隐藏

Latency Hiding

occupancy