3.1 使用Roofline估算性能
为了估计和比较BNN性能与固定点CNN,我们使用了一个roofline模型[29],它考虑了存储器带宽,峰值计算性能和算术强度(读取或写入的off-chip存储器的每个字节执行的数学运算的数量)。 对于特定算术强度,roofline曲线与垂直线的交点给出理论峰值性能点,其可以是计算约束,也可以是存储器约束。 我们考虑流行的AlexNet [14]的二值化和8位固定点[25]实现,两者都需要14亿次操作(GOPS)来对一个图像进行分类。
使用[17]描述的方法,我们为Xilinx Zynq Ultra Scale + ZU19EG FPGA开发了一个roofline模型。结果如Figure 1所示。我们首先观察到FPGA的二进制运算的计算限制性能为66 TOPS,比8位高出约16倍,与16位固定点操作相比高出53倍。但是,只有在应用程序不受内存限制的情况下才能达到计算限制峰值。BNN的紧凑模型大小提供了一个关键优势。由于二值化的AlexNet仅需要7.4 MB的参数(与8位的50 MB相比),整个神经网络模型可以保存在片上存储器中,二值化和8位固定点AlexNet变体的算术强度用垂直线表示,因此,BNN几乎能够达到计算峰值,而固定点CNN的峰值性能受到存储器带宽的限制。基于这些观察,设计达到峰值的75%,大概能达到每秒0.75 ·(66 TOPS/1.4 GOPS)≈ 35000张图片的吞吐量。
使用相同的模型,