关于FLOPs与MACs的说明
关于FLOPs与MACs的说明:
尽管通常被称为"FLOPs",但fvcore的FlopCountAnalysis返回的值实际上代表的是MACs(乘加运算次数)。
正如FlopCountAnalysis的文档字符串(第53行)所述:“我们将一次融合乘加运算计为一次flop。”
fvcore和thop都统计MACs,但通常更推荐使用fvcore,因为:
- 它支持更广泛的运算和模块。
- 它提供更准确和全面的统计。
- 其结果通常略高,更接近实际计算成本。
不同领域的术语澄清:
- 在科学计算/高性能计算领域:1 FLOP = 1次浮点运算(加法或乘法),因此 1 MAC(乘加运算)= 2 FLOPs。
- 在深度学习/计算机视觉领域:1 FLOP ≈ 1 MAC(即一次融合乘加运算被计为一次操作)。
因此,在跨领域或跨工具比较FLOPs时,务必核实其基本定义。
