EDABOSS电子论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 696|回复: 1

[转帖] 借人工智能之东风,FPGA趁势而起

[复制链接]

106

主题

13

回帖

96

E币

助理工程师

Rank: 3Rank: 3

积分
225
发表于 2019-1-15 14:39:52 | 显示全部楼层 |阅读模式

2015年,大数据、物联网、人工智能、计算机视觉等行业呈现井喷之势,与之切实相关的上下游产业也发生着天翻地覆的变化,FPGA就是其中之一。


一、What's FPGA
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,是一种半定制的IC芯片。原厂(如XILINX、ALTERA、LATTICE、MicroSemi等)生产出的是空白的不含配置信息的FPGA芯片,顾客可根据自己的需要,利用片上所提供的各种资源开发自己的逻辑,将生成的配置信息写入,从而将其变成自己所需功能的芯片,FPGA可近乎不限次数反复重配。

FPGA提供的资源包括查找表(lookup table)、触发器(flip-flop)、分布式块RAM、硬核乘加器、加法器超前进位链、锁相环(Phase-locked loop),可编程延时链,以及具备可配电平模式,阻抗匹配,输入输出或三态,串行解串功能的I/O管脚,以及连接这一切资源的可编程互连,时钟走线等等。

此外有些FPGA还集成了速率达几十Gb每秒的收发器(Transceiver)、片内处理器硬核(PowerPC、ARM等)、模拟的ADC、DAC等器件,形成了一颗Soc(System on a chip)的单芯片解决方案。

二、FPGA与其他解决方案的对比以及行业应用
A.与专用集成电路(ASIC)对比:
ASIC一旦被流片,其内部结构就处于冻结状态,不能进行修改,如果设计有问题,则需要重新流片,而一次性投入费用( non-recurring engineering)在ASIC成本中是比较昂贵的。


FPGA所有资源都可以近乎不限次数地反复更改为新的连接配置,形成新的芯片功能,因此可重配置形成了FPGA一大特色。具体体现在以下几方面:

1、比ASIC方案需要更短的开发时间,在激烈竞争的行业可以迅速占领市场。例如通讯行业,由于标准变动频繁,需要具备提供兼容的网络从2G到3G,并进一步从3G到4G LTE模式,因此FPGA在标准快速变动时期、或者产品迅速演进时期是一个很好的解决方案;当标准固定下来或产品演进稳定后,对于一些市场容量巨大的行业,ASIC方案会及时跟进,提供更低的价格,需要更少的功耗。

2、FPGA由于集成了片内逻辑分析功能,可以在工作现场展开实况下的调试定位问题。因此FPGA常被用来做ASIC原型验证,减少一次性投入费用(NRE.)打水漂的风险。

3、与ASIC方案相比,使用FPGA方案的产品具备了更长的可维护周期,更小的初期投入成本,因此FPGA已经被保留用于许多垂直行业应用中,因为这些行业产量小并且逻辑版本迭代快,因此不足以摊平NRE.费用。对于这些小批量应用,FPGA方案比更经济并且更具灵活性和产品可维护性。从原厂FAE服务客户名单来看,FPGA的具体应用行业包括数字信号处理,软件定义无线电,ASIC原型设计,医学成像,计算机视觉,语音识别,密码学,生物信息学,计算机硬件仿真,射电天文学,金属检测等。

4、当然FPGA相对ASIC方案也有不足之处,ASIC可以做到更高的集成度,需要更小的硅片面积,达到更高的工作频率,更小的能源消耗;对于大规模且标准化的应用,NRE.费用可以平摊到忽略不计,因此ASIC具备更低的成本。当然随着技术的发展,FPGA也在功耗方面做的越来越出色,有些高端的FPGA芯片甚至接近ASIC的功耗水平,然而硅片面积方面需要具备可编程能力,因此需要冗余资源配备,没有太多优化空间。


B.与处理器方案相比:
FPGA另一大特色就是并行运行,与CPU顺序执行指令不同,FPGA内的所有资源都在按各自时序并行运行:


1.可以利用内部为数众多的查找表、寄存器、乘加器、IP硬核等资源对运算密集型算法进行并行实现,可以利用流水线方式优化路径时序,在一个时钟周期的吞吐率下实现最为复杂的算法;


2.利用内部分布式RAM定制任意所需存储架构、读写及更新方案,充分利用其巨大并行带宽和可灵活定制的存储位宽和深度,减少反复冗余访问外部存储器的需求,提高处理速度和效率。
打个比方,1可以类比为CPU,2可以类比为cache。

