目的
本文介绍广州星嵌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)一样&#