跳转到主要内容

5.10 多核扩展的未来

40 多年来,研究者与设计者一直预言,单处理器将走向终结,多处理器将占据主导地位。直到本世纪初,这种预测还不断被事实否定。第 3 章已经说明,试图发现和利用更多 ILP,在硅面积和功耗方面的效率代价已高到难以承受。当然,多核并不能神奇地解决功耗问题,因为它显然既增加晶体管总数,也增加正在切换的活跃晶体管数量,而这两者正是功耗的主要来源。

本节将看到,能耗问题已经在限制多核扩展,今后的限制很可能也比此前设想的更严重。

ILP 扩展失效,既因为可用 ILP 有限,也因为利用这些 ILP 的效率有限。类似地,两种因素共同决定,单靠增加核心来提高性能,不太可能普遍成功,至少作为加快单个程序的方法如此。一方面是 Amdahl 定律所揭示的并行性利用效率问题,另一方面是决定多核处理器能耗需求的 Dennard 缩放规律失效。

为理解这些因素,我们采用一个简单的工艺缩放模型,依据 Esmaeilzadeh et al.(2012)广泛而详尽的分析。先回顾 CMOS 的能耗和功率。第 1 章给出晶体管切换所需能量:

能量∝电容负载×电压2 \text{能量}\propto\text{电容负载}\times\text{电压}^{2}

CMOS 缩放主要受热功率限制,热功率由静态漏电功率和通常占主导的动态功率组成。功率为:

功率=每晶体管能量×频率×切换晶体管数=电容负载×电压2×频率×切换晶体管数 \begin{aligned} \text{功率} &=\text{每晶体管能量}\times\text{频率}\times\text{切换晶体管数}\\ &=\text{电容负载}\times\text{电压}^{2}\times\text{频率}\times\text{切换晶体管数} \end{aligned}

为理解能量和功率缩放的影响,将较早的 Xeon E5,即 2014/2015 年的 22 nm 工艺,与 2021 年 Xeon Platinum 的 10 nm 工艺比较。图 5.34 根据工艺预测,列出其对能量、功率缩放的影响。注意,功率缩放比大于 1.0,意味着新器件消耗更多功率;这里为原来的 1.79 倍。

比较项目缩放比
器件数量缩放,每个晶体管面积变为四分之一4
频率缩放,依据器件速度预测1.75
预测的电压缩放0.81
预测的电容缩放0.39
每个切换晶体管的能量缩放,CV2CV^20.26
假定切换晶体管比例相同,且芯片达到完整频率缩放时的功率缩放1.79
图 5.34 2014/2015 年的 22 nm 工艺与 Intel 在 2021 年 Xeon Platinum 中使用的当前 11 nm 工艺的比较。

图 5.34(续)。 特征数据来自 International Technology Roadmap for Semiconductors,它多年来为后续半导体工艺指明方向。由于继续缩放面临挑战,新工艺的不确定性增加,这一路线图在 2015 年版后停止。比较展示六年间 Dennard 缩放放缓,以及 Moore 定律放缓的影响;若按 Moore 定律原来的速度,11 nm 本应在 2018/2019 年实现。

译注: 正文使用 10 nm,图注使用 11 nm。表中的 0.39×0.812≈0.260.39\times0.81^2\approx0.26,再乘器件数与频率缩放比,约为 1.791.79,表内数量关系一致。

来看这对较新的 Intel Xeon Platinum 8380 意味着什么。它有 40 核,接近 100 亿晶体管,包括 60 MiB 缓存;运行频率为 2.3 GHz,额定热功率为 270 W,裸片面积为 600 mm²。功耗已经限制时钟频率:八核 Xeon Gold 运行在 3.2 GHz,功耗 140 W。比较 2017–2022 年的 Xeon 版本可见,如果不增加核心数,时钟频率可提高约 50%;若增加核心数,时钟频率基本不变。功耗是关键限制。此外,还可能受到 Amdahl 定律的影响,如下例所示。

例题:功率约束与 Amdahl 定律