FPGA与GPU方案类似,都是并发运行的,区别在于FPGA提供更细粒度、资源分配更灵活的并行执行引擎,并且提供更灵活的cache,此外还提供更低的功耗。

下图说明了不同方案开发时间和可达到性能的关系(摘自XILINX ug998)。



从图中可以看到FPGA在RTL开发流程可以达到最高的性能,但是花费的开发时间是最长的。因此现在各大FPGA原厂都在力推系统级开发方案,包括XILINX的高层次综合(HLS)方案,以及ALTERA的OPENCL方案,可以将开发周期压缩得更短,同时得到较高的性能。

C.FPGA具备的其他特点:
一颗FPGA在一个产品中可以根据不同的工作模式,配置为不同的逻辑功能,只要两种模式存在时间上的需求差异,就可以提高FPGA的价值,以一颗FPGA根据工作模式多次重配,完成需要多颗ASIC才能完成的需求。例如搜索引擎服务提供商在一个分布式服务器单元根据需求在不同时间可以被配置为图像负载,或音频负载,其上需要在不同时间进行分布式图形、音频匹配检索,这时使用FPGA不同配置即可完成不同算法的调整,如果使用ASIC则需要具备多种不同芯片才能完成,如果算法进行了更改需要更换芯片才能实现算法升级。

FPGA可重配功能今天已经发展到了不掉电动态部分可重配的阶段,即FPGA一部分逻辑在正常运行的情况下,另一部分逻辑进行重新配置。如果哪天真要生产变形金刚,FPGA一定是一个不错的单芯片解决方案,既经济又可靠,变形的时候绝对不会宕机,并且还能保持非变形部分的正常工作(开个玩笑)。


三、FPGA的新机遇
目前信息技术最热的领域无疑是大数据和人工智能,FPGA在这两个方向也找到了很好的突破口。以下几则新闻可以让我们一窥端倪:


1.微软开发了带有FPGA“硬件加速芯片”的主板来提升Bing数据中心的整体性能。

  • FPGA相比于传统CPU在处理Bing的自定义算法时快出40倍;
  • 整个系统将会比Bing现有的系统快出2倍,缩减一半现有服务器数量。

2.英特尔167亿美元收购Altera,以期能够实现在大型云数据中心或物联网领域的新增长。

3.微软采用Altera Arria 10 FPGA实现基于卷积神经网络(CNN)算法的数据中心加速。

4.百度在深度学习应用算法中使用FPGA承载卷积神经网络(CNN)。

大型互联网企业的数据中心电耗费用的开销是非常昂贵的,FPGA本身的实现结构高效,在许多应用场景比处理器方案具备更佳的性能功耗比,FPGA方案对数据中心有很大吸引力。

人工智能实现算法例如卷积神经网络(CNN)等,对卷积运算量具有非常密集需求,目前GPGPU是较好的计算承载平台,但对于数据中心和低功耗嵌入式设备而言,都有降低功耗的需求作为驱动力,FPGA在这方面有独特优势,出现了越来越多的应用实例。

四、结语:
就像GPU起初只是用于图形处理一样,如今在深度学习和人工智能方面有着广阔的应用,而GPU也逐渐演变,并引入cudnn等库的支持到开发环境,完善了对通用计算的承载。

同样,FPGA从诞生之初仅为了处理胶合逻辑,后因通信行业繁荣而大发展。如今又在大数据、物联网、人工智能等行业发现了更广阔的天地,因此我们也可看到当今FPGA发生如下变化:

  • FPGA原厂在简化开发难度,引入C和OPENCL语言的开发环境,促进更广泛的应用;
  • 在FPGA中加入硬核浮点乘加器,使最常见的浮点算法能更好更快地移植到FPGA上;
  • 在FPGA中加入ARM、POWERPC、Mali等高性能硬核,和可编程逻辑部分组成SOC,以异构计算使处理器和逻辑分别处理各自擅长的任务类型,并紧密地进行Cache级别的同步的配合,从而整体上达到最佳的性能和功耗。

明天的世界很精彩,在格局未定,竞争激烈的大数据、物联网、人工智能时代,FPGA仍然焕发着勃勃生机。

FPGA设计天然是最原创和核心的,而作为FPGA的开发者,大家都满怀希望,期待能有机会抓住这个机会,打造出具有核心知识产权的架构和逻辑,做出震撼和具有影响力的产品。


积分规则
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|EDABOSS电子论坛

GMT+8, 2024-4-24 15:35 , Processed in 0.038377 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表