其他
是否存在足够“通用”的处理器,在性能快速提升的同时,还能够“包治百病”?
欢迎关注软硬件融合公众号:
http://gec.di.uminho.pt/LEF/pp2122/TuringLecture_H&P19.pdf, A New Golden Age for Computer Architecture, BY JOHN L. HENNESSY AND DAVID A. PATTERSON, Communications of the ACM Volume 62 Issue 2 February 2019 pp 48–60 https://www.jiqizhixin.com/articles/2019-01-30-12,计算机架构的新黄金时代,两位图灵奖得主最新力作 http://www.carch.ac.cn/gzkx/201906/W020190628645936148739.pdf,删繁就简,由简而成——RISC诞生与发展的缩影,黄博文 https://mp.weixin.qq.com/s/h4p2_-RmCFJzXmusQOWbcw,微服务 | Martin Fowler,伍斌(译)
1 从历史中汲取灵感
1.1 RISC架构的兴起
1.2 从微服务到云计算服务分层
基础设施服务,比如VM、容器、网络、存储、安全等; 中间件层服务,如负载均衡、数据库、文件系统、访问控制、消息队列、物联网接入平台等。
1.3 结论:“二八定律”在发生作用
CISC指令太过冗繁,只有20%的指令经常用到,而另外80%的指令则较少用到。所以,RISC就只保留常见的20%的简单指令。 一个应用系统,完全不同的只是应用的核心部分(大约占20%),其他的如网络访问、存储盘、文件系统,也包括数据库、负载均衡、消息队列等(大约占80%)其实都是用户相对不关心,并且是众多应用系统都会用到的组件。 云计算,是一个由众多服务组成服务分层体系,随着不断的抽象封装,云运营商不断接管了80%的众多服务分层,而用户只需要关注20%的应用和函数即可。 等等。
2 分析一下各类处理引擎
2.1 从单位计算复杂度的视角
2.2 从处理器引擎类型数量的视角
CPU,是最通用的处理器引擎,CPU指令是最基础的,因此具有最好的灵活性。这一层级的只有CPU一个形态的处理器。 Coprocessor,是基于CPU的扩展指令集的运行引擎,如ARM的NEON、Intel的AVX、AMX扩展指令集和相应的协处理器。 GPU,本质上是很多小CPU核的并行,因此NP、Graphcore的IPU等都和GPU处于同一层次的处理器类型。 FPGA,从架构上来说,可以用来实现定制的ASIC引擎,但因为硬件可编程的能力,可以切换到其他ASIC引擎,具有一定的弹性可编程能力。 DSA,是接近于ASIC的设计,但具有一定程度上的可编程。覆盖的领域和场景比ASIC要大,但依然存在太多的领域需要特定的DSA去覆盖。 ASIC,是完全不可编程的定制处理引擎,理论上最复杂的“指令”以及最高的性能效率。因为覆盖的场景非常小,因此需要数量众多的ASIC处理引擎,才能覆盖各类场景。
基础设施层任务。基础设施层的任务都相对确定,适合DSA和ASIC处理引擎处理。 应用层可加速部分任务。基础设施层是Vendor负责提供,而应用层则是给到用户应用。用户的应用多种多样,因此应用层的加速也需要一定程度的弹性。这样,GPU和FPGA就相对比较合适。 应用层的不可加速部分。主要是一些通用的处理,如控制以及一些细粒度的计算。协处理器在具体实现上,是CPU的一部分。因此,CPU(包含协处理器)可以兼顾常规的控制处理以及一些计算任务。
2.3 从处理器覆盖场景的视角
CPU及协处理器,最好的灵活可编程性,可以用在任何领域和场景。但性能却是最低。 GPU及FPGA,较好的软件或硬件编程能力,覆盖领域和场景较多,但性能居中无法极致。 DSA及ASIC,性能最好。但DSA的可编程性较少,可以覆盖特定领域;ASIC完全不可编程,只能覆盖特定领域里的某个具体场景。
从宏观的看,绝大部分计算是通过加速完成的,性能有显著的提升; 而从用户应用的角度,应用依然是运行在CPU上,跟之前没有变化,依然是自己“掌控一切”。
3 设计一个理想的宏处理器
3.1 当前的处理器芯片基本都是“单兵作战”
CPU是数据中心最常见的处理器,但受限于性能瓶颈的原因,目前大家都在“八仙过海,各显神通”,通过各种各样的优化手段,来努力提升整个服务器和数据中心的算力。 GPU在HPC、图形图形等领域,有非常大的优势。近些年,随着AI的兴起,与此同时AI算法更新很快,这就使得GPU成为AI最合适的处理器,GPU因此大放光彩。 DSA目前最主要的领域也是在AI,第一款经典的DSA处理器是谷歌TPU。目前,受限于AI算法的快速迭代,仍然没有DSA处理器的大范围落地的案例。即使强大如谷歌能从芯片、框架到服务统统协同优化,但严格来说,TPU也仍然没有大范围落地。
3.2 CPU+xPU的异构处理仍然不够
IO路径。CPU+xPU架构IO路径太长,IO成为整个算力的瓶颈。 输入输出损耗。CPU+xPU加速增加了额外的CPU和xPU之间的数据输入输出损耗。 系统复杂度。异构计算是显式的,CPU侧软件知道在做加速,CPU侧需要处理与加速器侧的数据和消息交互。
GPU异构加速架构。虽然GPU具有非常好的弹性加速能力,覆盖非常多的领域,但受限于GPU的性能效率,无法做到极致性能的加速。 FPGA异构加速架构。FPGA可以做到硬件可编程,可以通过FaaS(此处FaaS为FPGA as a Service)机制实现弹性加速。FPGA的问题在于成本和功耗过高,以及设计规模的约束,只能做非常少量并且规模较小的加速引擎。 DSA异构加速架构。DSA可以做到极致的性能加速能力,但受限于其只针对某个特定领域,所以使用范围受限。
3.3 团队协作成就通用的超异构处理器
我们假设,待处理的有100个单位任务; 第一层“防御”,DSA+ASIC能够覆盖80%的任务(即80个任务)的性能加速,可以很快“消灭”。但受限于覆盖的领域和场景,会有20%(即20个任务)的“漏网之鱼”; 第二层“防御”,GPU+FPGA能够覆盖接下来任务的80%,性能依然强劲,可以搞定剩下任务的80%(即16个任务)。但仍然有一些不是那么适合硬件加速的“顽固敌人”(剩余的4个任务)。 第三层“防御”,CPU和协处理器作为“定海神针”,能够覆盖所有场景。由它们负责“消灭”最后的“顽固敌人”(即处理最后4个任务)。
3.4 超越传统SOC
(正文完)
更多阅读:
Chiplet UCIe协议已定,CPU、GPU、DPU混战开启,未来路在何方? 预见·第四代算力革命(四):宏观算力建设 预见·第四代算力革命(三):面向未来十年的新一代计算架构 预见·第四代算力革命(二):三大主流计算平台CPU、GPU和DSA 预见·第四代算力革命(一):算力综述 “DPU”非DPU 软硬件融合:从DPU到超异构计算 第四代算力革命:基于软硬件融合的超异构计算 亚马逊AWS高性能网络技术SRD:用于弹性可扩展的HPC云优化传输协议 硬件定义软件?还是软件定义硬件? 直面NVIDIA DPU挑战,Intel推出全新处理器家族IPU 软硬件融合视角的SmartNIC、DPU和IPU定义 软硬件融合的时代 DPU/IPU关键价值:云计算的业务和管理分离