选择physx处理器 gpu 计算 matlab 计算_异构型实例科普---我眼中的异构计算

选择physx处理器 gpu 计算 matlab 计算_异构型实例科普---我眼中的异构计算_第1张图片

异构型实例科普---我眼中的异构计算

author:pasca

time:2018/01/27

摘要

本文旨在梳理及加深自身对于异构计算的理解,同时希望能为科普异构计算实例,让读者了解异构计算的基本概念和其中不同异构计算方案的侧重点。

一、传统计算的困境

广为流传的摩尔定律(英特尔(Intel)创始人之一戈登·摩尔提出)表明:每24个月会将芯片的性能提高一倍,后来,另外一个英特尔首席执行官大卫·豪斯(David House)提出:预计18个月会将芯片的性能提高一倍。

选择physx处理器 gpu 计算 matlab 计算_异构型实例科普---我眼中的异构计算_第2张图片

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

选择physx处理器 gpu 计算 matlab 计算_异构型实例科普---我眼中的异构计算_第3张图片

传统CPU芯片计算可以叫同构计算,也可以叫通用计算,设计之初,更多的是注重控制。而GPU设计作为协处理器只为处理CPU难以负载的大量并行计算。如上图,GPU的发展比CPU更为迅猛,每一代制程缩减直接带来更多的核心数,同时,GPU 每年有大约40% 的性能提升。

而CPU占据70%的部分晶体管是用来构建Cache还有一部分控制单元,负责逻辑算数的部分并不多。GPU整个就是一个庞大的计算阵列,适合做大量密集型计算类型,就好游戏爱好者,如果想要体验画质更高的游戏画面,就必须买更好GPU的显卡。总结,CPU负责逻辑性强的事物处理和串行计算,GPU则专注于执行高度线程化的并行处理任务(大规模计算任务)

选择physx处理器 gpu 计算 matlab 计算_异构型实例科普---我眼中的异构计算_第4张图片

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

二、异构计算的崛起

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

选择physx处理器 gpu 计算 matlab 计算_异构型实例科普---我眼中的异构计算_第5张图片

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

选择physx处理器 gpu 计算 matlab 计算_异构型实例科普---我眼中的异构计算_第6张图片

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

三、”厨房论“异构计算

在饭店的厨房,通常会有一个大厨(CPU),它会做各种菜(兼容性极好),但是如果做菜之前的大量重复动作(洗菜、切菜)导致它一天做菜的份数明显减少。并且,由于最近(人工智能时代到来)客人点菜要求越来越高(花样菜式),大厨开始不堪负重。

选择physx处理器 gpu 计算 matlab 计算_异构型实例科普---我眼中的异构计算_第7张图片

选择physx处理器 gpu 计算 matlab 计算_异构型实例科普---我眼中的异构计算_第8张图片

本来顾客大多要的「炒白菜」,现在一个个都想吃「开水白菜」,一道是家常菜,一道是国宴菜,然而后者复杂程度(大量数据复杂处理)远远不是前者所能比较。 于是,大厨想着,一大菜我一个做着麻烦,但是我可以请个帮手(协处理器),比如在切菜方面,这个帮手可以同时处理很多菜品(并行计算),而且很熟练,速度很快(低延时)。于是,一个负责切菜,一个负责做菜,分工明确。 当然,大厨挑选这个帮手也是精挑细选,主要体现在以下方面

  1. 多样的菜品处理能力,如洗菜切菜一体化(算法性能)————协处理器需要能全面支持需要用到的场景关键算法。
  2. 支持同时、快速加工(数据并行和低延时处理能力)———协处理器需要有大量并行通道,且每个通道支持低延时的数据处理。
  3. 便于大厨操作和菜品存取(接口性能)————和主处理器很方便的数据交互
  4. 学习能力强,新菜式也能学会(配置灵活)————协处理器可以针对计算需求升级迭代
  5. 一天别吃太多(功耗低)————协处理器更低的功耗意味着更低的运行成本,更小的空间占用和更简单的热处理方案。

于是,协处理器中GPU、FPGA和ASIC在厨房的”位置“就出来了,让我们一起来看下吧!

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

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

选择physx处理器 gpu 计算 matlab 计算_异构型实例科普---我眼中的异构计算_第9张图片