假定未来一代处理器有 96 核,但平均只能让 54 核工作。90% 的时间可以利用全部可用核心,9% 的时间可以利用 50 核,1% 的时间必须严格串行。可以期望多大的加速比?假定闲置核心可以关闭且不耗电,不同核心使用数量在时间上的分布使我们只需考虑平均功耗。与一个 99% 的时间都能利用全部处理器的 24 处理器版本相比,该多核的加速比如何?

解答。 在能利用超过 54 核的那 90% 时间内,可用核心数求解如下:

平均处理器使用数=0.09×50+0.01×1+0.90×最大处理器数54=4.51+0.90×最大处理器数最大处理器数=55 \begin{aligned} \text{平均处理器使用数}&=0.09\times50+0.01\times1+0.90\times\text{最大处理器数}\\ 54&=4.51+0.90\times\text{最大处理器数}\\ \text{最大处理器数}&=55 \end{aligned}

于是加速比为:

加速比=1Fraction5555+Fraction5050+(1−Fraction55−Fraction50) \text{加速比} =\frac{1}{ \frac{\mathrm{Fraction}_{55}}{55} +\frac{\mathrm{Fraction}_{50}}{50} +(1-\mathrm{Fraction}_{55}-\mathrm{Fraction}_{50}) } 加速比=10.9055+0.0950+0.01=35.5 \text{加速比} =\frac{1}{\frac{0.90}{55}+\frac{0.09}{50}+0.01} =35.5

再计算 24 个处理器的加速比:

加速比=1Fraction2424+(1−Fraction24) \text{加速比} =\frac{1}{\frac{\mathrm{Fraction}_{24}}{24}+(1-\mathrm{Fraction}_{24})} 加速比=10.9924+0.01=19.5 \text{加速比} =\frac{1}{\frac{0.99}{24}+0.01} =19.5

同时考虑功率约束和 Amdahl 定律,96 处理器版本相对于 24 处理器版本的加速不到两倍。实际上,提高时钟频率所带来的加速,几乎能赶上处理器数量增加到四倍的收益。本章结语还将讨论这些问题。

译注: 本例沿用原书的平均使用数模型与取整结果;由 54=4.51+0.90N54=4.51+0.90N 得 N≈54.99N\approx54.99。Amdahl 公式中的 Fraction 是按串行执行工作量划分的比例,不能一般地与并行执行后各阶段所占时间比例互换。原例直接用同一组百分比计算平均功耗和加速比,读者使用这一简化模型时应注意这一假设边界。

多核的未来在于异构

单纯扩展多核很可能撞上刚才讨论的功率墙。多核的未来将朝更异构的系统发展。对于个人移动设备和桌面系统,很可能采用片上系统(SoC)设计,包含多个通用核心及领域专用加速器。Apple M1、M2 就是很好的例子,下面将简要考察 M1。

数据中心使用的大型多核系统,越来越多地采用基于领域专用体系结构的片外加速器。以更节能的方式实现计算最密集的部分,例如神经网络训练或推理,就能更有效地利用多核内部的通用处理器。数据中心多核是否也会纳入不同类型的通用核心,目前尚无定论,但功耗限制可能推动它们向这个方向发展。

Apple M1:异构的 SoC 多核

2020 年末推出的 M1 包含:

  • 通用 ARM 核心,其中四个是高性能、也更耗电的核心,四个是能效核心。
  • 八核 GPU,图形任务性能可达 2.6 teraops。
  • 16 核神经网络引擎,机器学习推理任务相对于通用核心可加速 10–15 倍,同时功耗更低。
  • 信号处理引擎,负责图像处理以及媒体编码、解码。
  • 加密引擎,用于支持安全隔区(security enclaves)。

对许多应用,M1 以更低功耗提供更高性能。Apple M1 发布约一年后,Intel 推出多种新处理器,也具备其中一些能力,尤其是同时采用性能核心与能效核心。Apple 没有公布两类核心的相对性能和功率数据;对 Intel i9 系列中采用性能核心和能效核心的设计进行测量,可见在不使用 SMT 时,性能核心的性能约为能效核心的 1.5 倍;只有性能核心支持 SMT。对于能利用 SMT 的并行工作负载,性能核心的性能为能效核心的 1.8–2.0 倍。性能核心的功耗为能效核心的 1.3–1.7 倍,具体取决于是否使用 SMT。

表格阅读