基于Roofline模型的算子瓶颈识别与优化建议

图1所示,横坐标单位是FLOP/Byte,表示计算强度,每搬运1Byte数据可以进行多少次运算,越大表示内存搬运利用率越高。纵坐标单位是FLOP/s,表示运算速度,越大表示运算越快。

当横坐标很大时,表示每搬运1byte数据可以进行很多的运算,但是每秒的运算次数无法超过硬件的性能上限π,即图中绿色横线;随着横坐标减小到一定的阈值以下,即图中蓝点的横坐标Imax,搬运的数据将不支持硬件达到性能上限的算力,此时的纵坐标性能为β·x,β表示硬件的带宽,即图中红色斜线。

蓝点将Roofline模型分成2个部分,红色部分为Memory Bound,绿色部分为Compute Bound,且实际工作点越远离红线或绿线,表示Bound越严重,为主要瓶颈所在。

图1 roofline模型介绍