是什么开启了计算机架构的新黄金十年?
翻译自——EEWORLD online,Daniel Joseph Barry
概要:
云计算、企业和电信网络的许多创新都是基于这样一个假设: 服务器 CPU 的能力将继续按照摩尔定律增长。这个定律预测每平方英寸晶体管的数量将每 18 个月翻一番,从而增加每平方英寸的处理能力。这个预测已经持续了很长时间,以至于我们中的许多人都认为这是理所当然的现象。但现在越来越明显的是,服务器 CPU 处理能力在未来的增长将不会那么明显。到时候,我们怎么办?
摩尔定律的尽头
CPU 处理能力的降低现在已经很明显了,各种措施延长了性能曲线。这表明,不仅摩尔定律在处理器性能方面即将结束,而且登纳德缩放比例定律 [1] 和 Amdahl’s law (阿姆达尔定律)也将结束。处理器性能在过去 40 年的下降趋势如图所示:
上世纪 80 年代 RISC 计算的出现是 Gordon Moore 最初预测的基础,并且真实地显示处理器性能每 18 个月就会翻一番。但是,随着每个芯片时钟频率的限制开始出现,登纳德缩放比例定律和多核 cpu 的解决方案帮助延长了性能曲线。但值得注意的是,即使是在本世纪初,我们也不再处于摩尔定律曲线上,在这段时间里,性能翻倍需要 3.5 年的时间。
阿姆达尔定律指的是通过并行处理可以实现性能改进的极限。虽然并行化流程的执行可以提供初始的性能提升,但是总会有一个限制,因为有些执行任务不能并行化。我们最近发现,当使用多个 CPU 内核的好处减少时,这些限制就会生效,从而导致性能改进之间的时间间隔更长。
从上图可以看出,预测 CPU 处理能力现在需要 20 年才能在性能上翻倍。可想而知,摩尔定律已不复存在。
广为接受的观点是时候调整一下了
长期以来,摩尔定律一直是一种可靠的现象,我们许多人都把它视为理所当然事情。自上世纪 80 年代以来,许多计算机工程师的整个工作生涯都是如此。我们大多数人无法想象一个没有这条法律的世界。
值得关注的是,整个行业都是建立在摩尔定律的前提下,并期望不断提高加工性能。
例如,整个软件行业都假定处理能力将随着数据的增长而增长,并且能够满足未来软件的处理需求。因此,软件架构和设计的效率是不那么完整的。的确,越来越多地使用软件抽象层来使编程和脚本编写更加易用,但这是以处理能力为代价的。
例如,虚拟化得到了广泛的应用,但它是底层物理资源的软件抽象,会产生额外的处理成本。一方面,虚拟化可以更有效地使用硬件资源,但另一方面,依赖服务器 CPU 作为通用处理器来执行虚拟化软件和处理输入 / 输出数据,这给 CPU 处理器带来了相当大的负担。
看看云计算以及电信行业,就能清楚这一后果了。云计算行业的基础:标准商用现货 (COTS) 服务器的功能强大到足以处理任何类型的计算工作负载。使用虚拟化、容器化和其他抽象,可以使用“as-a-service”模型在多个客户机之间共享服务器资源。
电信运营商受到了这一模式的启发,云公司也成功地通过 SDN、NFV 和云本地计算等举措为其网络复制了这种方法。
然而,这里的基本业务模型假设是,随着客户机数量和工作量的增加,只需添加更多的服务器就足够了。但是,正如在前面的图表中可以清楚地看到的那样,在接下来的 20 年中,服务器处理性能每年只会增长 3%。这远远低于预期,即未来 5 年要处理的数据量将增加两倍。
输入硬件加速
你可能会问:为什么处理器性能下降的问题没有更容易地表现出来。云计算公司似乎在没有任何表现问题的情况下取得了成功。因为是硬件加速的功劳。
云计算公司是第一个认识到摩尔定律气数已尽的公司,也是第一个体验到与摩尔定律相关的性能问题的公司。但实用主义思想影响了他们对这种情况下的反应。如果服务器 CPU 性能不会如预期的提高,则需要添加处理能力。换句话说,需要加速服务器硬件。
图灵奖 [2] 得主 John Hennessey 和 David Patterson 是《计算机架构: 量化方法》一书的作者,这本书阐述了摩尔定律的终结,他们以领域特定体系结构 (DSA) 为例,这是专门构建的处理器,可以加速一些特定于应用程序的任务。
其思想是:不同的处理器不是像 CPU 这样的通用处理器来处理大量的任务,而是根据特定任务的需要定制不同类型的。例如由谷歌构建的用于深度神经网络推理任务的张量处理单元 (TPU) 芯片。这是专门为这项任务而构建的,而且由于这是谷歌业务的核心,所以将其卸载到特定的处理芯片上是非常有意义的。
所有云公司都使用了某种类型的加速技术来加速工作负载。图形处理单元 (GPU) 已经适应于支持大量的应用程序,并被许多云公司用于硬件加速。在网络方面,网络处理单元 (NPU) 得到了广泛的应用。GPU 和 NPU 都提供了非常多的小处理器,在这些小处理器上可以将工作负载分解并行运行。
FPGA
在 2010 年,微软 Azure 选择了一条不同的出路:FPGA。
现场可编程门阵列 (FPGA) 已经存在了 40 多年。传统上,它们被用作设计专用集成电路 (ASIC) 半导体芯片的中间环节。FPGA 的优势在于,使用与设计半导体芯片相同的工具和语言,但可以动态地用新的设计重写或重新配置 FPGA。缺点是 FPGA 比 ASIC 更大,更耗电。
然而,随着生产 ASIC 的成本开始上升,也越来越难以证明投资 ASIC 生产的合理性。与此同时,FPGA 变得更加高效和具有成本竞争力。因此,留在 FPGA 阶段并基于 FPGA 设计发布产品是有意义的。
现如今,FPGA 被广泛应用于广泛的行业,特别是在网络和网络安全设备中,它们执行特定的硬件加速任务。
微软 Azure 的灵感来自于探索在标准服务器中使用基于 FPGA 的智能芯片,将计算和数据密集型任务从 CPU 转移到 FPGA 这一想法。如今,这些基于 FPGA 的智能芯片广泛应用于微软 Azure 的数据中心,支持 Bing 和 Microsoft 365 等服务。
FPGA 作为硬件加速的可靠替代品,导致英特尔在 2015 年以 160 亿美元收购了 FPGA 芯片和开发软件的第二大生产商 Altera。
从那以后,几家云公司在其服务产品中加入了 FPGA 技术,包括 AWS、阿里巴巴、腾讯和百度等。
FPGA 真的那么好?
FPGA 的亮点之处在于,它在通用性、功率、效率和成本之间提供了一个很好的折衷。
FPGA 几乎可以用于任何处理任务,可以在 FPGA 上实现并行处理,也可以实现其他处理架构。FPGA 的优点之一,数据路径宽度和寄存器长度等细节可以根据应用程序的需要进行定制。实际上,在 FPGA 上设计解决方案时,最好考虑特定的用例和应用程序,以便真正利用 FPGA 的功能。
功耗方面,FPGA 有多种的选择,即使只是考虑到最大的两个供应商,Xilinx 和英特尔。例如,将用于无人机图像处理的最小 FPGA 与用于机器学习和人工智能的超大 FPGA 进行比较,在每瓦特上 FPGA 通常提供非常好的性能。基于 FPGA 的 Smart NIC[3] 可以处理高达 200Gbps 的数据,而不会超过服务器 PCIe 插槽的功率要求。
由于 FPGA 是可重构性以及可以专门针对应用程序进行定制,因此可以在需要时创建高效的解决方案来完成所需的工作。通用多处理器解决方案的缺点之一是,由于其通用性,在成本上存在开销。通用处理器可以同时做很多事情,但总是很难与设计用于加速特定任务的特定处理器竞争。
市场上有大量的 FPGA 解决方案,可以在合适的价格找到合适的模型来满足你的应用程序需求。与任何芯片技术一样,芯片的成本随着体积的增大而显著降低,FPGA 也是如此。如今,它们作为 ASIC 芯片的替代品被广泛使用,提供了一个容量基础和具有竞争力的价格,这一价格在未来几年会得到改善。
摩尔定律之后我们的生活将会是?
摩尔定律的消亡并不意味着计算技术的消亡。但这确实意味着我们必须重新配置对高性能计算体系结构、编程语言和解决方案设计。这种柳暗花明的背后,显示的正是计算机计算架构的时代变革;新的方法、新的思维、新的目标引领了新的浪潮。2017 年图灵奖的两位得主 John L. Hennessy 和 David A. Patterson 就是这个新浪潮的见证者和引领者。近日他们在 ACM 通讯(Communications of the ACM)发表了一篇长报告《A New Golden Age for Computer Architecture》,详细描述了引发计算机架构新时代到来的种种变化,他们也展望未来的十年将是计算机体系架构领域的“新的黄金十年”。
目前,有几种技术和解决方案可以通过硬件加速提高服务器的性能。FPGA 正在作为一种多功能、强大的勘探候选者。
——————————————————————————
延伸阅读
DSA 专用领域处理器架构
评估处理器性能的指标:程序运行时间,它的决定因素:
程序指令数:由程序代码、编译器、ISA 决定
平均指令执行周期数(CPI):由 ISA 以及微架构决定。
时钟周期:由微架构以及半导体制造工艺决定。
摩尔定律使得处理器晶体管数持续上升,但是因为晶体管功耗和晶体管面积缩小的速度基本相同,因此前 40 年间芯片单位面积的功耗基本不变。
目前,三种技术趋势让传统的通用处理器演进遇到了瓶颈。半导体工艺角度,Dennard Scaling 规律结束,芯片功耗急剧上升,同时摩尔定律减缓,晶体管成本不降低反升。从架构角度,指令级并行以及到达极限,单核时代已告结束;而 Amadahl‘s Law 提示多核架构的速度提升取决于程序中有多少部分无法并行执行,多核架构目前的速度提升也变得越来越慢。从应用角度,处理器应用场景从原来的桌面电脑变成了个人移动设备和云端超大规模服务器,这也带来了新的设计约束。
处理器的设计需求发生了变化。能效比正在成为目前最重要的指标。在移动领域,由于电池容量的限制,必须注重能效比。目前,处理器在移动设备中已经成为继屏幕之后能量消耗最大的元件,因此移动设备中处理器能效比是最关键的问题。在另一个未来处理器最大市场——云端服务器市场,能效比也是最关键的指标。目前数据中心的成本中,散热已经成了最大的成本之一,为了减少成本必须考虑处理器能效比。
为了提高能效比,一种很有希望的架构是针对应用领域做优化的专用领域处理器架构(DSA)。DSA 的优点在于,可以为特定的一类应用(注意不是一种应用,而是一类)做架构优化从而实现更好的能效比。相对于通用(general purpose)处理器,DSA 需要设计时考虑专用领域的特殊需求,也需要设计者能对该领域有深入的理解。DSA 的例子包括为机器学习设计的神经网络处理器,以及为图像和虚拟现实设计的 GPU。DSA 设计将会成为处理器架构的新趋势。
Smart NIC 介绍
Smart NIC 即智能网卡,其核心是通过 FPGA(现场可编程门阵列) 协助 CPU 处理网络负载,编程网络接口功能,具有以下特征:
通过 FPGA 本地化编程支持数据面和控制面功能定制,协助 CPU 处理网络负载;
通常包含多个端口和内部交换机,快速转发数据并基于网络数据包、应用程序套接字等智能映射到到相关应用程序;
检测和管理网络流量。
Smart NIC 能够提升应用程序和虚拟化性能,实现软件定义网络(SDN)和网络功能虚拟化(NFV)的诸多优势,将网络虚拟化、负载均衡和其他低级功能从服务器 CPU 中移除,确保为应用提供最大的处理能力。与此同时,智能网卡还能够提供分布式计算资源,使得用户可以开发自己的软件或提供接入服务,从而加速特定应用程序。
目前业界提供基于 FPGA 的 Smart NIC 的厂商包括 Accolade、BittWare、Enyx、Ethernity、Napatech、Netcope、Reflex CES、Silicom 和 Solarflare,通常集成自 Intel 或 Xilinx 的 FPGA 来实现。此外,Broadcom,Cavium,Intel,Kalray,Mellanox,Netronome,Silicom 和 SolidRun 均可提供基于处理器的 Smart NIC,使用带有集成处理器内核或 FPGA 的处理器或智能 I/O 处理器;亚马逊和谷歌已经开发了 Smart NIC ASIC。
更先进的 SmartNIC 甚至可以虚拟化网络存储,从而简化虚拟服务器和裸机服务器的配置。
绿色的内核可以自由地为应用程序提供服务,而红色内核仍在忙于优化网络。与此同时,网络性能得到改善,内核也得到了释放。例如,使用 8 个内核,每秒 760 万个数据包,提高到使用 0 个内核每秒 8000 万个数据包。这多亏了 SmartNIC 在网络中构建智能,而不是将所有东西都提交到服务器上去处理。
数据中心正在进行改造,以应对高要求应用的挑战。这些高要求应用包括大数据挖掘、人工智能到自动驾驶汽车等不一而足。
网络是将它们整合在一起的关键粘合剂,而 SmartNIC 正在释放处理器能力,以更好地支持应用程序。与此同时,他们正在构建一个智能网络,能够更好地处理日益增长的性能需求,并能够更好地识别和阻止更靠近源的恶意流量。结果是多方面的,其中包括了升级连网的存储,这样它就可以像本地存储一样好地执行所有的操作。
[1] Robert Dennard 在 1974 年提出,晶体管不断变小,但芯片的功率密度不变。随着晶体管密度的增加,每个晶体管的能耗将降低,因此硅芯片上每平方毫米上的能耗几乎保持恒定。由于每平方毫米硅芯片的计算能力随着技术的迭代而不断增强,计算机将变得更加节能。不过,登纳德缩放定律从 2007 年开始大幅放缓,大概在 2012 年接近失效。
[2] 图灵奖(Turing Award),全称“A.M. 图灵奖(A.M Turing Award)”,由美国计算机协会(ACM)于 1966 年设立,专门奖励那些对计算机事业作出重要贡献的个人。其名称取自计算机科学的先驱、英国科学家艾伦·麦席森·图灵。
[3] Smart NIC 即智能网卡,其核心是通过 FPGA(现场可编程门阵列) 协助 CPU 处理网络负载,编程网络接口功能。