计算机性能评测标准
-
时钟频率(处理机主频)
-
指令执行速度(MIPS)-> 百万次
M I P S ( M i l l i o n I n s t r u c t i o n s P e r S e c o n d ) M I P S = 指 令 条 数 执 行 时 间 × 1 0 6 = F z C P I = I P C × F z MIPS(Million \quad Instructions \quad Per \quad Second)\\ MIPS = \frac{指令条数}{执行时间 \times 10^6} = \frac{Fz}{CPI} = IPC \times Fz MIPS(MillionInstructionsPerSecond)MIPS=执行时间×106指令条数=CPIFz=IPC×Fz其中:
Fz
:处理机的工作主频CPI(Cycle Per Instruction)
:每条指令所需平均时钟周期数IPC(Instruction Per Cycle)
:每个时钟周期平均执行的指令条数优点:直观、方便
缺点:
- 不同指令执行速度差别很大
- 指令使用频度差别很大
- 有相当多的非功能性指令
例:
计算
PentiumIV 2GHz
处理机的指令执行速度解: 由于
PentiumIV 2GHz
处理机的IPC
=4(或CPI
=0.25)Fz
=2000MHz
因此$ MIPS_{PentiumIV2G} = Fz \times IPC = 2000 \times4=8000MIPS=8GIPS $
即每秒运行80亿次
-
等效指令速度(吉普森(Gibson)法):加减法50%,乘法15%,除法5%,程序控制15%,其他15%
静态指令使用频度:程序中直接统计
动态指令使用频度:程序执行过程中统计
等 待 指 令 执 行 时 间 T = ∑ i = 1 n ( T i m e i × W e i g h t i ) 等 效 指 令 速 度 M I P S = 1 ∑ i = 1 n W e i g h t i M I P S 等 效 C P I = ∑ i = 1 n C P I i × W e i g h t i 等待指令执行时间 \quad T= \sum_{i=1}^{n}{\left( Time_i \times Weight_i \right)} \\ 等效指令速度 \quad MIPS=\frac{1}{\sum_{i=1}^n{\frac{Weight_i}{MIPS}}} \\ 等效CPI= \sum_{i=1}^n{CPI_i \times Weight_i} 等待指令执行时间T=i=1∑n(Timei×Weighti)等效指令速度MIPS=∑i=1nMIPSWeighti1等效CPI=i=1∑nCPIi×Weighti
例:假设在一般程序中浮点开平方操作FPSQR所占的比例为2%,它的CPI为100;其他浮点操作FP所占的比例为23%,它的CPI=4.0;其余75%指令的CP=1.33,计算该处理机的等效CPI。如果FPSQR操作的CPI也为4.0,重新计算等效。
等 效 C P I 1 = 100 × 2 % + 4 × 23 % + 1.33 × 75 % = 3.92 等效CPI1=100 \times 2%+4 \times 23%+1.33 \times 75%=3.92 等效CPI1=100×2%+4×23%+1.33×75%=3.92
等 效 C P I 2 = 4 × 25 % + 1.33 × 75 % = 2.00 等效CPI2=4 \times 25%+1.33 \times 75%=2.00 等效CPI2=4×25%+1.33×75%=2.00
改进了在用户程序中仅占2%的开平方操作,整个机器的等效运算速度提高了近一倍
-
指令执行速度的4中平均方法
-
算数平均: 1 n ∑ i = 1 n T i m e i \frac{1}{n} \sum_{i=1}^{n} Time_i n1∑i=1nTimei
-
调和平均(用速率来度量): n ∑ i = 1 n 1 R a t e i \frac{n}{\sum_{i=1}^{n}{\frac{1}{Rate_i}}} ∑i=1nRatei1n
-
加权平均
- 加权算术平均: 1 n ∑ i = 1 n T i m e i × W e i g h t i \frac{1}{n} \sum_{i=1}^{n} Time_i \times Weight_i n1∑i=1nTimei×Weighti
- 加权调和平均: 1 ∑ i = 1 n W e i g h t i R a t e i \frac{1}{\sum_{i=1}^{n}{\frac{Weight_i}{Rate_i}}} ∑i=1nRateiWeighti1
-
几何平均
∏ i = 1 n E T R i n \sqrt[n]{\prod_{i=1}^{n} ETR_i} n∏i=1nETRi
其中:n 指不同的程序, E T R i ETR_i ETRi(execution time ratio) 是第 i i i个程序相对于参考机器正交化后的执行时间
几何平均速度与所参考的机器无关,有如下性质:
X i 的 几 何 平 均 值 Y i 的 几 何 平 均 值 = ( X i Y i 的 几 何 平 均 值 ) \frac{X_i的几何平均值}{Y_i的几何平均值} = \left( \frac{X_i}{Y_i}的几何平均值 \right) Yi的几何平均值Xi的几何平均值=(YiXi的几何平均值)
几何平均值的比率等于比率的几何平均值
-
-
基准核心程序(Benchmark)测试法
把应用程序中使用最频繁的那部分程序作为评价计算机性能的标准程序。称为基准测试程序(benchmark)
-
整数测试程序:Dhrystone
用C语言编写,100条语句。包括:各种赋值语句,数据类型和数据区,控制语句,过程调用和参数传送,整数运算和逻辑操作等。
VAX-11/780的测试结果为每秒1757个Dhrystones,即:1VAX MIPS=1757 Dhrystones/Second -
浮点测试程序:Linpack
用FORTRAN编写,主要是浮点加法和浮点乘法操作
用 MFLOPS(Million Floating Point Operations Per Second)表示,GFLOPS、TFLOPS -
SPEC基准程序 System Performance Evaluation Cooperative
SPEC分两类:
处理器密集型基准测试
图形密集型基准测试 -
基准核心程序(Benchmark)测试法
- 定点性能测试SPEC(CPU)
- 定点性能测试SPECFP(CPU)
-
-
峰值计算速度
峰值指令速度:MIPS、GIPS、TIPS
浮点峰值速度:MFLOPS、GFLOPS、TFLOPS
例:
一个由36台计算机组成的Cluster系统,每台计算机内部由4个
PentiumIII
700,计算这个Cluster系统的指令峰值速度。解:
PentiumIII 700MHz,有3条指令流水线,
峰值指令速度为: 700 × 3 = 2100 M I P S 700 \times 3 =2100MIPS 700×3=2100MIPS
Cluster的峰值指令速度= 700 × 3 × 36 × 4 = 302400 M I P S 700 \times 3 \times 36 \times 4=302400MIPS 700×3×36×4=302400MIPS峰值计算速度>持续性能