资源描述
计算机原理 第四章 评估和理解计算机性能 2 本讲简要说明 目的 与要求:掌握计算机中的 性能评价 授课重点: 计算机性能指标 授课难点: 如何合理评价计算机的性能 阅读章节: Computer Organization and Design 第 4章, 计算机原理和设计 第 1 章第 4节 作业安排: Computer Organization and Design P272 4.1、 4.2、 4. 3 (选做 ) 、 4.10 、 4.11和 4.14 (选做 )题 3 制造成本( manufacturing cost) 衡量计算机性能的基本指标 响应时间( Response Time) 执行时间( Execution Time)、等待时间( Latency) 吞吐量( Throughput ) 带宽( Bandwidth) 指令执行速度( MIPS、 MFLOPS) 计算机性能评估 CPU Time=cycle time CPI Instructions / program 基准程序( Benchmark) 主要内容 4 单晶硅锭 圆形薄片 / 硅抛光片 ( 6/8/12寸 ,厚度不足 1mm) IC小片 / 芯片 不合格的用磁 浆点上记号 封装:将芯片固定在塑胶或陶瓷基座上,把芯片上蚀刻出来 的引线与基座底部伸出的引脚连接,盖上盖板并封焊成芯片 约需 400多道工序! “晶圆” / 大芯 片 Integrated Circuits Costs manufacturing process 在考察性能前,先考察成本! 5 Integrated Circuits Costs 公式 Die cost = Dies per wafer = Die Yield = 每个圆晶片上的小片数、集成电路成本都与芯片面积有关! a r e aD ie a r e aw a f e r _ _ Y ie ldw a f e rp e rD ie w a f t e rp e rC o s t _ _ 小片合格率 与芯片成本有关的因素 圆晶价格 圆晶所含小片数 小片合格率 2 ) _ _ _ ( 1 ( 1 area Die area per Defect x + 6 IC cost = Die cost + Testing cost + Packaging cost Final test yield 封装成本( Packaging cost) : 取决于引脚数、散热性等 Other Costs Chip Die Package Test 序列 2 有 6条 . 序列 1 需 2 1+1 2+2 3=10 cycles; 序列 2 需 4 1+1 2+1 3=9 cycles 序列 1 的 CPI=10/5=2; 序列 2 的 CPI=9/6=1.5 虽然序列 2的指令条数 更多,但速度更快! 26 Marketing Metrics (产品宣称指标) MIPS = Instruction Count / Execution Time 106 = Clock Rate / CPI 106 一种用来代替执行时间的指标 Million Instructions Per Seconds 因为每条指令执行时间不同,所以 MIPS是一个平均值 不同机器的指令集不同 程序由不同的指令混合而成 指令使用的频度动态变化 Peak MIPS(不实用) MIPS数不能说明性能的好坏? MFLOPS = FP Operations / Execution Time 106 Million Floating-point Operations Per Second 与机器相关性大 并不是程序中花时间的部分 用 MIPS数表示性 能有没有局限 ? 用 MFLOPS数表示 性能也有局限! 27 Example: MIPS数不可靠! Consider the computer with three instruction classes and CPI measurements from the example 4. Now suppose we measure the code for the same program from two different compilers and obtain the following data: Assume that the computers clock rate is 4GHz. Which code sequence will execute faster according to MIPS? According to execution time? CPU clock cycles 1 = (5 1+1 2+1 3) 109 = 10 109 CPU clock cycles 2 = (10 1+1 2+1 3) 109 = 15 109 Execution time 1 = 10 109 / 4 109 = 2.5 seconds Execution time 2 = 15 109 / 4 109 = 3.75 seconds MIPS 1 = (5+1+1) 109 / 2.5 106 = 2800 MIPS 2 = (10+1+1) 109 / 3.75 106 = 3200 结论: 来自 compiler2 产生代码的 MIPS高, 而 来自 compiler1产生 的代码的执行时间快 。 28 选择性能评价程序( Benchmarks) 用基准程序来评测计算机的性能 基准测试程序是专门用来进行性能评价的一组程序 不同用户使用的计算机用不同的基准程序 基准程序通过运行实际负载来反映计算机的性能 最好的基准程序是用户实际使用的程序或典型的简单程序 基准程序的缺陷 现象:基准程序的性能与某段短代码密切相关时,会被利 用以得到不当的性能评测结果 手段:硬件系统设计人员或编译器开发者针对这些代码片 段进行特殊的优化,使得执行这段代码的速度非常快 例 1: Intel Pentium处理器运行 SPECint时用了公司内部使用的特 殊编译器,使其性能极高 例 2:矩阵乘法程序 SPECmatrix300有 99%的时间运行在一行语句 上,有些厂商用特殊编译器优化该语句,使性能达 VAX11/780的 729.8倍 ! 29 用于性能评估的程序 (Toy) Benchmarks(短小基准程序) 程序短小容易编译,便于仿真或手工编译,因而可用于对新 开发的机器进行性能评测 . (因为新机器往往没有配编译器) 大小: 10-100 line 例: sieve, puzzle, quicksort 缺陷:不是实际使用的程序,只用于新开发的计算机。 Synthetic Benchmarks(综合基准程序) 目的:试图用一个基准程序去涵盖一系列基准程序的特征 做法:使各种语句的执行频度与一系列基准程序中的频度一 致 例: Whetstone(Algol 60Fortran), Dhrystone(AdaC) 缺陷:不是实际用的程序,可特殊优化使评测结果优,但实 际并不如此 Kernels(核心程序段) 实际程序中的耗时较多的关键片断 通常用在科学计算领域测试某个特殊功能的性能 例: Livermore loops(21 loops), Linpack(linear algebra) Real programs(频繁使用的实际程序) e.g., gcc, spice 30 Successful Benchmark: SPEC 1988年, 5家公司( Sun, MIPS, HP, Apollo, DEC )联合 提出 Systems Performance Evaluation Committee (SPEC) SPEC给出一组标准的测试程序、标准输入和测试报告。 它们是一些实际的程序,包括 OS calls、 I/O等 版本 89: 10 programs = 4 for integer + 6 for FP, 用每个程 序的执行时间求出一个综合性能指标 版本 92: SPECInt92 (6 integer programs) and SPECfp92 (14 floating point programs) 整数和浮点数单独提供衡量指标: SPECInt92和 SPECfp92 增加 SPECbase: 禁止使用任何与程序有关的编译优化开关 版本 95: 8 int + 10fp 较新版本: include SPEC HPC96, SPEC JVM98, SPEC WEB99, SPEC OMP2001. SPEC CPU2000 http:/www.spec.org for more details benchmarks useful for 3 years Base machine is changed from VAX-11/780 to Sun SPARC 10/40 31 如何给出综合评价结果 ? Program 1: 1 sec on machine A, 10 sec on machine B Program 2: 1000 sec on A, 100 sec on B What are your conclusions? A is 10 times faster than B for program1. B is 10 times faster than A for Program2. 一种简单的综合评价指标 Total execution time B is 1001/110=9.1 times faster than A 实际上,须考虑每个程序在作业中的使用频度,即加权平均 问题:如果用一组基准程序在不同的机器上测出了 运行时间,那么如何综合评价机器的性能呢? 例: 无法比较 A和 B的 好坏,须用一个 综合的值来表示 32 综合性能评价的方法 可用两种平均值来评价性能 Arithmetic mean(算术平均 ):求和后除 n Geometric mean(几何平均 ):求积后开根号 n 根据算术平均执行时间能得到程序总平均执行时间 根据几何平均执行时间不能得到程序总的执行时间 执行时间的规格化 (测试机器相对于参考机器的性能 ) time on reference machine time on measured machine 平均规格化执行时间不能用算术平均来计算,而应 该用几何平均 program A going from 2 seconds to 1 second as important as program B going from 2000 seconds to 1000 seconds. (算术平均值不能反映这一点!) 算术平均和几何平均各有长处,可灵活使用! 33 Impact of Means on SPECmark89 for IBM 550 Ratio to VAX: Time: Weighted Time: Program Before After Before After Before After gcc 30 29 49 51 8.91 9.22 espresso 35 34 65 67 7.64 7.86 spice 47 47 510 510 5.69 5.69 doduc 46 49 41 38 5.81 5.45 nasa7 78 144 258 140 3.43 1.86 li 34 34 183 183 7.86 7.86 eqntott 40 40 28 28 6.68 6.68 matrix300 78 730 58 6 3.43 0.37 fpppp 90 87 34 35 2.97 3.07 tomcatv 133 138 20 19 2.01 1.94 Mean 54 72 124 108 54.42 49.9 Geometric Arithmetic Weighted Arith. Ratio 1.33 Ratio 1.16 Ratio 1.09 注: “ After 表示 加了特 殊编译 开关后 的结果 。 好的评 价标准 应该对 特殊处 理不敏 感! 该表反映了不同的均值计算法得到的结论可能不同。 34 性能、功耗及能量效率 功耗: 能耗 =C V2 f 功耗逐渐成为处理器性能的主要限制 电源的消耗通常是与性能及价格同样重要的因素 CMOS电路可以通过降低频率来降低电能消耗 最大时钟频率 可调时钟频率 相对性能 相对效率 35 计算机某方面改进,系统的性能能成比例提高吗? 例:假设某个程序在某台计算机上运行时所需的时间是 100秒, 其中 80秒是用来执行乘法操作。若希望使该程序的速度提 高到原来的 5倍,乘法部件的速度应该是原来的多少倍呢? 若其中 90秒用来执行乘法操作,结果又会如何? 受改进影响部分的执行时间 改进后程序的执行时间 = ( Amdahl定律) 改进部分性能提高的倍数 + 未受改进影响部分的执行时间 因为系统性能提高到原来的 5倍,故新的执行时间应该是 20秒 20秒 = 80秒 /n +(100-80)秒, 0 = 80秒 /n 说明如果乘法只是占到总计算量的 80%的话,无论对乘法 部件做何种改进,系统性能都不可能提高到原来的 5倍。 硬件设计的基本策略:使最常用的部分变得更快 36 小结 性能的定义:一般用程序的响应时间或系统的吞吐率表示机 器或系统整体性能 CPU性能的测量(用户程序的 CPU执行时间) 一般把程序的响应时间划分成 CPU时间和等待时间, CPU时间又分成 用户 CPU时间和系统 CPU时间 因为操作系统对自己所花费的时间进行测量时,不十分准确,所以, 对 CPU性能的测算一般通过测算用户 CPU时间来进行 各种性能指标之间的关系 CPU执行时间 =CPU时钟周期数 x 时钟周期 时钟周期和时钟频率互为倒数 CPU时钟周期数 = 程序指令数 x 每条指令的平均时钟周期数 CPI MIPS数在有些情况下不能说明问题,不具有可比性! 性能评价程序的选择 采用一组基准测试程序进行综合 (算术 (加权 )平均 /几何平均 )评测 有些制造商会针对评测程序中频繁出现的语句采用专门编译器,使评 测程序运行效率大幅提高。因此有时基准评测程序也不能说明问题 对某种特定指令集体系结构,提高计算机性能的主要途径有 提高时钟频率(第七章 流水线) 优化处理器中数据通路结构以降低 CPI(第六章 处理器 ) 用编译优化措施来减少指令条数或降低指令复杂度 (第二章 指令系统 ) 37 谢谢!
展开阅读全文