自去年 Alpha Go打败围棋高手后,人工智能受到越来越多的关注,许多公司正在积极开发能实现移动端人工智能的硬件,尤其是能够结合未来的物联网应用,对于移动端人工智能硬件的实现方法,有两大流派,即 FPGA 派和 ASIC 派。FPGA 流派的代表公司如 Xilinx 主推的 Zynq 平台,而 ASIC 流派的代表公司有 Movidius。两大流派各有长短,下面让小编来细细分说。
FPGA——现场可编程门阵列
ASIC具有高性能、低功耗的优势,但它们包含的任何算法——除了那些在软件内部处理器内核执行的——其余都是“冻结的”。所以这个时候我们就需要现场可编程门阵列(FPGA)了。早期的FPGA器件的架构相对简单——只是一系列通过可编程互连的可编程模块。
FPGA最厉害的地方是,我们可以配置它的可编程架构来实现任意我们需要的数字功能组合。另外,我们可以以大规模并行的方式实施算法,这意味着我们可以非常迅速和有效地执行大数据的处理。
ASIC——特定应用集成电路
让我们从特定应用集成电路(ASIC)开始。正如其名称所表示的,这是因特定目的而创建的设备,一旦设计制造完成后电路就固定了,无法再改变。当大多数人听到这个词ASIC时,他们的“下意识”反应是,假设它是数字设备。事实上,不论它是模拟的、数字的,或两者的混合,任何定制的芯片都是一个ASIC。然而,对于这些讨论的目的,我们应该假设这是一个完全或主要部分是数字性质的芯片,任何模拟和混合信号功能是沿着物理接口线(物理层)或锁相回路(PLL)的。
比较 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 上市速度快,但性能较低。ASIC 上市速度慢,需要大量时间开发,而且一次性成本(光刻掩模制作成本)远高于 FPGA,但是性能远高于 FPGA 且量产后平均成本远低于 FPGA。FPGA 可以完全重配置,但是 ASIC 也有一定的可配置能力,只要在设计的时候就把电路做成某些参数可调的即可。我们看到的市场现状也是如此:使用 FPGA 做深度学习加速的多是企业用户,百度、微软、IBM 等公司都有专门做 FPGA 的团队为服务器加速,而做 FPGA 方案的初创公司 Teradeep 的目标市场也是服务器。而 ASIC 则主要瞄准消费电子,如 Movidius。由于移动终端属于消费电子领域,所以未来使用的方案应当是以 ASIC 为主。
本文由航大物联编辑整理(www.lrist.com),如有侵权请联系本站。