案例与习题
作者:Gregory D. Peterson。
译校说明:题号、方括号内的难度标记及尖括号内的章节引用均沿用原书。部分章节引用与本版正文位置不完全一致;例如题目中涉及 Amdahl 定律的若干引用仍写为〈1.9〉,本版相关内容实际在 1.10 节。
案例一:芯片制造的发展趋势
本案例涉及的概念:
- 制造成本
- 制造良率
- 利用冗余容忍缺陷
尽管半导体制造正逼近物理学的基本极限,各公司仍在持续建设制造设施,以跟上 Moore 定律的步伐。每座新晶圆厂的成本都达数百亿美元;要制造新一代计算机芯片,还需要一系列相关技术共同取得进展。这些挑战直接影响能否造出性能更高的芯片,以及芯片的价格。本案例将探讨芯片设计中的一些决策,分析它们如何影响性能、良率、冗余和成本。
习题 1.1
[10/10/10/10/10/10]〈1.6〉 图 1.28 给出了影响 GPU 和 CPU 芯片成本的一组假设数据。接下来的几道题将探讨不同设计决策对这些芯片的影响。
| 芯片 | 裸片面积(mm²) | 估计缺陷密度(每 cm²) | N | 工艺尺寸(nm) | 晶体管数(十亿) | 核心数或 SM 数 |
|---|---|---|---|---|---|---|
| GPU A | 800 | 0.011 | 36 | 4 | 80 | 132 |
| GPU B | 2 × 850 | 0.011 | 37 | 4 | 210 | 160 |
| CPU A | 270 | 0.011 | 36 | 4 | 16 | 8 |
| CPU B | 12 × 75(计算) 1 × 400(I/O) | 0.010 0.010 | 35 34 | 5 6 | 90 | 96 |
a. [10]〈1.6〉 对于一片合格晶圆,GPU A 芯片的良率是多少?
b. [10]〈1.6〉 对于一片合格晶圆,CPU A 芯片的良率是多少?
c. [10]〈1.6〉 GPU B 将两个大型 chiplet 集成为一个封装系统。对于一片合格晶圆,每个 GPU B chiplet 的良率是多少?
d. [10]〈1.6〉 CPU B 将多个不同的 chiplet 集成为一个封装系统。其中,12 个用于计算任务的 chiplet 采用较小的工艺尺寸制造,另有一个用于 I/O 任务的 chiplet 采用较大的工艺尺寸。假设晶圆合格,构成 CPU B 的计算 chiplet 与 I/O chiplet 的良率各是多少?
e. [10]〈1.6〉 假设 GPU B 不采用 chiplet,而是制造成一块更大的单片芯片。此时的良率与原方案相比如何?你还能想到哪些使用 chiplet 更有利的理由?
f. [10]〈1.6〉 假设 CPU B 不采用 chiplet,而是使用较小的工艺节点制造成一块更大的单片芯片,并假定在较小工艺节点下 I/O 功能仍占用相同面积。此时的良率与原方案相比如何?
习题 1.2
[20/20/20/25/25]〈1.6〉 考虑制造上述各类芯片的工厂。我们希望评估应为每类芯片分配多少产能。假设每颗无缺陷的 GPU A 芯片可获得 1000 美元利润,
每颗无缺陷的 CPU A 芯片可获得 100 美元利润。对每类芯片,都假设晶圆直径为 300 mm。
a. [20]〈1.6〉 每片用于制造 GPU A 芯片的晶圆可获得多少利润?
b. [20]〈1.6〉 每片用于制造 CPU A 芯片的晶圆可获得多少利润?
c. [20]〈1.6〉 如果每月需求最多为 5000 颗 GPU A 和 3000 颗 CPU A,而工厂每月能加工 90 片晶圆,应为两类芯片各分配多少片晶圆?
d. [25]〈1.6〉 假设每个无缺陷的 GPU B 产品可获得 2500 美元利润,且每个产品需要两个 chiplet。每片用于制造 GPU B chiplet 的晶圆可获得多少利润?
e. [25]〈1.6〉 假设每个无缺陷的 CPU B 产品可获得 75 美元利润,每个产品需要 12 个计算 chiplet 和一个 I/O chiplet。每片用于制造 CPU B 计算 chiplet 的晶圆,能支持销售多少个 CPU B 产品?每加工一片计算 chiplet 晶圆,需要配套加工多少片 I/O chiplet 晶圆?如果工厂能加工 30 片这类晶圆,应如何在计算 chiplet 与 I/O chiplet 之间分配,才能使利润最大?最大利润是多少?
习题 1.3
[20/5]〈1.6〉 对于良率较低的大型处理器芯片,与其丢弃功能不完整的芯片,不如降价出售,以提高经济效益。某些产品可以按照不同核心数出售多个版本,这些版本也称为库存单位(stock keeping unit,SKU)。例如,可以销售分别包含 8、4、2、1 个核心的 CPU A 芯片。如果全部八个核心均无缺陷,就作为 CPU A8 出售;如果四至七个核心无缺陷,就作为 CPU A4 出售;如果两至三个核心无缺陷,就作为 CPU A2 出售。
为简化计算,用面积为原 CPU A 芯片 1/8 的芯片良率,作为单个核心的良率。再将该良率视为单个核心无缺陷的独立概率。每种配置的良率,则按相应数量核心无缺陷的概率计算。
a. [20]〈1.6〉 单个核心无缺陷的良率,以及 CPU A4、CPU A2 和 CPU A1 的良率各是多少?
b. [5]〈1.6〉 根据(a)的结果,你认为哪些芯片值得封装并出售?说明理由。
习题 1.4
[20/5/25]〈1.6〉 现在考虑用冗余提高 GPU 良率的类似方法。假设 GPU B 由两个 chiplet 构成,每个 chiplet 包含 85 个对称多处理器(原文为 symmetric multiprocessors,SM),相当于 GPU 中的核心。进一步假设,要交付一个包含 160 个 SM 的产品,需要两个可用的 GPU chiplet;每个 chiplet 最多可以有五个 SM 存在缺陷。
与习题 1.3 对 CPU A 的处理相同,以面积为原 GPU B chiplet 的 1/85 的 chiplet 良率,作为单个 SM 的良率。
同样,将该良率视为单个 SM 无缺陷的独立概率。再以至少 80 个 SM 无缺陷的概率,计算整个 chiplet 的良率。
译注:本题原文将 SM 展开为 symmetric multiprocessors;GPU 语境下通常所指的名称为 Streaming Multiprocessor。
a. [20]〈1.6〉 单个 SM 无缺陷的良率,以及每个 GPU B chiplet 的良率各是多少?
b. [5]〈1.6〉 根据(a)的结果,每片用于制造 GPU B chiplet 的晶圆能获得多少利润?与习题 1.2(d)的结果相比如何?
c. [25]〈1.6〉 对 GPU A 也可以作类似分析:假设每块裸片有 144 个 SM,而只要至少 132 个 SM 正常工作,芯片就可以出售。这样的冗余会如何影响每片晶圆的利润?它又会如何改变习题 1.2(c)的答案?
案例二:可扩展计算机系统
本案例涉及的概念:
- Amdahl 定律
- 冗余
- 平均失效前时间(MTTF)
现代系统的规模从微型物联网设备延伸到数据中心和超级计算机。以下习题讨论影响这些系统的实际问题,包括成本、功率与能耗,以及性能随规模的扩展。
大型可扩展计算机系统通常通过提高作业吞吐量(同时处理许多作业)、降低延迟(尽快完成任务),或兼顾两者,来获得高性能。利用并行性是提高性能的重要方法,适用于各种规模:从增加处理器内部的核心数,到增加服务器或节点内的处理器数、插槽数,再到增加数据中心或超级计算机中的服务器数、节点数。
习题 1.5
[10/20/20/20/25]〈1.10〉 将应用程序并行化时,理想加速比应等于处理器数量。实际上,加速比受两方面限制:程序中可并行化部分的比例,以及通信成本等额外开销。Amdahl 定律考虑了前者,却没有考虑后者。
a. [10]〈1.10〉 如果应用程序中可并行化的比例分别为 [80%、90%、95%、99%],忽略通信成本时,使用 N 个处理器的加速比各是多少?
b. [20]〈1.10〉 如果每增加一个处理器,通信开销就增加原始执行时间的 [0.5%、1%、2%、5%],使用 32 个处理器的加速比各是多少?
c. [20]〈1.10〉 如果处理器数量每翻一倍,通信开销就增加原始执行时间的 [0.5%、1%、2%、5%],使用 32 个处理器的加速比各是多少?
d. [20]〈1.10〉 如果处理器数量每翻一倍,通信开销就增加原始执行时间的 [0.5%、1%、2%、5%],使用 N 个处理器的加速比各是多少?
e. [25]〈1.10〉 写出求解下列问题的一般方程:若应用程序原始执行时间中有 P% 可以并行化,而处理器数量每翻一倍,通信开销就增加原始执行时间的 [0.5%、1%、2%、5%],那么使用多少个处理器才能获得最大的加速比?
习题 1.6
[10/20/20/20]〈1.10〉 在习题 1.5 中,各种并行执行方案所处理的问题规模相同,这称为强扩展(strong scaling)。在弱扩展(weak scaling,有时也称为 Gustafson 定律)中,问题规模随处理器数量增加而增大。下面考虑一个采用弱扩展的应用程序的性能,即扩展加速比,同时考虑串行应用程序(基准)中被并行化部分的比例和通信成本。
a. [10]〈1.10〉 如果串行应用程序中可并行化的比例分别为 [80%、90%、95%、99%],忽略通信成本,并假定其余方面都能随处理器数量增加而理想扩展,使用 N 个处理器的扩展加速比各是多少?
b. [20]〈1.10〉 如果每增加一个处理器,通信开销就增加原始执行时间的 [0.5%、1%、2%、5%],使用 32 个处理器的扩展加速比各是多少?
c. [20]〈1.10〉 如果处理器数量每翻一倍,通信开销就增加原始执行时间的 [0.5%、1%、2%、5%],使用 32 个处理器的扩展加速比各是多少?
d. [20]〈1.10〉 如果处理器数量每翻一倍,通信开销就增加原始执行时间的 [0.5%、1%、2%、5%],使用 N 个处理器的扩展加速比各是多少?
习题 1.7
[讨论]〈1.9、1.10〉 世界上规模最大的超级计算机所参加的 Top 500 榜单(top500.org),使用稠密线性代数程序 High Performance LINPACK(HPL)作为基准测试,报告系统实际达到的每秒浮点运算次数(FLOPS)以及理论峰值 FLOPS。该榜单也使用稀疏线性代数程序 High Performance Conjugate Gradient(HPCG),同样报告实际达到的 FLOPS。根据 2024 年 6 月的榜单,排名靠前的计算机在 HPL 上平均达到了峰值 FLOPS 的约 70%,但在 HPCG 上还不到峰值的 2%。
a. 能否将 Top 500 的 HPL 或 HPCG 结果换算为加速比或扩展加速比?请说明理由。
b. 将这些 Top 500 结果与图 1.26 所示超级计算机运行科学计算程序时报告的结果进行比较。
c. 2024 年,一项研究在当时位列 Top 500 榜首的 Frontier 上开展机器学习训练,报告称实际达到了理论每秒运算次数的 32%–38%。1 研究还报告,训练程序的扩展加速比(弱扩展)接近 100%,加速比(强扩展)为 87%–89%。这些结果与(a)、(b)中的情况相比如何?
译注:(c)原文直接用百分数表述 speedup 与 scaled speedup,未在题干中说明这些百分数的归一化基准。
习题 1.8
[10/10/20/20]〈1.10〉 你需要为一个包含 64 个核心的新处理器优化混合应用的性能。处理器上将运行四个应用程序,但它们对资源的需求并不相同。假设系统和应用程序具有图 1.29 所列的特征。你可以针对图中彼此独立的 A–D 场景中的任意一个或全部场景求解。图中的资源占比表示:如果四个应用程序(1–4)全部串行运行,每个应用程序的执行时间在总执行时间中所占的比例。假设将程序的一部分按 X 倍并行化,这一部分的加速比就是 X。
| 场景 | 指标 | 应用程序 1 | 应用程序 2 | 应用程序 3 | 应用程序 4 |
|---|---|---|---|---|---|
| A | 所需资源占比(%) | 35 | 31 | 20 | 14 |
| A | 可并行化比例(%) | 50 | 80 | 60 | 90 |
| B | 所需资源占比(%) | 41 | 28 | 17 | 14 |
| B | 可并行化比例(%) | 90 | 60 | 80 | 50 |
| C | 所需资源占比(%) | 37.5 | 25 | 22 | 15.5 |
| C | 可并行化比例(%) | 80 | 90 | 50 | 60 |
| D | 所需资源占比(%) | 50 | 25 | 12.5 | 12.5 |
| D | 可并行化比例(%) | 60 | 50 | 90 | 80 |
a. [10]〈1.10〉 与串行运行相比,让应用程序 1 使用整个处理器运行,能获得多大加速比?
b. [10]〈1.10〉 与串行运行相比,让应用程序 4 使用整个处理器运行,能获得多大加速比?
c. [20]〈1.10〉 按照应用程序 1 所需资源的比例,将相同比例的核心静态分配给它。如果只有应用程序 1 并行运行,其余应用程序仍串行运行,总体加速比是多少?
d. [20]〈1.10〉 如果按照四个应用程序各自的资源需求比例,分别为它们静态分配一定数量的核心,并让它们全部并行运行,总体加速比是多少?
习题 1.9
[10/10/20/20]〈1.7〉 设计服务器时,可用性是最重要的考虑因素,紧随其后的是可扩展性和吞吐量。
a. [10]〈1.7〉 一个单处理器的 FIT 值为 100。该系统的平均失效前时间(MTTF)是多少?
b. [10]〈1.7〉 如果需要一天才能使系统恢复运行,其可用性是多少?
c. [20]〈1.7〉 假设政府为降低成本,计划用廉价计算机构建超级计算机,而不采用价格昂贵、可靠性高的计算机。包含 1000 个处理器的系统,其 MTTF 是多少?假设其中一个处理器失效,整个系统就会失效。
d. [20]〈1.7〉 最大的超级计算机可以包含 10,000 个甚至更多节点,每个节点又有多个处理器或加速器。如果系统共有 50,000 个处理器,且可靠性特征与上述相同,其 MTTF 是多少?在这种情况下,在发生一次失效之前,我预计能够完成的作业,其最长运行时间是多少?
习题 1.10
[20/20/20]〈1.2、1.7〉 在云服务提供商使用的这类服务器集群中,单个设备失效不会使整个系统崩溃,而是减少系统在任一时刻能够响应的请求数。
a. [20]〈1.7〉 如果一家公司有 10,000 台计算机,每台计算机的 MTTF 为 35 天,只有在 1/3 的计算机失效时才发生灾难性的系统失效,那么系统的 MTTF 是多少?
b. [20]〈1.2、1.7〉 假设停机每小时造成 100,000 美元损失,系统崩溃后需要一天才能恢复运行。每年因停机造成的损失是多少?
c. [20]〈1.2、1.7〉 假设停机每小时造成 100,000 美元损失,系统崩溃后需要一天才能恢复运行。如果每台计算机额外投入 1000 美元,就能使 MTTF 翻倍,这是否是一个好的商业决策?假设计算机的使用寿命为三年。
案例三:计算机系统的能耗与功率
本案例涉及的概念:
- 动态能耗
- 功耗
现代系统的功耗取决于多种因素,包括芯片的时钟频率、效率和电压。以下习题探讨不同设计决策及使用场景对功率和能耗的影响。
习题 1.11
[10/10/10/10]〈1.5、1.9〉 手机承担的任务差异很大,包括播放流媒体音乐或视频、阅读电子邮件,以及日益增多的图像识别、语音识别等机器学习任务。用户要求手机具备较长的电池续航时间,因此降低功率和能耗至关重要。
本题考虑一个不符合现实的场景:手机没有专用处理单元,只配备一个四核通用处理单元。每个核心满负荷运行时消耗 0.5 W 功率。对于要完成的任务,这个四核处理器的速度是所需速度的八倍。
a. [10]〈1.5〉 与满功率运行相比,需要多少动态能量和动态功率?先假设四核处理器只运行 1/8 的时间,其余时间空闲,即在 7/8 的时间内关闭时钟,并假定这段时间内没有漏电。比较总动态能耗,以及核心运行期间的动态功率。
b. [10]〈1.5〉 如果采用频率和电压调节,需要多少动态能量和动态功率?假设在整个期间内,频率和电压都降至原来的 1/8。
c. [10]〈1.5、1.9〉 现在假设电压不能降到原电压的 50% 以下。这个电压称为电压下限(voltage floor);低于该电压,状态就会丢失。因此,频率可以继续下降,电压却不能继续下降。在这种情况下,动态能耗和动态功率分别能节省多少?
d. [10]〈1.5〉 采用 dark silicon(暗硅)方案时,会消耗多少能量?这种方案为每项主要任务设置专用 ASIC 硬件,并在不使用时通过电源门控将其关闭。芯片只保留一个通用核心,其余面积都用于专用单元。对于电子邮件这类任务,通用核心运行 25% 的时间,在其余 75% 的时间内通过电源门控完全关闭。在这 75% 的时间内,一个能耗仅为通用核心 20% 的专用 ASIC 单元运行,完成语音识别等任务。
习题 1.12
[10/10/10]〈1.5〉 如习题 1.11 所述,手机会运行各种各样的应用程序。这里沿用之前的假设:每个核心的功率为 0.5 W。
a. [10]〈1.5〉 假设 80% 的代码可以并行化。要使单个核心达到四路并行代码的执行速度,其频率和电压需要提高多少?
b. [10]〈1.5〉 在(a)中采用频率和电压调节,能够减少多少动态能耗?
译注:(a)原文要求提高单核的频率与电压,(b)仍使用“减少动态能耗”(reduction in dynamic energy)的问法。题干并不保证计算所得一定是节能。
c. [10]〈1.5〉 采用 dark silicon 方案时,会消耗多少能量?这种方案对所有硬件单元使用电源门控,使其可以完全关闭,且不产生漏电。系统提供专用 ASIC,以通用处理器 20% 的功率完成相同的计算。假设每个核心都支持电源门控,图像识别这类任务需要两个 ASIC 和两个核心。与使用四个核心并行运行的基准方案相比,需要多少动态能量?
习题 1.13
[10/10/10/10/10/20]〈1.5、1.9〉 通用处理器针对通用计算进行优化,因此能在大量应用程序上表现良好。不过,一旦把应用领域适当缩小,经过优化的功能单元或专用处理器就可以更加高效。借助 ASIC 或 GPU 等专用硬件,许多机器语言操作能够并发执行。本题从性能和散热两方面,探讨通用处理器与 GPU 之间的权衡。如果不能有效地将热量从计算机中排出,风扇吹回计算机的就会是热风,而不是冷风。
注意:两种方案的区别不只在处理器,片上存储器和 DRAM 也会产生影响。因此,这里的统计数据针对系统,而不是芯片。
| 系统 | 热设计功耗(TDP) | 空闲功率 | 繁忙时功率 |
|---|---|---|---|
| 基于 CPU | 504 W | 159 W | 455 W |
| 基于 GPU | 1838 W | 357 W | 991 W |
| 系统 | 吞吐量 A | 吞吐量 B | 吞吐量 C | A:最大 IPS 的百分比 | B:最大 IPS 的百分比 | C:最大 IPS 的百分比 |
|---|---|---|---|---|---|---|
| 基于 CPU | 5482 | 13,194 | 12,000 | 42% | 100% | 90% |
| 基于 GPU | 13,461 | 36,465 | 15,000 | 37% | 100% | 40% |
译注:图 1.31 的原表没有注明吞吐量的单位,译表不作补充。
a. [10]〈1.9〉 如果一个数据中心使用 CPU 时,有 70% 的时间运行工作负载 A,30% 的时间运行工作负载 B,那么 GPU 系统相对于 CPU 系统的加速比是多少?
b. [10]〈1.9〉 如果一个数据中心使用 CPU 时,有 70% 的时间运行工作负载 A,30% 的时间运行工作负载 B,那么三个系统各自能达到最大 IPS 的百分之多少?
c. [15]〈1.5、1.9〉 在(b)的基础上,假设当 IPS 从最大值的 0% 增加到 100% 时,功率从空闲功率线性增加到繁忙时功率。CPU 系统与 GPU 系统的每瓦性能相比如何?
d. [10]〈1.9〉 如果另一个数据中心有 40% 的时间运行工作负载 A,10% 的时间运行工作负载 B,50% 的时间运行工作负载 C,那么 GPU 系统相对于通用处理器系统的加速比是多少?
e. [10]〈1.5〉 假设一个机架冷却门售价 4000 美元,能够排出 14 kW 的热量。热量只是排到了机房内,要将其排出机房还需额外投入。按照图 1.30 和图 1.31 中的 TDP,一个冷却门能为多少台基于 CPU 或基于 GPU 的服务器散热?
f. [20]〈1.5〉 典型服务器集群每平方英尺最多能够散去 200 W 热量。已知一个服务器机架占用 11 平方英尺,包括前后预留空间,那么(e)中的服务器在一个机架内最多能放多少台?需要多少个冷却门?
译注:原文(b)写“三个系统”,但图 1.30、1.31 只列出 CPU、GPU 两类系统;(e)引用两幅图的 TDP,但 TDP 只列于图 1.30。题首第三项难度标记为 [10],而(c)标为 [15]。以上均保留原书差异。
习题
习题 1.14
[15/10]〈1.9〉 假设我们对一台计算机作了改进,使某种执行模式的速度提高到原来的十倍。测量启用改进模式之后的执行时间,发现其中有 50% 的时间使用了这种改进模式。注意,Amdahl 定律所需的是:在改进前的原始执行时间中,能够使用改进模式的那一部分所占的比例。因此,不能直接将测得的 50% 代入 Amdahl 定律计算加速比。
a. [15]〈1.9〉 这种快速模式带来的总体加速比是多少?
b. [10]〈1.9〉 原始执行时间中有百分之多少被转换成了快速模式?
习题 1.15
[20/10/10/15]〈1.9〉 假设我们考虑改进一个基于 chiplet 的多核处理器,用一个加密硬件 chiplet 替换一个计算核心 chiplet。执行加密操作时,它的速度是正常执行模式的 20 倍。定义“加密占比”为:原始执行时间中用于加密操作的时间比例。
a. [20]〈1.9〉 绘制加速比随加密计算占比变化的曲线。纵轴标注“净加速比”,横轴标注“加密占比”。
b. [10]〈1.9〉 加密占比达到多少时,增加加密硬件能获得 2 倍加速比?
c. [10]〈1.9〉 如果获得了 2 倍加速比,在新的执行时间中,加密操作占多少比例?
d. [15]〈1.9〉 假设失去一个计算核心 chiplet 会使其他计算的性能下降 10%。加密单元的使用比例至少达到多少,才值得这样做?
习题 1.16
[20/20/15]〈1.9〉 对处理器的一部分进行优化时,常常会出现这样的情况:一种指令加快了,其他方面却变慢了。例如,加入一个复杂而快速的浮点单元会占用空间;为了容纳它,可能必须把其他单元移到离中央更远的位置,导致访问那个单元的延迟增加一个周期。基本的 Amdahl 定律方程并没有考虑这种权衡。
a. [20]〈1.9〉 如果新的快速浮点单元使浮点运算的平均速度变为原来的 2 倍,而浮点运算占程序原始执行时间的 20%,忽略对其他指令的影响,总体加速比是多少?
b. [20]〈1.9〉 现在假设加快浮点单元使数据缓存访问变慢,耗时增加到原来的 1.5 倍,即加速比为 2/3。数据缓存访问占执行时间的 10%。此时的总体加速比是多少?
c. [15]〈1.9〉 实现新的浮点运算之后,浮点运算占执行时间的百分之多少?数据缓存访问又占多少?
习题 1.17
[10/10/20/20]〈1.5〉 云计算提供商等机构的服务器集群,必须提供足以应对一天中请求率峰值的计算能力。假设这些服务器在大多数时间里只使用 60% 的容量。进一步假设功率不会随负载线性变化:服务器在 60% 容量下运行时,仍消耗最大功率的 90%。虽然可以关闭一部分服务器,但负载增加时,重启需要的时间太长。现在有人提出一种新系统,可以快速重启,不过处于这种“最低维持运行”状态时,仍需消耗最大功率的 20%。
a. [10]〈1.5〉 关闭 40% 的服务器,能节省多少功率?
b. [10]〈1.5〉 让 40% 的服务器进入“最低维持运行”状态,能节省多少功率?
c. [20]〈1.5〉 将电压降低 20%、频率降低 20%,能节省多少功率?
d. [20]〈1.5〉 让 20% 的服务器进入“最低维持运行”状态,再关闭 20% 的服务器,能节省多少功率?
习题 1.18
[10/10/10/10/5]〈1.5〉 对于必须在规定截止时间前完成任务的实时系统,更早完成计算并没有额外收益。考虑一个物联网系统,即使在最坏情况下,执行所需代码的速度仍是必要速度的两倍。
a. [10]〈1.5〉 如果按当前速度执行,并在计算完成后关闭系统,能节省多少能量?
b. [10]〈1.5〉 如果把电压和频率都降为原来的一半,能节省多少能量?
c. [10]〈1.5〉 考虑另一个物联网系统:核心数多 50%,功率高 30%。如果按当前速度执行,并在计算完成后关闭系统,其能耗与(a)相比如何?
d. [10]〈1.5〉 仍考虑这个核心数多 50%、功率高 30% 的物联网系统。如果将电压和频率都降为原来的三分之一,其能耗与(c)相比如何?
e. [5]〈1.5〉 是否值得使用核心数更多的这个物联网系统?为什么?
习题 1.19
[10/15/15/10/10]〈1.4、1.5〉 体系结构设计者面临的一个挑战是:今天完成的设计,要经过数年的实现、验证与测试才能上市。这意味着设计者必须提前数年预测技术的发展状况,而这种预测有时很难做。
a. [10]〈1.4〉 按照 Moore 定律在历史上体现出的器件缩放趋势,2030 年一颗芯片上的晶体管数应该是 2020 年的多少倍?
b. [15]〈1.5〉 性能提升曾经与这一趋势相吻合。如果性能继续按 20 世纪 90 年代的速度增长,那么到 2030 年,芯片的性能大约应是 VAX-11/780 的多少倍?
c. [15]〈1.5〉 如果按 2010 年代末至 2020 年代初的增长速度计算,对 2030 年性能的较新预测是多少?
d. [10]〈1.4〉 什么因素限制了时钟频率的增长?体系结构设计者现在怎样利用额外的晶体管来提高性能?
e. [10]〈1.4〉 DRAM 容量的增长也放缓了。曾经连续 20 年,DRAM 容量每年提高 60%。如果 8 Gb DRAM 于 2014 年首次出现,而 16 Gb DRAM 到 2019 年才出现,那么这一阶段 DRAM 容量的年增长率是多少?
习题 1.20
[10/5/10/5/10]〈1.2〉 本题通过考察图 1.22 中两种相近的服务器配置,探讨计算机系统的总拥有成本(TCO)。
a. [10]〈1.2〉 假设两台服务器的工作负载都由 70% 的整数运算和 30% 的浮点运算组成。根据图 1.22 中各服务器的 SPEC 整数与浮点吞吐率,哪一台性能更好?
b. [5]〈1.2〉 根据(a)的结果,两台服务器在该工作负载下的性价比如何?
c. [10]〈1.2〉 假设两台服务器都在 60% 的时间里处于繁忙状态,其余时间空闲。繁忙时消耗电源额定功率上限的 90%,空闲时仅消耗上限的 30%。每台服务器一年的能耗是多少?
d. [5]〈1.2〉 假设连续使用 1 W 功率一年的费用为 1 美元。根据(c)的结果,每台服务器每年的用电费用是多少?
e. [10]〈1.2〉 假设服务器使用寿命为五年,把购置成本与每年用电费用都考虑在内,每年的成本各是多少?如果使用寿命改为六年或七年,结果会怎样变化?每台服务器整个使用寿命内的总成本是多少?
译注:原文(c)将一年内的消耗称为 power,此处按量纲译为“能耗”;(d)的条件是每瓦持续使用一年的费用,不是每瓦时的电价。
原书脚注:见 https://arxiv.org/pdf/2312.12705.pdf 。 ↩︎