芯片算法性能度量单位
芯片算法常用性能度量单位有:
- TOPS(Tera Operation Per Second)每秒一万亿次运算
- DMIPS(Dhrystone Million Instructions Per Second)每秒一百万个指令
- MIPS(Million Instructions Per Second)每秒一百万个指令
- MCPS(Million Clock Per Second)每秒一百万时钟
TOPS
表示每秒钟可以进行的操作数量,用于衡量自动驾驶的算力,有时还会拿TOPS/W来说明功耗,即单位功耗下的运算能力。
计算公式:
$$TOPS = MAC矩阵行 * MAC矩阵列 * 2 * 主频$$
举例:
一个具有96x96 MAC的NPU,其MAC矩阵行为96,MAC矩阵列为96,工作主频为2GHz
那么 TOPS = 96 * 96 * 2 * 2G = 36.864 TOPS
DMIPS
因为不同的CPU指令集不同、硬件加速器不同、CPU架构不同,导致不能简单的用核心数和CPU主频来评估性能,所以出了一个跑分算法叫Dhrystone:程序用来测试CPU整数计算性能,其输出结果为每秒钟运行Dhrystone的次数,即每秒钟迭代主循环的次数。
Dhrystone所代表的处理器分数比MIPS(million instructions per second 每秒钟执行的指令数)更有意义,因为在不同的指令系统中,比如RISC(Reduced Instruction Set Computer精简指令集计算机)系统和CISC(Complex Instruction Set Computer复杂指令集计算机)系统,Dhrystone的得分更能表现其真正性能。由于在一个高级任务中,RISC可能需要更多的指令,但是其执行的时间可能会比在CISC中的一条指令还要快。由于Dhrystone仅将每秒钟程序执行次数作为指标,所以可以让不同的机器用其自身的方式去完成任务。另一项基于Dhrystone的分数为DMIPS(DhrystoneMIPS),其含义为每秒钟执行Dhrystone的次数除以1757(这一数值来自于VAX 11/780机器,此机器在名义上为1MIPS机器,它每秒运行Dhrystone次数为1757次)。
MIPS
每秒跑了多少百万条指令。这是一种衡量计算机性能的指标,主要用于比较计算机硬件的速度和性能。MIPS越高,说明计算机的处理能力越强。
由于不是每一条机械指令都能在单周期计算完成,所以计算MIPS的时候会引入一个CPI(Clock Cycles Per Instruction,每条指令的时钟周期数)值。公式如下:
$$MIPS=执行的指令数 / (执行时间*1000000)$$
$$MIPS=主频/(CPI*1000000)$$
MIPS是每秒钟处理了多少百万条指令,bes芯片最高支持208M。下面是计算算法占用了
$$\begin{align}
MCPS&=(Total Cycles*Sampling frequency)/(No\ of\ frames*Samples\ per\ frame*1000000) \\
&=秒数*主频*106*FS/(每一帧*一帧多长*10^6) \\
&=(2500)s*主频*10^6*44100/(1*256*10^6)】 \\
&=89M
\end{align}$$
MCPS
每秒百万次时钟周期。这是一种衡量计算机处理器速度的指标,主要用于比较处理器的运行速度。MCPS越高,说明处理器的运行速度越快。
计算公式如下:
MCPS = Total Cycles*Sampling frequency/(No of frames * Samples per frame*100000)
MHz is same as MCPS
MHz=MCPS = Total Cycles/(Total playout time*100000)