关于FPGA与深度学习的关系探析详解_第1页
关于FPGA与深度学习的关系探析详解_第2页
关于FPGA与深度学习的关系探析详解_第3页
关于FPGA与深度学习的关系探析详解_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

关于FPGA与深度学习的关系探析详解人工智能的风潮从技术一路蔓延到硬件,让“芯片”成为今年行业里盛极一时的主题。人们关注通用芯片领域里CPU和GPU不断刷新的基准(benchmark),更对专用芯片(ASIC)领域不同场景下不断问世的解决方案表示出了空前的热情。而众所周知,在专用芯片与通用芯片中间,还有一个更为灵活,也更为神秘的领域:FPGA。无论是英特尔天价的收购还是微软与IBM雄心勃勃的计划,都让人对其更加好奇。而“万能芯片”的名称,以及多样化的职责范围:它可以是智能手机里不起眼的一个小组件,也可以是数千美金一块的开发板,也让人对其真面目更加疑惑。FPGA与深度学习的关系究竟是什么?它适合加速何种类型的运算?适合应用于何种场景?6月,机器之心采访了美国伊利诺伊大学香槟分校电气与计算机工程系(UIUCECE)教授、深度学习算法硬件加速解决方案创业公司InspiritIoT创始人陈德铭,与他聊了聊“万能芯片”FPGA在深度学习领域的用法。陈教授于近期宣布兼任国内计算机视觉领域创业公司触景无限的首席科学家。以下为采访实录。机器之心:从算法的角度,FPGA适合于加速哪些运算?FPGA的优势在于可定制化的并行。它可以为了特定算法专门定制逻辑单元。例如,算法中需要完成一个开三次方的运算,在通用芯片上需要一长串指令实现它,但是在FPGA上可以为这个特定运算设计一个单元。定制化的一个“极限”的例子是,如果能够把神经网络中的参数全部二值化、特征图(featuremap)也全部二值化,那么甚至可以不用乘法器,而是用异或门(XORgate)完成计算,会有异常强大的表现。即使不全部二值化,因为全部二值化会让准确度明显下降,只要合理使用各种低位宽的运算,仍可以让FPGA大放异彩。比如在我们最近和IBM合作的ELB-NN项目中,我们可以在功耗低于5瓦的情形下,让神经网络在FPGA上的算力达到10.3TOPS,同时依然维持非常高的准确度。另一个例子是微软的BrainwaveFPGA项目,通过使用特殊的8-bit的浮点运算,可以在高容量的FPGA上达到40TOPS。值得一提的是,LSTM等神经网络每一步操作都很相似,这种整体运算过程是序列的算法也非常适用于用FPGA进行加速。FPGA非常擅长处理流数据,可以设计流水线机制,使得在运算过程中不需要将中间数据存入内存而是直接送到下一步进行操作。机器之心:相比于其他芯片,FPGA在实现深度学习模型时有哪些结构带来的优势?FPGA的引脚比一般的芯片多,同时它的逻辑单元可以完全根据算法要求来重组从而产生定制化的数据通路(datapath),因此非常适合处理大批量流数据。它不像GPU一样需要反复调取片外存储中的数据,理想状态时,只要数据一次性流进去再流出来,算法就完成了,因此,FPGA非常适合具有低延迟需求的任务。另外FPGA的速度快、功率低的特点也让它在能耗方面相比于CPU、GPU也有很大优势。比如我们在FPGA上实现了长期循环卷积网络(Long-termRecurrentConvoluTIonalNetwork),它的速度(latency)比GPU快3.1倍,FPGA的功率比GPU小5.6倍,最终整体能耗降低17倍左右。机器之心:从行业的角度,FPGA都能够用于哪些机器学习与深度学习任务的加速?在终端,有些自动驾驶公司的车上系统中就采用了FPGA完成一些实时检测识别任务。例如,我曾经代表UIUC与小鹏汽车的副总裁、机器学习专家谷俊丽女士交流,她提到,FPGA可以凭借信号处理和低能耗方面的优势,成为一个可靠的第二系统,在汽车的第一系统出现失误的时候,作为安全模式介入进来。IoT方面的应用就更多了,无论是安防还是智能家居,FPGA都会有机会进入市场。在云端,也有结合FPGA的巨大空间。之前,微软的ProjectCatapult就搭建起了大规模的FPGA云服务器。现在Catapult正在运行搜索和数据存储方面的运算,同时,他们也在积极地思考如何把机器学习运算部署在上面,包括是否能将FPGA作为其Azure云的后端支持。亚马逊AWS的FPGA云计算已经很有规模了,并且一直在大力推动之中。最近,国内创业公司深鉴也开始结合华为的云端FPGA来进行深度学习算法的加速,特别在基于LSTM的语音识别上非常有优势。机器之心:能否介绍一下使用高层次综合(HLS)自动生成寄存器级(RTL)实现与手工用硬件描述语言(HDL)进行实现的区别?对于深度学习相关算法来说,HLS是有优势的。当你阅读用高层语言描述的深度学习模型时,你会发现模型是有规律的。比如,卷积操作在C语言里就是一个六层的嵌套循环。此时我就可以针对这个循环开发一个IP核,确定如何进行流水线设计(pipelining),如何分配存储等,然后再将IP核用在FPGA上,进而让神经网络中的所有卷积层来共享IP核即可。此时设计的优化要点是IP核的大小、是否需要多个IP核并行运算等。这是一个非常适用HLS的场景,因为HLS可以自动化地、快速地探索不同的解决方案。如果采用RTL,则需要很多工程师,组成多个团队,每个团队根据工程师过去的设计经验着重探索一个方向,这是一个成本非常高的过程。RTL是一种描述硬件的空间的关系和逻辑时序等逻辑关系的硬件描述语言。这是一门难学的语言,能够熟练掌握的从业者也不多,开发和测试都很慢。夸张点说,如果HLS开发周期以天和周来计算,那么RTL通常是以月和年。从最终结果角度讲,RTL完全手工调制的解决方案是很可能比HLS自动生成的方案效果好的。我们曾经做过比较,在深度学习的情境下,HLS和RTL方法的差距在10%左右。因此,问题在于是否愿意花3-5倍的时间获得额外10%的效果。机器之心:在简化FPGA开发过程这一任务上,研究者做了哪些工作?我们的团队开发了一个研究工具,是一个C语言的模板库,能够根据Caffe和TensorFlow的代码自动生成C语言的表达。然后研究者可以将C语言的代码再交给HLS工具生成RTL代码。C语言是软件工程师普遍掌握的语言,这样的工具让软件工程师也具有FPGA开发能力,而且让开发者更专注于算法,而不用过多考虑底层硬件。而且,这个过程中的中间结果都可以导出,专业人员也可以在自动生成的基础上再进行优化,总而言之,整个开发的效率都得到了极大的提高。这只是举一个例子。还有其它很多的研究人员在做相关的提升深度学习设计效率和质量的各类工具和平台。工业和学术届的都有。学术届比如UCLA的丛京生老师,以及Cornell的张志汝老师等。工业届比较领先的是赛灵思和英特尔自己设计的一些工具。机器之心:各个大公司在FPGA的应用方面都进行了哪些工作?拓展市场的思路都有哪些?IBM和赛灵思正在Power系列上进行合作,致力于在FPGA上加更多的存储,在最新的原型机上,把存储加到了64G,相比于市面上现在常见的最大8或16G,极大扩展了数据带宽,来进行和大数据相关的处理。英特尔收购了Altera,并且致力于帮助Altera进行编译等工具的开发。这是一个FPGA商品化的思路,就像GPU一样,说不定未来的PC里就会有一个FPGA协处理器在CPU旁边完成工作。或者在芯片层面上,CPU片上就有一块FPGA。总而言之,一旦工具做好,整合的机会会有很多。英特尔在智能城市、智慧制造方面都有很多的构想,并且希望借由FPGA实现。再就是微软。它的思路主要就是云计算,除了Bing之外,也希望在进行机器学习任务的Azure云中使用FPGA。机器之心:能否介绍一下InspiritIoT通过哪些产品实现了深度学习算法在FPGA上的加速?我们公司主要有三个产品,按照层次分别是DNN优化器、高层次综合加速编译器(HLScompiler),以及整体FPGA解决方案。DNN优化器的目标是定制一个FPGA友好的模型,把训练好的模型中对于推理来说冗余的部分去掉。例如,训练时使用的浮点数可以被替换为定点数,训练时每层有非常多的单元,但是在推理的时候可以进行剪枝(Pruning),等等。DNN优化器就是以各种高层框架的模型为基础,根据硬件的特性和场景的特性进行自动的优化。高层次综合编译器让开发者得以绕开写Verilog硬件描述语言,将C、C++、CUDA等代码直接编成FPGA,旨在降低硬件开发的门槛,提高软件工程师的生产力。我们的特色是这个编译器可以自然结合深

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论