John Hennessy和David Patterson是体系结构领域的权威,两人在其2017年图灵奖获奖演讲时说,未来十年是体系机构的黄金年代,在CPU性能达到瓶颈的情况下,需要针对特定的领域定制专用处理器,这也就是当前大家熟悉的DSA(Domain Specific Architecture,特定领域架构)。随后,还专门写了专业的论文详细论证此事(见参考文献)。
10年积累的成都网站建设、网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计制作后付款的网站建设流程,更有武清免费网站建设让你可以放心的选择与我们合作。
那么,反向的思考,是否存在足够“通用”的处理器,能够按照摩尔定律,在性能快速提升的同时,依然能够“包治百病”,尽可能满足众多客户的当前和未来一定时期的需求?
在上世纪七十年代到八十年代初,因为流水线等技术的应用,CPU速度提升非常之快,而内存的容量和速度相对落后。通过不定长的指令格式能够提供更高的代码密度,同样大小内存空间能装载更多指令,从而间接的提高运行速度。并且,这时候的编译器能力比较有限,编译器很难做到CPU寄存器的合理利用,也无法针对微架构的具体特征进行深层次的性能优化,这就使得CPU的设计师们偏爱直接内存-内存以及寄存器-内存风格的指令执行模式。这些都是典型的复杂指令集(CISC)的特征。
这一时期,几乎所有的处理器设计都在按照CISC的路线发展,并且走向一个极端:不断加入新的指令,试图在指令集架构层面对高层编程语言提供更直接有效的支持,等等。这种发展路线使得硬件复杂度快速飞升,研发成本不断提高,研发周期变长,而编译器也难以利用这越来越复杂的指令集。
随后,RISC架构兴起。来自IBM的John Cocke认为,更加精简清爽的指令集设计将有助于减少硬件开发难度和成本,同时也有利于编译器进行代码优化工作。当时在在伯克利任教的David Patterson,与其学生们的成果在1983年国际固态电子电路大会(ISSCC)进行展示。尽管制造工艺老旧,主频比DEC、摩托罗拉、Intel等竞争对手同期制造的处理器慢上几乎一半,晶体管数量也只有几分之一,但是更加清爽的新式设计在编译器等其他工具的辅助下竟然将来自工业界的竞争对手们尽数击败。
RISC架构处理器提倡简化指令集设计、固定指令长度、统一指令编码格式、加速常用指令。这在当时来看,与占据主流的CISC设计风格背道而驰。但RISC阵营的David Patterson有了流片成功的芯片与硬件测试结果在手,加之1983年的ISSCC大会上聚集了几位与David Patterson观点相同的支持者,RISC流派开始逐步占据上风。
CISC ISA呈现出符合“二八定律”的特征:80%的指令很少被使用,只有20%的指令经常用到。RISC针对这20%的指令集,进行重组、优化和加速,另外80%指令通过这20%简单指令的组合来完成,性能反而高于CISC。我们无意于介绍CISC和RISC的历史恩怨,之后的情况是:两种理念的ISA也是相互借鉴相互融合,逐步形成了现在的x86、ARM和RISC-v三强竞争的局面。
最开始,所有的应用都是单块“巨”应用系统。企业应用系统经常包含三个主要部分:客户端用户界面、数据库和服务端应用系统。渐渐地,特别是随着越来越多的应用系统正被部署到云端,软件变更受到了很大的限制:应用系统中一个很小部分的一处变更,也需要将整个单块应用系统进行重新构建和部署;单块应用逐渐难以保持一个良好的模块化结构,当对系统进行扩展时,不得不扩展整个应用系统,而不能仅扩展该系统中需要更多资源的那些部分。
这些问题催生出了微服务架构风格:以构建一组小型服务的方式来构建应用系统。除了这些服务能被独立地部署和扩展之外,每一个服务还能提供一个稳固的模块边界,甚至能允许使用不同的编程语言来编写不同的服务。并且,这些服务也能被不同的团队来管理。
微服务的方式,很好地把一个完整的应用系统拆分成用户关心的应用核心本身,以及其他一些辅助的服务,如:
“一切皆服务”,当从微服务的视角,云计算是由不同的服务组成的分层服务体系:每一层就是一个服务族,然后不同层次的服务族组成整个云计算服务体系,这就是我们所熟悉的云计算三层服务IaaS、PaaS和SaaS。更详细的软件堆栈如上图所示,从非云系统所有的“服务”堆栈都需要用户自己拥有并维护,经过IaaS、CaaS、PaaS、FaaS,再到最后的SaaS,一切都由供应商运营维护。从左到右的过程,就是“服务”堆栈的下层layer不断的由云运营商接管的过程。
这也是一个鲜明的“二八定律”案例:80%的任务由云运营商负责,20%的任务由用户负责;站在用户的角度,20%自己负责的任务价值占到80%,而运营商负责的部分只占到到20%的价值。
二八定律(也称80/20法则、关键少数法则、帕累托法则),起源于意大利经济学家维弗雷多·帕累托在洛桑大学注意到了80/20的联系,于他的文章《政治经济学》中说明了该现象,例如:意大利约有80%的土地由20%的人口所有、80%的豌豆产量来自20%的植株等等。该原则在现今企业管理中广泛运用。
回到计算机领域,二八定律也是一个常见的规律:
指令是软件和硬件的媒介,指令的复杂度(单位计算密度)决定了系统的软硬件解耦程度。按照指令的复杂度,典型的处理器引擎大致分为CPU、协处理器、GPU、FPGA、DSA、ASIC。任务在CPU运行,则定义为软件运行;任务在协处理器、GPU、FPGA、DSA或ASIC运行,则定义为硬件加速运行。
鱼和熊掌不可兼得,指令复杂度和编程灵活性是两个互反的特征:指令越简单,编程灵活性越高,因此我们才说软件有更高的灵活性;指令越复杂,性能越高,因此而受到的限制越多,只能用于特定领域或场景的应用,其软件灵活性越差。
常见有六个主要的处理器引擎类型,依据不同类型处理引擎的数量不同,形成了金字塔形的处理器层次结构(Hierarchy):
为了更加简洁的理解六类常见的处理引擎的定位和作用,我们两两合并,定义三大类处理引擎类型:
“尺有所长,寸有所短”,每个类型的处理器都有自己的优势,也都有自己的劣势:
“专业的人做专业的事”,通过CPU + Coprocessor + GPU + FPGA + DSA + ASIC等各种类型处理引擎的混合架构,能够兼顾性能和灵活性:
因为二八定律的存在,在整个系统堆栈里,用户关心的那20%的相对不确定的任务,仍然需要用户通过软件编程实现;而用户不关心的、每个用户应用系统都会存在的、占80%的这些相对确定的任务,则适合通过硬件加速的方式来实现。
处理器芯片是由各类处理器引擎组成的,在云计算数据中心,主要有三类同构处理器芯片。分析如下表所示。
这里我们对三类引擎组成的同构处理器进行分析:
另外,对单个处理器引擎来说,性能和灵活性是一对矛盾,如果只考虑同构计算,则很难达到方方面面兼顾。可以通过板级集成或者芯片内集成异构的方式,实现CPU+GPU/FPGA/DSA的架构,但也是存在一些问题。
传统异构计算的架构,是以CPU为中心,这种架构本身就存在一些问题:
仍然受限于硬件加速处理器的特点,异构计算仍无法兼顾性能和灵活性:
随着CPU、GPU等常见处理引擎的成熟,也随着工艺和Chiplet技术的进步,我们可以在单个芯片集成更多的处理器引擎,使得在单芯片超越2个形态处理引擎成为了可能,超异构处理器(Hyper-heterogeneous Processing Unit,HPU)开始逐步成为现实。
如上图所示,有点像塔防游戏,我们设置了三层“防御”,然后待处理的任务就像是“需要消灭的敌人”(我们假设,待处理的有100个单位任务):
在没有硬件加速的情况下,所有的100个任务都需要CPU来处理;而有了加速之后,CPU只需要处理4个任务。当整个设计足够均衡(各类加速引擎不成为性能的瓶颈)的时候,反过来我们可以说,通过超异构处理器HPU可以实现25倍的性能提升。
受宏观超大规模数据中心的影响,也受软硬件深度融合的加持,可以继续优化这里的“二八定律”,假设我们可以把不同层次处理引擎可处理的任务比例再增强10%。这样:DSA+ASIC完成90个任务,GPU+FPGA完成9个任务,最终CPU只需要完成1个任务。或者反过来说,可以通过软硬件融合,实现通用的超异构处理器GP-HPU,实现100倍的性能提升。
通用超异构处理器GP-HPU,可以算是SOC,但又跟传统的SOC有很大的不同。如果无法认识到这些不同,就无法理解到HPU的本质。下表是一些典型的区别对比。
网站名称:是否存在足够“通用”的处理器,在性能快速提升的同时,还能够“包治百病”?
分享URL:http://www.mswzjz.cn/qtweb/news14/538064.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能