查看原文
其他

异构计算=未来?一文带你秒懂3大主流异构

小团子 CSDN云计算 2019-05-04

戳蓝字“CSDN云计算”关注我们哦!

技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!


作者:Pasca

来源:蛋蛋团(ID:dandan_tuan)


本文旨在梳理和科普,让读者了解异构计算的基本概念和其中不同异构计算方案的侧重点,更多资讯请关注蛋蛋团(ID:dandan_tuan)。


大纲

一、传统计算的困境

二、异构计算的崛起

三、”厨房论“异构计算

四、总结




一、传统计算的困境


广为流传的摩尔定律(英特尔(Intel)创始人之一戈登·摩尔提出)表明:每24个月会将芯片的性能提高一倍。


后来,另外一个英特尔首席执行官大卫·豪斯(David House)提出:预计18个月会将芯片的性能提高一倍。



尽管到目前为止,芯片的发展经历一次次的性能提升。但随着互联网的爆炸式发展和信息化的普及。以及近几年兴起的诸如机器学习、深度学习、人工智能、工业仿真等对计算性能的需求极高的领域崛起后,已经远远超过了传统CPU处理器的除计算性能瓶颈,出现了诸多如并行度不高、带宽不够、时延高等限制。


(来源网络,CPU和GPU的发展趋势对比,)


如上图,GPU的发展比CPU更为迅猛,每一代制程缩减直接带来更多的核心数,同时,GPU 每年有大约40% 的性能提升。


传统CPU芯片计算可以叫同构计算,也可以叫通用计算,设计之初,更多的是注重控制。而GPU设计作为协处理器只为处理CPU难以负载的大量并行计算。


而CPU占据70%的部分晶体管是用来构建Cache还有一部分控制单元,负责逻辑算数的部分并不多。GPU整个就是一个庞大的计算阵列,适合做大量密集型计算类型,就好游戏爱好者,如果想要体验画质更高的游戏画面,就必须买更好GPU的显卡。


总结一下,CPU负责逻辑性强的事物处理和串行计算,GPU则专注于执行高度线程化的并行处理任务(大规模计算任务)。


(来源网络,CPU和GPU架构比较)


通俗一点,CPU好比于笔,你可以拿他画你任何想画的东西。而GPU好比于打印机,打印肯定更快,但是需要CPU的协同。


二、异构计算的崛起





在普通服务器领域亦如此,针对机器学习、深度学习、人工智能、工业仿真等领域,异构计算平台已经成为新宠,而在异构计算江湖中,也是群雄鼎力,存在着三大不同的流派。


CPU+GPU流派、CPU+FPGA流派以及CPU+ASIC流派。


首先我们来讲个小故事,通俗易懂的了解这些流派。


三、”厨房论“异构计算


上文也说了,同构计算或者说通用计算性能的发展已经远远跟不上应用的需求,如近几年的国内的天河2A和神威超算都属于异构超算,接下来几年研发的超算也都属于异构超算,可见,异构超算已经成为中美两国超算领域的趋势。


这里我们引用网上的一个经典“厨房论”异构计算。


在饭店的厨房,通常会有一个大厨(CPU),它会做各种菜(兼容性极好),但是如果做菜之前的大量重复动作(洗菜、切菜)导致它一天做菜的份数明显减少。

并且,由于最近(人工智能时代到来)客人点菜要求越来越高(花样菜式),大厨开始不堪负重。



本来顾客大多要的「炒白菜」,现在一个个都想吃「开水白菜」。


一道是家常菜,一道是国宴菜。然而后者复杂程度(大量数据复杂处理)远远不是前者所能比较。


于是,大厨想着,一大菜我一个做着麻烦,但是我可以请个帮手(协处理器)。比如在切菜方面,这个帮手可以同时处理很多菜品(并行计算),而且很熟练,速度很快(低延时)。


于是,一个负责切菜,一个负责做菜,分工明确。当然,大厨挑选这个帮手也是精挑细选,主要体现在以下方面:


  1. 多样的菜品处理能力,如洗菜切菜一体化(算法性能)——协处理器需要能全面支持需要用到的场景关键算法。

  2. 支持同时、快速加工(数据并行和低延时处理能力)——协处理器需要有大量并行通道,且每个通道支持低延时的数据处理。

  3. 便于大厨操作和菜品存取(接口性能)——和主处理器很方便的数据交互

  4. 学习能力强,新菜式也能学会(配置灵活)——协处理器可以针对计算需求升级迭代

  5. 一天别吃太多(功耗低)——协处理器更低的功耗意味着更低的运行成本,更小的空间占用和更简单的热处理方案。


