<aside> 💡
优化QKV for循环顺序 ;
减少非乘法计算 ;
</aside>
Flash Attention 2比Flash Attention 1加速2x, 计算效率达到GEMM性能的50~73%
QKV for循环顺序【讲这个】shared memory减少通信总体来说,V2从以下三个方面做了改进:
置换内外循环位置,同时减少非矩阵的计算量。
优化Attention部分thread blocks的并行化计算,新增seq_len维度的并行,使SM的利用率尽量打满。这其实也是内外循环置换这个总体思想配套的改进措施
优化thread blocks内部warp级别的工作模式,尽量减少warp间的通讯和读取shared memory的次数。
**第二和第三点**都可以归结为是**cuda gemm层面的优化**。