性能

性能指标

CPU执行时间CPU exec time):也称CPU时间,执行某一任务在CPU上花费的时间。

用户CPU时间User time):程序本身所花费的CPU时间。

系统CPU时间System time):为执行程序花费在操作系统上的时间。

时钟周期长度Cycle length):每个时钟周期持续的时间,时钟频率Clock Frequency)的倒数。

时钟周期数CPU cycle):处理器时钟在固定频率下运行。

CPU_exec_time = CPU_cycles * Cycle_length

指令数Number of instructions):程序执行所需要的指令总数。

指令平均时钟周期数CPI):平均每个指令所需要的时钟周期。

CPU_exec_time = N_insts * CPI * Cycle_length

每秒百万条指令数MIPS):程序速度的一种度量。(无法用 MIPS 比较不同 ISA 的计算机;其次,一台计算机上不同程序也有不同的 MIPS)

MIPS = N_insts / (exec_time * 10^6) = Clock_frequency / (CPI * 10^6)

[例] 代码片段比较:请问哪个代码序列执行的指令数更多?哪个执行速度更快?每个代码序列 CPI 分别是多少?

每列指令的 CPI:

指令类别ABC
CPI123

两段代码序列所需指令数量分别如下:

指令类别ABB
序列1212
序列2411

答:序列1共执行 2+1+2=5 条指令,序列2共执行 4+1+1=6 条指令。

CPI_1 = (2*1 + 1*2 + 2*3) / 5 = 2.0
CPI_2 = (4*1 + 1*2 + 1*3) / 6 = 1.5

功耗墙

image-20231107152234197

SPEC CPU 基准评测

image-20231107152420734

谬误 & 陷阱

  1. 谬误1:期望总性能与改进大小成正比

image-20231107153320041

  1. 谬误2

image-20231107153408479

  1. 谬误3

image-20231107153502725

  1. 陷阱1

image-20231107153554490