GPU:手脚麻利但是比较笨的帮厨


CPU和GPU都属于通用处理器,但是和CPU一样,都有一个很大的缺点,CPU和GPU的代码都存在Memory这个“菜谱”中,需要经过取指令,译码,然后才能执行指令。在这个流程中,取指令,译码会开销额外的时间,降低了数据处理速度。

如果说CPU大厨形容为“头脑发达(控制电路多),四肢简单(计算电路少),那么GPU帮厨正好相反。


在GPU中,硬件资源被大量用作逻辑运算单元(ALU),小部分用作控制电路。这为大规模的数据并行处理提供了基础。


于是,当这个帮厨(GPU)被使唤去切菜洗菜时,手脚非常麻利,完成的又快又好。但是如果你让这个帮厨(GPU)去做“土豆切丝,洋葱切片,南瓜雕花……”,可能就没有那么利索了。


这是因为,复杂的控制流程会产生大量的分支(如编程语言中的case和if else),而GPU中一个控制单元要负责好几个计算单元。所以,如果要最大程度地使用GPU,势必要求控制分支越少越好。


FPGA: 功能多变的万能料理机


在厨房中,有一种厨具我相信有很多人都会喜欢,大厨也喜欢,那就是料理机。


有了料理机,大厨终于有可以节省了大量的时间来包饺子了,使用料理机处理肉馅即可。同时,当有需要制作果汁、豆浆时,也可以使用料理机,作为一款多功能料理机,可以满足大厨的多种需求。



FPGA作为一种高性能、低功耗的可编程芯片,中文名叫做”现场可编程门级列阵“。


最耀眼的词语:可编程。


这也意味着,今天可以切土豆丝,明天切土豆片都行。FPGA使用预建的逻辑块和可重新编程布线资源,可以让用户无需使用电路实验板或者烙铁,通过特定的软件开发计算任务,编译后就能自定义配置芯片硬件功能。


只需要OpenCL和HLS(High Level Synthesis)技术,直接把C、C++代码编译成Verilog即可。



在处理海量数据的时候,FPGA 相比于CPU 和GPU,优势在于:FPGA计算效率比CGPU更高,FPGA更接近IO。


正因此,FPGA目前已经占据在了异构计算的主流地位。


ASIC:最强订制料理机


ASIC的中文全称是“特殊订制集成电路”。


关键词:特殊订制。


它是订制的,也意味着不需要去纠结CPU和GPU怎样分配控制资源和计算资源的问题了,想怎么分配就怎么分配。编程语言越接近底层硬件,运行速度越快。


ASIC的设计是直接用软件思维搭建硬件电路,所有的设计是直接建筑在物理硬件(门电路)上的。所以,ASIC不需要取指令和译码,每个时间单位都能专注于数据处理或者传输,大大提高了效能。


直接设计的硬件结构也让数据处理管线真正实现,每一级的处理结果能直接用于下一级的输入,无缝连接。在一定规则下(比如一定芯片面积和布线规则下),并行通道可以最大化叠加。在功耗方面,因为硬件利用的最大化,是所有协处理器里最小的。


如果将协处理器按照性能排行:ASIC > FPAG > GPU。



然而,由于ASIC定制化,导致价格十分高昂,定制的过程漫长,并且功能定制化很难再去更改。


就好比于,大厨今天想做土豆丝,明天土豆片。不好意思,再去定制一台。


AI算法尚处于蓬勃发展、快速迭代的今天,ASIC存在开发周期较长、需要底层硬件编程、灵活性较低等劣势,因此发展速度不及GPU和FPGA。


四、总结


以目标的发展趋势来看,三者用一句话来概括如下:

  • GPU:先发制人的“十项全能”选手,云端终端均拔头筹。

  • FPGA:“变形金刚”,算法未定型前的阶段性最佳选择。

  • ASIC:“专精职业选手”,专一决定效率,AI芯片未来最佳选择。


(七牛云、阿里云异构实例一览)


FPGA目前由于其优点越发得到AI厂商青睐,有望在这几年承担更多的角色。


在云端主要作为GPU计算性能不足的有效补充存在;同时CPU会“变小”,从14nm,甚至是5nm,但是依旧作为控制中心存在,必不可少。


未来芯片的发展前景取决于生态,有望统一在主流的几个软件框架下,形成云端CPU+GPU+FPGA(可选)的多芯片协同场景。




福利

扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!



推荐阅读:


真香,朕在看了!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存