如果说CPU大厨形容为“头脑发达(控制电路多),四肢简单(计算电路少),那么GPU帮厨正好相反。在GPU中,硬件资源被大量用作逻辑运算单元(ALU),小部分用作控制电路。这为大规模的数据并行处理提供了基础。 于是,当这个帮厨(GPU)被使唤去切菜洗菜时,手脚非常麻利,完成的又快又好。但是如果你让这个帮厨(GPU)去做“土豆切丝,洋葱切片,南瓜雕花……”,可能就没有那么利索了。这是因为,复杂的控制流程会产生大量的分支(如编程语言中的case和if else),而GPU中一个控制单元要负责好几个计算单元。所以,如果要最大程度地使用GPU,势必要求控制分支越少越好。

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

在厨房中,有一种厨具我相信有很多人都会喜欢,大厨也喜欢,那就是料理机。有了料理机,大厨终于有可以节省了大量的时间来包饺子了,使用料理机处理肉馅即可。同时,当有需要制作果汁、豆浆时,也可以使用料理机,作为一款多功能料理机,可以满足大厨的多种需求。

选择physx处理器 gpu 计算 matlab 计算_异构型实例科普---我眼中的异构计算_第10张图片

FPGA作为一种高性能、低功耗的可编程芯片,中文名叫做”现场可编程门级列阵“。最耀眼的词语:可编程。这也意味着,今天可以切土豆丝,明天切土豆片都行。 FPGA使用预建的逻辑块和可重新编程布线资源,可以让用户无需使用电路实验板或者烙铁,通过特定的软件开发计算任务,编译后就能自定义配置芯片硬件功能。

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

选择physx处理器 gpu 计算 matlab 计算_异构型实例科普---我眼中的异构计算_第11张图片

在处理海量数据的时候,FPGA 相比于CPU 和GPU,优势在于:FPGA计算效率比CGPU更高,FPGA更接近IO。 正因此,FPGA目前已经占据在了异构计算的主流地位。

ASIC:最强订制料理机

ASIC的中文全称是“特殊订制集成电路”。它是订制的,也意味着不需要去纠结CPU和GPU怎样分配控制资源和计算资源的问题了,想怎么分配就怎么分配。 编程语言越接近底层硬件,运行速度越快。 ASIC的设计是直接用软件思维搭建硬件电路,所有的设计是直接建筑在物理硬件(门电路)上的。所以,ASIC不需要取指令和译码,每个时间单位都能专注于数据处理或者传输,大大提高了效能。直接设计的硬件结构也让数据处理管线真正实现,每一级的处理结果能直接用于下一级的输入,无缝连接。在一定规则下(比如一定芯片面积和布线规则下),并行通道可以最大化叠加。在功耗方面,因为硬件利用的最大化,是所有协处理器里最小的。 如果将协处理器按照性能排行:ASIC > FPAG > GPU。

选择physx处理器 gpu 计算 matlab 计算_异构型实例科普---我眼中的异构计算_第12张图片

然而,由于ASIC定制化,导致价格十分高昂,定制的过程漫长,并且功能定制化很难再去更改。就好比于,大厨今天想做土豆丝,明天土豆片。不好意思,再去定制一台。 AI算法尚处于蓬勃发展、快速迭代的今天,ASIC存在开发周期较长、需要底层硬件编程、灵活性较低等劣势,因此发展速度不及GPU和FPGA。

四、总结

  • GPU:先发制人的“十项全能”选手,云端终端均拔头筹。
  • FPGA:“变形金刚”,算法未定型前的阶段性最佳选择。
  • ASIC:“专精职业选手”,专一决定效率,AI芯片未来最佳选择。

GPU目前云端应用范围最广。目前大量涉足人工智能的企业都采用GPU进行加速。GPU芯片架构脱胎图像处理,并行计算能力强大。就云计算厂商七牛云而言,目前针对不同场景已经推出如下规格。

选择physx处理器 gpu 计算 matlab 计算_异构型实例科普---我眼中的异构计算_第13张图片

尽管FPGA目前由于其优点越发得到AI厂商青睐,有望在这几年承担更多的角色。在云端主要作为GPU计算性能不足的有效补充存在;同时CPU会“变小”,从14nm,甚至是5nm,但是依旧作为控制中心存在,必不可少。 未来芯片的发展前景取决于生态,有望统一在主流的几个软件框架下,形成云端CPU+GPU+FPGA(可选)的多芯片协同场景。

你可能感兴趣的:(选择physx处理器,gpu,计算,matlab,计算)