#> RESTKHZ _

休止千鹤 | 我依旧是一名平凡的学生

计算机性能评估

  休止千鹤  |    27/02/2022

性能 Performance

表示计算机性能的参数主要有两种

  • 执行时间 Execution time $[s]$: 一个给定的程序需要多长时间执行完
  • 吞吐量 Throughput $[s^{-1}]$: 在单位时间内可以处理多少任务

而评估处理器最佳的指标, 是执行时间的倒数

$Performance_x \sim \frac{1}{ExTime_x}$

所以相对性能:

$\frac{ExTime_A}{ExTime_B}=\frac{Performance_B}{Performance_A}$

时间测量

Elapsed time

Elapsed time: elapsed real time (or simply real time, or wall-clock time) is the time taken from the start of a computer program until the end as measured by an ordinary clock. Elapsed real time includes I/O time, any multitasking delays, and all other types of waits incurred by the program. (Wikipedia)

说白了就是, 真的去测量一个程序运行时间. 所以包含IO, 多任务造成的延迟阻塞等等.

CPU time [Prozessorausführungszeit]

不包含IO和在别的程序上花费的时间,阻塞等等.

可以再简单分为:

  • user CPU time 在程序上花费的时间(用户空间)
  • system CPU time 这个程序在系统调用花费的时间(内核空间)

CPU time = usr+sys

执行时间计算

$T_{exe}=I_c \times CPI \times T$

  • $T_{exe}$: 一个程序的 CPU time
  • $I_c$: 执行时处理的机器指令数量
  • $CPI$: Cycle per instruction 平均处理每个指令需要多少周期
  • $T$: 处理器时钟频率, 主频

这是一张关系图. 来自某个大学讲义.
table

下面这张图来自南大lecture03.pdf
clock rate和Instr. Set Arch. 可能有关系, 不知道这个课件是否出现错误.

考虑一下单循环处理器(CPI=1) 命令最小命令周期取决与耗时最长的指令. 所以指令对clock rate会有影响.

lecture03

关于CPI

不同类型的指令有不同的CPI, 我们通常使用平均CPI.
$CPI=\sum^{n}_{i=1}(CPI_i\cdot F_i)$

比如:
数学逻辑运算占50%, CPI=1
Load占20%, CPI=2
Store占10%,CPI=2
分支跳转占20, CPI=2

CPI=1.5

MIPS-Rate (million instructions per second)

MIPS-Rate常用作产品指标.(某大学课件: (很可惜)被经常作为常用指标)

$MIPS-Rate \sim \frac{I_c}{ T_{exe} \times 10^6 }$

因为MIPS-Rate并没有覆盖$I_c$,$CPI$和$T$(指令总数, CPI和时钟频率). 所以MIPS-Rate并不可靠.

首先CPI是不同的, 每条指令耗时不同,所以MIPS是平均值.

Peak-MIPS 则选择CPI最小的一组指令, 实际应用参考价值不高. 就像考试出的题都是找你会的出的. 这样的考试除了图一乐没有意义.

有些时候来自于软件的优化可能在性能提升的同时MIPS-Rate不升反降. 比如把MIPS-Rate喜闻乐见的小CPI指令优化掉后, 留下的都是更耗时的指令. 所以MIPS-Rate变低, 但是整个任务耗时却缩短了. 这就是因为这个指标并不考虑$I_c$(指令总数).

MFLOPS通常是高性能机器的指标.

Benchmarks

计算机是需要进入生产环境的. 所以性能测试最好比较接近实际生产环境. 于是最好的测试方法就是给一些实际的应用来模拟一些场景.

然后对其得到的各个Benchmark的结果进行一些简单的处理.

比如简单的直接累加, 算术平均, 几何平均, 加权平均.

Benchmarks之于机器也有缺陷, 就像凯氏定氮法之于奶粉一样…

最后提一句 Standard Performance Evaluation Corporation

Amdahls定律

[=========|==part F==|============]

首先, 优化系数(加速比):

$S=\frac{F}{F_{opt}}$

当F只是整体中的一部分时: (这是一个Amdahls的变用)

$SpeedUp=\frac{1}{(1-F)+\frac{F}{S}}$


Views:

 Comments


ai:

"\"这个符号应该是除号吧?

 Reply


restkhz:(admin)

ai said : "\"这个符号应该是除号吧?
不好意思, 您是指MIPS-Rate那边的公式吧? 那并不是除号. 感谢你提出问题, 我已经修正. 因为博客系统的一个bug导致同一句Latex里出现两个下划线时, 会先被Markdown认为是Bold而被加入HTML标签导致Latex语句从内部被截断, 然后... MathJax就不会把这句话转换成公式了. 另外之前用的CDN出了故障所以也没有去后台看你的回复. 会在下一个版本的博客系统中试图修复这些问题.

 Reply


restkhz:(admin)

ai said : "\"这个符号应该是除号吧?
btw, 你没有留邮箱的话, 我很难通知你这些事. 邮箱地址不会公开显示. 当然, 如果你出于隐私不愿意留下任何联系方式的话, 我也尊重. 希望我的笔记有帮到你.

 Reply