CPU算力计算
CPU性能评估的几种模型:
- MIPS(Million Instructions Per Second):即每秒能够执行的百万级机器语言指令数,用于计算系统的秒级处理能力,是衡量CPU速度的一个指标。
- DMIPS(Dhrystone Million Instructions executed Per Second):指CPU运行整数运算(Dhrystone)时所表现的相对性能,只适用于评估标量机(对应:向量机)。
- FLOPS(Floating-point Operations Per Second):表示CPU每秒执行的浮点运算次数,主要用于衡量计算机的浮点运算能力。
- CoreMark:以每秒迭代次数作为性能评价。
MIPS计算
MIPS无法在不同的处理器架构下进行比较。由于不是每一条机械指令都能在单周期计算完成,所以计算MIPS的时候会引入一个CPI(Clock cycle per intruction,每条指令的平均时钟周期数)值。公式如下:
MIPS=指令数/(执行时间*1000000)
MIPS=主频/(CPI*1000000)
DMIPS计算
Dhrystone Million Instructions executed Per Second:每秒执行百万条指令,用来计算同一秒内系统的处理能力,即每秒执行了多少百万条指令。
CPU的DMIPS算力计算公式为:内核的数量 * 主频 * DMIPS/MHz 。
例如,六核A55架构,主频为1.6GHz,性能为2.7DMIPS/MHz,算力DMIPS = 6 * 1660MHz * 2.7DMIPS/MHz = 31374 DMIPS.
FLOPS计算
FLOPS:(Floating-point operations per second;缩写:FLOPS)每秒浮点运算次数, 是每秒所执行的浮点运算次数,主要用来评价GPU/CPU的算力。
FMA的全称为Fused Multiply–accumulate operation, 也就是乘积累加指令,这种指令集融合了加法和乘法,使得处理器能够在一个指令中同时完成乘法和加法操作,从而提高了计算效率。
SIMD的全称叫做,单指令集多数据(Single Instruction Multiple Data)。最直观的理解就是,向量计算。比如一个加法指令周期只能算一组数(一维向量相加),使用SIMD的话,一个加法指令周期可以同时算多组数(n维向量相加),二者用时基本相等,极大地提高了运算效率。
FLOPS计算公式如下:
FLOPS=CPU个数*单CPU核数*单核主频*单个周期浮点计算值
1 TFLOPS = 10^3 GFLOPS = 10^6 MFLOPS = 10^12 FLOPS
其中单个周期浮点计算值
的评估方法如下:
对于单精度浮点运算:
(CPU的FMA提供的位宽bit/32bit)*FMA单元数量*单FMA一次可执行的运算次数
对于双精度浮点运算:
(CPU的FMA提供的位宽bit/64bit)*FMA单元数量*单FMA一次可执行的运算次数
以 Intel® Xeon® Gold 5320 Processor举例:
该CPU的核心数26核
单核主频2.20GHz
FMA:2个AVX-512的FMA单元,一次运算融合了乘法和加法指令(delivering ultra-wide (512-bit),2 FMAs ,Fused Multiply Add instructions)
那么该CPU的FLOPS计算:
单精度:(512bit/32bit)*2*2*26*2.2GHz=3660.8GFLOPS
双精度:(512bit/64bit)*2*2*26*2.2GHz=1830.4GFLOPS
CoreMark
TOPS
引用:参考链接