DMIPS、FLOPS区别和联系 1. 什么是DMIPS?2. 什么是FLOPS?3. 怎么评测DMIPS?3.1 用Dhrystone可以实测DMIP3.2 通过公式计算DMIPS 4 怎么计算FLOPS?5. DMIPS和FLOPS的关系
1. 什么是DMIPS?
DMIPS:Dhrystone Million Instructions executed Per Second :主要用于测整数计算能力。
2. 什么是FLOPS?
FLOPS:Floating-point Operations per Second:主要用于测浮点计算能力。
3. 怎么评测DMIPS? 3.1 用Dhrystone可以实测DMIP
参考1: https://wiki.cdot.senecacollege.ca/wiki/Dhrystone_howto
注:我是ubuntu系统,修改Makefile:
TIME_FUNC= -DTIME # Use times(2) for measurement
OPTIMIZE= -O3
如果想在嵌入式平台跑,需要设置交叉编译环境,修改GCC为指定平台的GCC:
GCC=/opt/toolchains/linux-toolchain-aarch64/朴实的雨/aarch64-linux-gnu-gcc
参考2:https://www.zhihu.com/question/311816940/answer/715901367
3.2 通过公式计算DMIPS
一般芯片都有DMIPS/MHZ信息,比如arm cortex-a53, 为2.3DMIPS/MHZ, 则四核A53,1.5ghz的总DMIPS为:
41.51000mhz*2.3 DMIPS/MHZ
//参考:https://blog.csdn.net/ywcpig/article/details/80340607
//参考:https://www.zhihu.com/question/37202806/answer/81965320
4 怎么计算FLOPS?
对于intel cpu, 计算方法为:
GFlops = (CPU speed in GHz) x (number of CPU cores) x (CPU instruction
per cycle) x (number of CPUs per node).
//参考:https://stackoverflow.com/questions/6289745/how-to-compute-the-theoretical-peak-performance-of-cpu
//参考:https://blog.csdn.net/cloudeagle_bupt/article/details/8840589
这里关键在于:
CPU instruction per cycle
intel的CPU每个型号都可以查到该信息。
而对于ARM的cpu,我暂时还不知道怎么计算FLOPS,需要实测。
5. DMIPS和FLOPS的关系
一个表示整数运算能力,一个表示浮点数运算能力,二者不能完全等同。CPU性能评估采用综合测试程序,较流行的有Whetstone 和 Dhrystone 两种。Dhrystone主要用于测整数计算能力,计算单位就是DMIPS。采用Whetstone 主要用于测浮点计算能力,计算单位就是MFLOPS。
参考:https://blog.csdn.net/u011776903/article/details/79606980