dmips要怎么算?比如MT6592和MSM8939的dmips怎么算?

如题所述

dmips即以dhrystone程式为测量方式标准的mips值。

mips即million instruction per second,每秒百万个指令,即处理器每秒能运行多少百万个指令。每秒运行多少百万个dhrystone指令的就叫dmips。

以VAX-11/780机器上的测试结果1757 Dhrystones/s定义为1 Dhrystone MIPS,即1dmips=1757D/s,而其他处理器相对vax-11在0.78mhz的比值,作为多少dmips,比如是vax-11的2倍,就是2dmips。


dmips是一个非常老的标准,受编译器影响,不反应工艺制程的影响,不反应二缓,三缓等影响,纯粹只能简单参考。而且dmips反应的是整数运算能力,不反应浮点能力。


dmips的算法有两种。

一是运行dhrystone,源码在arm官网有下载,分别是dhry.h、dhry_1.c、dhry_2.c三个代码文件。


第二种就是简单测算,使用架构的平均理论ipc,处理器某频率的ipc值进行约算。ipc即instructtion per second,每秒指令数,单位是dmips/mhz。arm的soc比较喜欢用这个参数。


如图,mt6592的cortex a7架构,a7的平均理论ipc是1.9dmips/mhz,频率1.7ghz,8核,理论每秒运行的最多的dhrystone整数指令数=1.9dmips/mhz x 1700mhz频率 x8 核=25840dmips,即25840百万个D整数指令,即每秒最多运行258.4亿个整数指令。


而骁龙615高通ppt是cortex a53架构,a53的ipc是2.3,主核4个,每核1.7ghz,副核4个,每核1ghz——目前实际615是主核1.5ghz,副核0.8ghz——那么骁龙615的每秒运行的D整数指令数最多是=2.3dmips/mhz x 1700mhz x4 主核 +2.3 x 1000 x 4副核=24840dmips,即骁龙615的运行速度是每秒最多运行248.4个整数指令。


实际上这个数值只是方便购买手机平板,智能电视等情况时,快速心算对比不同机型的性能,不代表真实性能对比。而且有缺陷,比如异步asmp的二缓不共享的缺陷,实际dmips要折算。大小核,小小核的计算时要分开小核,因为八核全开的几率很低。

比如,mt6592的实际性能就是4x1700x1.9=12920dmips多一点,单线程3230dmips,骁龙615实际性能也是4x1700x2.3=15640dmips,单线程3910dmips,看你需要对比哪个。

目前一般修正为能大小核全开时,小小核的副核算1/2,大小核的小核算1/3,不能全开不算。


dmips简单说只是一般参考价值,不过比背coremark,spec int要方便,而且计算容易,不同架构频率对比一目了然。


温馨提示:答案为网友推荐,仅供参考