计算平台指标

基本性能指标

  • 算力$\pi$,一个计算平台每秒钟所能完成的浮点运算数,单位是 FLOPS。
  • 带宽$\beta$,一个计算平台每秒所能完成的内存交换量,单位是 Byte/s。

计算强度

以上的两个指标相除,即可得到计算平台的计算强度上限。

\[I_{max} = \frac{\pi}{\beta}\]

它的含义是在这个计算平台上,每字节的内存交换最多用来进行多少次计算。

模型的指标

  • 计算量,指的是输入单个样本(对于CNN而言就是一张图像),模型进行一次完整的前向传播所发生的浮点运算个数,也即模型的时间复杂度。单位是 FLOPs。
  • 访存量:指的是输入单个样本,模型完成一次前向传播过程中所发生的内存交换总量,也即模型的空间复杂度。单位是 Byte。
  • 模型的计算强度:同样地,由计算量除以访存量就可以得到模型的计算强度。它表示此模型在计算过程中,每字节内存交换到底用于进行多少次浮点运算。单位是FLOPs/Byte。
  • 模型的理论性能:我们最关心的指标,即模型在计算平台上所能达到的每秒浮点运算次数(理论值)。单位是 FLOPS or FLOP/s。

Roof-line Model 可以计算模型的理论性能。

Roofline Model

计算平台的性能指标决定了屋顶的形态。 屋顶图的横坐标是计算强度$I$,纵坐标是算力$P$。 算力决定了屋顶$P = \pi$的高度,带宽决定了房檐$\frac{P}{I} = \beta$的斜率。 屋檐和屋顶的交点是计算强度上限$I_{max}$。

以交点为界,Roofline分为两部分:

  • 带宽瓶颈,$I < I_{max}$时,计算强度较低,访存是主要的瓶颈,此时$P = \beta \cdot I$
  • 计算瓶颈,$I \geq I_{max}$时,计算强度较高,此时$P = \pi$