计算机体系结构-量化研究方法(第六版)-汉化
  • 关于翻译
  • 前言
    • 我们为什么写这本书
    • 当前版本
    • 选材与组织
    • 内容概述
    • 阅读导览
    • 章节结构
    • 案例研究与习题
    • 补充材料
    • 帮助改进这本书
    • 结语
  • 第一章 量化设计和分析的基础知识
    • 摘要
    • 1.1 介绍
    • 1.2 计算机的类别
      • 物联网/嵌入式计算机
      • 个人移动终端
      • 桌面计算机
      • 服务器
      • 集群/数据仓库规模的计算机
      • 并行性和并行架构的类别
    • 1.3 计算机体系结构的定义
      • 指令集架构:计算机体系结构的“狭隘”观点
      • 名副其实的计算机体系结构:设计组织(Organization)和硬件以满足设计指标和功能需求
    • 1.4 技术趋势
      • 性能趋势:带宽的提升大于延迟
      • 晶体管性能和导线的扩大
    • 1.5 集成电路中功率和能耗的发展趋势
      • 电源和能耗,一个系统的视角
      • 微处理器内的能耗和功率
      • 由于能耗的限制,计算机架构的转变
    • 1.6 成本的发展趋势
      • 时间、数量和商品化的影响
      • 集成电路的成本
      • 成本与价格
      • 制造成本与运营成本
    • 1.7 可靠性
    • 1.8 评测、报告和总结性能
      • 基准评测
        • 桌面应用基准
        • 服务器应用基准
      • 报告性能结果
      • 总结性能结果
    • 1.9 计算机量化设计原则
      • 利用并行化的优势
      • 局部性原理
      • 关注常见情况
      • 阿姆达尔定律
      • 处理器性能方程
    • 1.10 把它们放在一起:性能、价格和功耗
    • 1.11 谬误和陷阱
    • 1.12 结论
    • 1.13 历史观点和引用
    • 案例研究和习题
  • 第二章 内存层次结构设计
  • 第三章 指令级并行及其应用
  • 第四章 矢量、SIMD和GPU架构中的数据级并行性
  • 第五章 线程级并行
  • 第六章 大规模数据中心级计算机的并行性:请求级并行(RLP)和数据级并行
  • 第七章 领域特定架构(DSA)
  • 附录A-指令集设计原则
  • 附录B-内存层次结构的回顾
    • 摘要
    • B.1 介绍
      • 缓存性能回顾
      • 四个内存层次的问题
      • 一个例子:Opteron的数据缓存
  • 附录C-流水线:初级和中级概念
  • 附录D-存储系统
  • 附录E-嵌入式系统
  • 附录F-多机互联
  • 附录G-深入向量处理器
  • 附录H-VLIW和EPIC的硬件和软件
  • 附录I-大规模多处理器和科学计算的应用
  • 附录J-计算机算数(Arithmetic)相关
  • 附录K-指令集架构的回顾
  • 附录L-地址翻译(Address Translation)的高级概念
  • 附录M-历史观点和参考文献
Powered by GitBook
On this page
  1. 第一章 量化设计和分析的基础知识
  2. 1.8 评测、报告和总结性能

基准评测

衡量性能的最佳基准选择是真实的应用程序,例如第1.1节中提到的谷歌翻译。试图运行比实际应用简单得多的程序已经导致了性能上的缺陷。这方面的例子包括

  • 内核,它是实际应用中的小的、关键的部分。

  • 玩具程序,这是初级编程作业中的100行程序,例如Quicksort。

  • 合成基准,这是发明的假程序,试图与真实应用程序的运行情况和行为相匹配,如Dhrystone。

今天,这三种方法都是不可靠的,通常是因为编译器作者和架构师可以合谋使计算机在这些替身程序上显得比在真实的应用程序上更快。遗憾的是,你们的作者--在本书第四版中放弃了关于使用合成基准来描述性能的谬论,因为我们认为所有的计算机架构师都认为这是不可靠的--合成程序Dhrystone在2017年仍然是嵌入式处理器最广泛引用的基准!

另一个问题是基准测试的运行条件。提高基准性能的一种方法是使用特定于基准的编译器标志;这些标志往往会引起在许多程序上不合法的转换,或者会减慢其他程序的性能。为了限制这一过程并提高结果的重要性,基准开发人员通常要求供应商对同一语言(如C++或C)的所有程序使用一个编译器和一组标志。除了编译器标志的问题外,另一个问题是是否允许修改源代码。有三种不同的方法来回答这个问题:

  1. 不允许修改源代码。

  2. 允许修改源代码,但基本上是不可能的。例如,数据库基准依赖于标准的数据库程序,这些程序有数千万行的代码。数据库公司极不可能为提高一台特定计算机的性能而进行修改。

  3. 允许修改源代码,只要修改后的版本产生相同的输出。

基准设计者在决定允许修改源代码时面临的关键问题是,这种修改是否会反映真实的实践并为用户提供有用的观察(insight),或者这些修改是否只是降低了基准作为真实性能预测器的准确性。正如我们将在第7章中看到的那样,特定领域架构的设计师在为定义明确的任务创建处理器时,常常遵循第三种选择。

为了克服把太多的鸡蛋放在一个篮子里的危险,基准应用程序的集合,称为基准套件,是衡量具有各种应用的处理器的性能的流行方法。当然,这样的集合只会和它的组成部分——单个基准一样好。尽管如此,这种套件的一个关键优势是,任何一个基准的弱点都会因为其他基准的存在而有所缓解。基准套件的目标是,它将描述两台计算机的实际相对性能,特别是对于客户可能运行的不在套件中的程序。

一个值得警惕的例子是《电子设计新闻》的嵌入式微处理器基准联盟(Electronic Design News Embedded Microprocessor Benchmark Consortium,EEMBC,发音为 "大使馆")的基准。

它是一套拥有41个内核(kernel)测试的基准,用于预测不同的嵌入式应用的性能:汽车/工业、消费、网络、办公自动化和电信。EEMBC报告了未经修改的性能和 "full fury "的性能,在这种情况下几乎什么(修改)都能做。由于这些基准使用小内核,并且由于报告选项,EEMBC并不具有很好的预测现场不同嵌入式计算机的相对性能的声誉。这种不成功是EEMBC试图取代的Dhrystone仍然被使用的原因,令人遗憾。

创建标准化基准应用套件的最成功的尝试之一是SPEC(标准性能评估公司),它起源于20世纪80年代末为工作站提供更好的基准的努力。正如计算机行业随着时间的推移而发展一样,对不同的基准套件的需求也是如此,现在有SPEC基准来覆盖许多应用类别。所有的SPEC基准套件和它们的报告结果都可以在http://www.spec.org。

尽管我们在下面的许多章节中集中讨论了SPEC基准,但许多基准也是为运行Windows操作系统的PC开发的。

Previous1.8 评测、报告和总结性能Next桌面应用基准

Last updated 2 years ago