本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

【j2开奖】专栏 | 服务器端人工智能,FPGA 和 GPU 到底谁更强?

时间:2016-11-27 09:02来源:天下彩论坛 作者:www.wzatv.cc 点击:
眼下人工智能硬件之争是百花齐放,各有所长。机器之心曾发过一篇李一雷博士写的 ,比较了FPGA与ASIC的优劣势。今天他又将 FPGA与眼下最火的 GPU一较高下,比较了二者在峰值性能、

眼下人工智能硬件之争是百花齐放,各有所长。机器之心曾发过一篇李一雷博士写的,比较了FPGA与ASIC的优劣势。今天他又将 FPGA与眼下最火的 GPU一较高下,比较了二者在峰值性能、灵活性、平均性能功耗和能效比上的差异。那么在与 GPU 的 PK中,FPGA 的表现又会如何呢?

随着 AlexNet 的划时代论文横空出世,GPU 就开始在服务器端的机器学习加速领域称霸。然而,随着研究的深入,人们发现了比 GPU 架构更灵活的 FPGA 在机器学习加速领域也有自己的优势,并有多家公司和学校发表了相关研究结果。那么,现在服务器人工智能应用 GPU 和 FPGA 到底哪个强?本文将作深入分析。

为什么 GPU 和 FPGA 能加速机器学习算法?

  

【j2开奖】专栏 | 服务器端人工智能,FPGA 和 GPU 到底谁更强?

  

【j2开奖】专栏 | 服务器端人工智能,FPGA 和 GPU 到底谁更强?

GPU(上图)与 FPGA(下图)

在很久很久(其实也没多久,大概五年前),人们在跑机器学习算法时用的主要还是 CPU,因为 CPU 通用性好,硬件框架已经很成熟,对于程序员来说非常友好。然而,当机器学习算法的运算量越来越大时,人们发现 CPU 执行机器学习的效率并不高。CPU 为了满足通用性,芯片面积有很大一部分都用于复杂的控制流,留给运算单元的面积并不多。而且,机器学习算法中运算量最大的矩阵运算是一种矢量(Vector)运算,而 CPU 对于矢量运算只能说是部分支持。这时候,GPU 进入了机器学习研究者的视野。GPU 原本的目的是图像渲染,因此使用完美支持矢量运算的 SIMD(单指令流多数据流,single instruction multiple data)架构,而这个架构正好能用在机器学习算法上。GPU 本来就是为了加速 3D 游戏性能的加速器,这里又被用到了加速机器学习应用上,其实是很有趣的一件事。

GPU 运行机器学习算法比 CPU 快很多,但是毕竟不是为机器学习而设计的。有人就要问,如果做一块完全为机器学习设计的运算单元,会不会比 GPU 更有效率?不过,要真的做一块机器学习专用芯片(ASIC)需要极大的决心,首先为了性能必须使用最好的半导体制造工艺,而现在用最新的工艺制造芯片一次性成本就要几百万美元,非常贵。就算你有钱,你还需要拉一支队伍从头开始设计,设计时间往往要到一年以上,time to market 时间太长,风险很大,所以除了 Google 之外很少有人敢做 ASIC。这时候,FPGA 就吸引了大家的注意力。

FPGA 全称「可编辑门阵列」(Field Programmable Gate Array),其基本原理是在 FPGA 芯片内集成大量的数字电路基本门电路以及存储器,而用户可以通过烧入 FPGA 配置文件来来定义这些门电路以及存储器之间的连线。这种烧入不是一次性的,即用户今天可以把 FPGA 配置成一个微控制器 MCU,明天可以编辑配置文件把同一个 FPGA 配置成一个音频编解器。所以说在 FPGA 可以快速实现为机器学习算法开发的处理器架构,而且成本很低(一块 FPGA 开发板大约售价 1000 美金,比真的制造芯片便宜太多)。

ASIC 是一锤子买卖,设计出来要是发现哪里不对基本就没机会改了,但是 FPGA 可以通过重新配置来不停地试错知道获得最佳方案,所以用 FPGA 开发的风险也远远小于 ASIC。

GPU 与 FPGA 的性能分析对比

那么在服务器端 GPU 和 FPGA 谁更强呢?在服务器端,有几个指标可供对比:

峰值性能

灵活性

平均性能

功耗和能效比

其实这几个指标是会互相影响的,不过还是分开说。

从峰值性能来说,GPU(10Tflops) 远远高于 FPGA(<1TFlops)。GPU 上面成千上万个 core 同时跑在 GHz 的频率上还是非常壮观的,最新的 GPU 峰值性能可达 10TFlops 以上。GPU 的架构经过仔细设计(例如使用深度流水线,retiming 等技巧),在电路实现上是基于标准单元库而在关键路径(即芯片中一个时钟周期内延迟最长的路径,直接决定了电路最高运行速度)上可以用手工定制电路,甚至在必要的情形下可以让半导体 fab 依据设计需求微调工艺制程,因此可以让许多 core 同时跑在非常高的频率。

相对而言,FPGA 首先设计资源受到很大的限制,例如 GPU 如果想多加几个 core 只要增加芯片面积就行,但 FPGA 一旦你型号选定了逻辑资源上限就确定了(浮点运算在 FPGA 里会占用很多资源),好汉也会被尿憋死。而且,FPGA 里面的逻辑单元是基于 SRAM-查找表,其性能会比 GPU 里面的标准逻辑单元差好多。最后,FPGA 的布线资源也受限制(有些线必须要绕很远),不像 GPU 这样走 ASIC flow 可以随意布线,这也会限制性能。

  

【j2开奖】专栏 | 服务器端人工智能,FPGA 和 GPU 到底谁更强?

FPGA 布线资源有限,开奖,有些线必须走非常长,从而限制了时钟频率

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容