快捷搜索:  as

FPGA和ASIC相比较你更看好哪个

人工智能旭日东升,无数始创公司和老牌公司都在积极开拓以人工智能利用为卖点的智能硬件。今朝,强大年夜的云端人工智能办事(如谷歌的 Alpha Go)已经初现端倪,同时,人们也盼望能把人工智能也带到移动终端,尤其是能够结合未来的物联网利用。

传统实现移动终端人工智能的措施是经由过程收集把终端数据整个传送到云端,之后在云端谋略后再把结果发还移动端,例如苹果的 Siri 办事。

然而,这样的要领会碰到几个问题。第一,应用收集传输数据会孕育发生延迟,很可能数据谋略的结果会必要等待数秒以致数十秒才能传送回终端(应用过 Prisma app 处置惩罚过照片的同伙们应该深有体会)。这样一来,那些必要立即获得谋略结果的利用就不能用这种要领。例如无人机上应用的深度进修躲避障碍物算法,假如它整个在云端履行生怕谋略结果还没送回来无人机已经掉落下来了。

第二,一旦应用收集传送数据,那么数据就有被挟制的风险。是以,那些要求低谋略延迟以及对付数据安然性异常敏感的利用就必要把人工智能算法整个在终端实现,或者至少在终端完成一些预处置惩罚运算然后再把少量运算结果(而不是大年夜量的原始数据)传送到云端完成终极谋略,这就必要移动终端硬件能够快速完成这些运算。另一方面,移动端硬件完成这些运算必要的能量又不能太多,否则电池一下就没电了(想在手机上配功耗 200W+的 Nvidia Pascal 显卡肯定不可!)。

今朝,许多公司正在积极开拓能实现移动端人工智能的硬件。对付移动端人工智能硬件的实现措施,有两大年夜流派,即 FPGA 派和 ASIC 派。FPGA 流派的代表公司如 Xilinx 主推的 Zynq 平台,而 ASIC 流派的代表公司有 Movidius。两大年夜流派各有是非,下面让我来细细分辩。

首先讲讲 FPGA 和 ASIC 的差别。FPGA 全称「可编辑门阵列」(Field Programmable Gate Array),其基滥觞基本理是在 FPGA 芯片内集成大年夜量的数字电路基础门电路以及存储器,而用户可以经由过程烧入 FPGA 设置设置设备摆设摆设文件来来定义这些门电路以及存储器之间的连线。这种烧入不是一次性的,即用户本日可以把 FPGA 设置设置设备摆设摆设成一个微节制器 MCU,翌日可以编辑设置设置设备摆设摆设文件把同一个 FPGA 设置设置设备摆设摆设成一个音频编解码器。ASIC 则是专用集成电路 (Application-Specific Integrated Circuit),一旦设计制造完成后电路就固定了,无法再改变。

用于深度进修加速器的 FPGA(Xilinx Kintex 7 Ultrascle, 上) 和 ASIC(Movidius Myriad 2, 下),对照 FPGA 和 ASIC 就像对照乐高积木和模型。举例来说,假如你发明近来星球大年夜战里面 Yoda 大年夜师很火,想要做一个 Yoda 大年夜师的玩具卖,你要怎么办呢?

有两种法子,一种是用乐高积木搭,还有一种是找工厂开模定制。用乐高积木搭的话,只要设计完玩具形状后去买一套乐高积木即可。而找工厂开模的话在设计完玩具形状外你还必要做很多工作,比如玩具的材质是否会披发气味,玩具在高温下是否会融化等等,以是用乐高积木来做玩具必要的前期事情比起找工厂开模制作来说要少得多,从设计完成到能够上市所必要的光阴用乐高也要快很多。

