目的
本文介绍广州星嵌DSP C6657+Xilinx Zynq7035平台下Xilinx Zynq7035算力指标。
基本概念
FLOPs/FLOPS
FLOPs,Floating Point Operations,浮点运算次数,每一个加、减、乘、除操作都算1FLOPs操作,常用来衡量模型计算复杂度。
注意下FLOPS,注意全大写,是floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度。是一个衡量硬件性能的指标,两者别弄混。
MACs
Multiply–Accumulate Operations,乘加累积操作数,常常被人们与FLOPs概念混淆。实际上1MACs包含一个乘法操作与一个加法操作,大约包含2FLOPs。通常MACs与FLOPs存在一个2倍的关系。
关系
为什么使用乘加运算指标(MACs)呢?因为神经网络运算中内积、乘加运算无处不在:
对于一个3*3滤波器在特征图上的一次运算可以表示为:
y = w 0 ∗ x 0 + w 1 ∗ x 1 + w 2 ∗ x 2 + w 3 ∗ x 3 + w 4 ∗ x 4 + w 5 ∗ x 5 + w 6 ∗ x 6 + w 7 ∗ x 7 + w 8 ∗ x 8
对于上式,记 w 0 ∗ x 0 +… 为一次乘加,即1MACs。所以对于上式而言共有9次乘加,即9MACs(实际上,9次相乘、9-1次相加,但为了方便统计,将计算量近似记为9MACs,就像算法复杂度通常把 O(N+b)表示成O(N)一样,都只是一种近似)。
对于上式而言,可以认为执行了9次乘法、9-1次加法,所以一共是9+(9-1)次FLOPs。所以近似来看1FLOPs ≈ 2MACs。
ZYNQ PL端算力指标
参考Xilinx官方文档Zynq-7000 SoC Data Sheet: Overview (DS190),可找到Zynq 7035 PL端的MACs指标值为1334 GMACs,约为2668 GFLOPs,如下图所示:
FPGA PS端性能指标
参考Xilinx官方资料Zynq-7000 SoC Data Sheet: Overview (DS190),可获得Zynq 7035 PS端CPU的性能参数,如下图红框标出的地方所示:
Zynq 7035 PS端双ARM总运算能力:2.5DMIPS/MHz Per CPU x 1000 MHz x 2 CPU = 5000 DMIPS。