硬件性能评估指标-DMIPS、MFLOPS、MAC、TOPS
-
DMIPS(Dhrystone Million Instructions Per Second):
- DMIPS用于衡量计算机系统的整体指令执行性能,通常关注整数操作。它基于Dhrystone基准测试来计算,该测试主要包含整数运算和控制流程操作。
- DMIPS的计算方式是将Dhrystone测试的执行速度(每秒执行多少次Dhrystone测试)除以一百万,以获得每秒执行的百万指令数(因为DMIPS指的是每秒处理几百万指令-Million Instructions)。
- DMIPS不考虑浮点数操作,因此它不能准确地反映计算机系统的浮点数性能。
一般芯片都有
DMIPS/MHz
信息,如下图:
比如 ARM Cortex-A72 架构为 4.7DMIPS/MHz,那么DMIPS为:- 双核A72架构,主频为2.0GHz的CPU(也有1.5GHz的,由厂家设置,因为功耗之类的原因?),DMIPS:2 * 2GHz * 4.7DMIPS/MHz = 18.8kDMIPS。
\newline
比如 ARM Cortex-A55 架构为 2.7DMIPS/MHz,那么DMIPS为:
- 八核A55架构,主频为1.2GHz的CPU,DMIPS:8 * 1.2GHz * 2.7DMIPS/MHz = 25.92kDMIPS。
-
FLOPS(Floating-Point Operations Per Second):
-
FLOPS用于衡量计算机系统的浮点数运算性能,主要关注浮点数操作,如加法、乘法和除法。
-
FLOPS主要用于评估计算机在科学计算、图形处理、模拟等需要大量浮点数运算的应用中的性能。
-
-
MAC(Multiply-Accumulate) 或 MADDs(Multiply-Add):
- MAC是一种常用于衡量计算机系统性能的浮点数运算指标,特别在数字信号处理(DSP)(因为信号处理计算一般都是乘加计算)和机器学习领域中经常使用。MAC操作包括乘法和累加运算,通常表示为C = A * B + C,其中A和B是输入数据,C是累加结果。
- MAC操作通常在矩阵乘法、卷积等计算密集型应用中广泛使用。
比如 P6 DSP 的 MAC 数为 256MAC/cycle,其并行度为64路int8并行、16路float并行,则其在800MHz时,算力为:
- 800MHz * 256MAC/cycle * 64 = 204.8GMAC/sec (int8)
-
TOPS(Tera Operations Per Second):
- TOPS 是每秒执行的兆操作数。
TOPS和上面的MAC/sec基本是等价的东西,但由于上面的操作C = A * B + C由两个操作,且这里的单位为兆,所以上面公式转换为以TOPS为单位:
- 204.8GMAC/sec = 204.8 * 2 * e-3 = 0.4096TOPS (int8)