FPGA 和 ASIC 也是一样,应用 FPGA 只要写完 Verilog 代码就可以用 FPGA 厂商供给的对象实现硬件加速器了,而要设计 ASIC 则还必要做很多验证和物理设计 (ESD,Package 等等),必要更多的光阴。假如要针对特殊场合(如军事和工业等对付靠得住性要求很高的利用),ASIC 则必要更多光阴进行分外设计以满意需求,然则用 FPGA 的话可以直接买军工级的高稳定性 FPGA 完全不影响开拓光阴。然则,虽然设计时间对照短,然则乐高积木做出来的玩具比起工厂定制的玩具要粗拙(机能差)许多(下图),终究工厂开模是量身定制。

别的,假如出货量大年夜的话,工厂大年夜规模临盆玩具的资源会比用乐高积木做便宜许多。FPGA 和 ASIC 也是如斯,在同一光阴点上用最好的工艺实现的 ASIC 的加速器的速率会比用同样工艺 FPGA 做的加速器速率快 5-10 倍,而且一旦量产后 ASIC 的资源会远远低于 FPGA 规划(便宜 10 到 100 倍)。

当然,FPGA 还有另一大年夜特征,便是可以随时从新设置设置设备摆设摆设,从而在不合的场合实现不合的功能。然则,当把 FPGA 实现的加速器算作一个商品卖给用户时,要让用户自己去从新设置设置设备摆设摆设却要花一番功夫。

回到用乐高积木做玩具的例子,玩具厂商可以传播鼓吹这个 Yoda 大年夜师由积木搭起来,以是玩家可以把这些积木从新组合成其他角色(比如天行者路克)。然则一样平常玩家根本不会拆装积木,怎么办?办理规划要么是把目标市场定为精晓积木的专业核心玩家,要么是在玩具后面加一个开关,一样平常玩家只要按一下就可以让积木自动从新组装。很显然,第二个规划必要很高的技巧门槛。

对付 FPGA 加速器来说,假如要把可重设置设置设备摆设摆设作为卖点,要么是卖给有能力自己开拓 FPGA 的企业用户(如百度,微软等公司确凿有在开拓基于 FPGA 的深度进修加速器并且在不合的利用处合将 FPGA 设置设置设备摆设摆设为不合的加速器),要么是开拓一套方便易用能将用户的深度进修收集转化为 FPGA 设置设置设备摆设摆设文件的编译器(深鉴等公司正在考试测验)。

从今朝来看,即应用高真个办事器来做 FPGA 编译都邑必要数分钟的光阴,假如编译在谋略能力较弱的移动终端做必要的光阴就更长了。对付移动终端用户来说,若何说服他们考试测验从新设置设置设备摆设摆设 FPGA 并吸收长达数十分钟的光阴来编译收集并设置设置设备摆设摆设 FPGA 仍旧是一个问题。

我把 FPGA 和 ASIC 的对照总结鄙人面表格里。FPGA 上市速率快,但机能较低。ASIC 上市速率慢,必要大年夜量光阴开拓,而且一次性资源(光刻掩模制作资源)远高于 FPGA,然则机能远高于 FPGA 且量产后匀称资源远低于 FPGA。FPGA 可以完全重设置设置设备摆设摆设,然则 ASIC 也有必然的可设置设置设备摆设摆设能力,只要在设计的时刻就把电路做成某些参数可调的即可。

目标市场方面,FPGA 资源太高,以是得当对价格不是很敏感的地方,比如企业利用,军事和工业电子等等(在这些领域可重设置设置设备摆设摆设可能真的必要)。而 ASIC 因为低资源则得当破费电子类利用,而且在破费电子中可设置设置设备摆设摆设是否是一个伪需求还有待商议。

我们看到的市场现状也是如斯:应用 FPGA 做深度进修加速的多是企业用户,百度、微软、IBM 等公司都有专门做 FPGA 的团队为办事器加速,而做 FPGA 规划的始创公司 Teradeep 的目标市场也是办事器。而 ASIC 则主要瞄准破费电子,如 Movidius。因为移动终端属于破费电子领域,以是未来应用的规划该当因此 ASIC 为主。

您可能还会对下面的文章感兴趣: