首页 > 解决方案 > 浮点指令和浮点运算有什么区别?

问题描述

我一直在研究计算机性能指标,我对 MFLOPS 有疑问。根据定义,MFLOPS 是 (NumberOfFloatingPointOperations/ExecutionTime*10 6 )。起初,我认为操作和指令是相同的。但是,我在 PDF 中发现了这一点:

“......因为它是基于程序中的操作而不是指令,所以 MFLOPS 比 MIPS 更有力地声称可以在不同计算机之间进行公平比较。这种声称的关键是,在不同计算机上运行的相同程序可能执行不同数量的指令,但总是执行相同数量的浮点运算......”

看来操作和指令是不一样的。有什么区别?

资料来源:https ://course.ccs.neu.edu/cs3650/ssl/TEXT-CD/Content/COD3e/InMoreDepth/IMD4-MFLOPS-as-a-Performance-Metric.pdf

标签: assemblycpu-architectureflops

解决方案


FP 域中最典型的运算是加法和乘法。Arm64 Neon 指令集 OTOH 实现了融合乘法累加,在一条指令中能够执行 2 个最基本的浮点运算。

SIMD 通常还可以并行执行 2、4、8、16 次加法、乘法,甚至可能是融合乘法累加,从而增加每条指令(或每个时钟周期)的浮点操作数。

此外,随着机器学习推理引擎中广泛使用的 FP16 的引入,每条指令可以挤出两倍的运算量——事实上的行业标准仍然将浮点运算等同于单精度运算,迫使一些制造商使用其他首字母缩写词,例如每秒神经操作。


推荐阅读