FPGA/ASIC技术
彼得·蒂尔在其大名鼎鼎的《从0到1》中曾经说过:对未来明确的乐观可以让你创造出想要的未来,而对未来明确的悲观则让人走入山寨。对于引领全球FPGA发展的赛灵思来说,他们就是以明确的乐观创造出了自己想要的未来。我还记得去年应邀在北京采访赛灵思全球战略与市场营销高级副总裁Steve Glaser时, 他所描绘的赛灵思历经5年的公司转型及发展战略蓝图前景一片光明。如今他们开始享用转型的红利了—— 除了FPGA 所服务的传统市场, 一个新趋势值得业界关注 – FPGA 在超级数据中心的主流应用在加速!
美国时间11月30日,在全球云计算领头羊亚马逊在拉斯维加斯所主办的AWS re:Invent 2016盛会上, AWS CEO Andy Jassy做了主题演讲,并且发布了一系列新品。其中有一个引人注目发布就是Amazon EC2 F1实例----它采用了赛灵思16nm UltraScale+ 现场可编程门阵列(FPGA),致力于加速基因、金融分析、视频处理、大数据、安全和机器学习推断等工作负载。用户可定制FPGA硬件加速,开发者可以开发、仿真、调试、编译等工作。Amazon EC2 F1实例是第一个用于FPGA应用加速的可编程硬件云实例, 也是赛灵思在超大规模数据中心市场应用中赢得的有一个成功案例。也是 在亚马逊之前,百度于今年 10 月宣布,其已设计出用以加速机器学习推断的赛灵思 UltraScale? FPGA 池。至此, 全球7家超级数据中心中的三家已经选择了赛灵思FPGA作为应用加速器,FPGA在超级数据中心渐成主流,并有可能带来更多变革,赛灵思5年转型渐见成效!
“从一家纯FPGA企业 到ALL PROGRAMMABLE(全可编程)企业的战略转型,所带来的是产品和编程模式的突破,促成了今天赛灵思在很多新兴领域的快速发展,如ADAS、AR/VR、深度学习、机器视觉、无人机等等。 过去一年也是我们在数据中心市场迅速发展的一年, 取得了一系列的里程碑式成就。”赛灵思战略与市场营销高级副总裁Steve Glaser在近日接受电子创新网等媒体专访时表示。
1、为什么数据中心需要FPGA来加速?
在加速应用方面,可以选择的有CPU、GPU、X86CPU+Altera FPGA集成方案,为什么超级数据中心还是青睐 FPGA方案?
随着社交媒体的快速发展,全球云数据中心日新月异,但今天的 CPU 没能跟上机器学习、数据分析和视频处理等各种计算密集型应用的需求步伐,加上网络和存储方面的瓶颈越来越严重,超大规模云、电子商务和社交网络数据中心面临越来越多面的挑战,例如在处理 4K 视频、机器学习和自然语言理解时,这类数据处理需要超密集的并行处理,往往超出了传统 CPU 的处理能力极限。号称“超七大”数据中心公司的阿里巴巴、亚马逊、百度、脸书(Facebook)、谷歌、微软和腾讯对这个问题异常敏感,在这些公司中,这些新应用往往需要数千台加速应用服务器来支持。但基于CPU的加速服务器能效偏低,因此数据中心纷纷部署FPGA技术。
因为FPGA 是可编程的,能针对任何新型应用和算法进行硬件优化,因而FPGA可以成为高度灵活的云计算环境的完美补充。FPGA特有的可重配置和可重编程特性,是FPGA的最大优势。利用动态可重配置技术,FPGA能在一秒之内快速切换成不同的设计方案,面对下一个工作负载进行硬件优化。因此, FPGA 能为复杂多变的超大规模数据中心应用提供所需的灵活性、应用广度和能效,这些是 CPU 和定制 ASIC 所无法企及的。
“我们认为FPGA在云端将成为主流应用。而AWS的发布,进一步证明了这一趋势正在发生且势不可挡。”Steve Glaser强调。
2、赛灵思FPGA如何满足超级数据中心需求?
为更好地满足数据中心(主要是超级数据中心)这一新兴市场的需求,赛灵思近期宣布推出可重配置加速堆栈,初步针对三大计算密集型应用:机器学习、数据分析和流媒体视频直播。赛灵思的可重配置加速堆叠方案不仅可最大化加速器利用率,降低总拥有成本,而且能够提供--比x86服务器CPU高40倍、比其它FPGA竞争方案高出2-6倍的计算效率。
借助这个新型的、用于数据中心工作负载加速的可重配置加速堆栈,赛灵思期望加速 FPGA 在数据中心中的更广泛应用。该产品专为世界最大的“超七大”数据中心而设计。赛灵思的战略是既要充分利用 FPGA 的灵活性、性能和计算效率,同时又要让该技术随着业务需求变化易于开发、部署和演进。
Steve Glaser 表示“通过和像百度、亚马逊这样公司的密切合作,在过去很多年里我们学到了很多他们在应用我们产品和技术的时候遇到的一些障碍,以及他们在开发和部署的时候遇到的挑战。于是,我们就把这些所学都结合到我们新推出的可重配置加速堆栈当中。我们相信现在我们面临着前所未有的需求,而且已经有能力来加速赛灵思的FPGA在超大规模数据中心中的主流应用。”
赛灵思可重配置加速堆栈: 解决超级数据中心发展最快的三种工作负载,赛灵思针对超大规模数据中心领域发展最快的三种工作负载推出该加速堆栈战略。其一是机器学习,其作为底层算法和新应用而兴起,不断帮助改善广告宣传、客户互动和新的客服。其二是高清视频流,尤其是在游戏即服务市场。在这个市场中视频编解码加速要求的计算性能超过了标准的 x86 CPU 所提供的性能水平。其三,超大规模应用中广泛使用的 SQL 查询加速。
据介绍,专为云级应用而设计的最新赛灵思可重配置加速堆栈, 为应用开发人员和平台设计人员在云级部署时全面发挥赛灵思 FPGA 的优势,提供了最快的开发和部署途径。该堆栈包括库、框架集成以及附带部署参考设计的开发板,支持 OpenStack,并提供符合业界标准的用户体验。
大家可以先看看赛灵思的可重配置加速堆栈介绍
“赛灵思的方案不仅可最大化加速器利用率,降低总拥有成本,而且能够提供比其它FPGA竞争方案高出2-6倍的计算效率。”赛灵思云计算战略市场开发总监Andy Walsh指出。
“上图是一个对比例子,分别完成机器学习数据分析。共有两个方案,第一个方案是用CPU,方案二是用CPU+FPGA加速器方案。这两个方案总体性能一致,方案A用CPU来加速,但和方案二比它的效率要低很多。方案2用1个服务器再加上16个低功耗FPGA,就能够达到方案1 24个至强处理器的性能。而它的成本只有1/10,占用空间只有1/10,它的功耗也只有1/10!”Steve 强调。
据介绍,专为云级应用而设计的最新赛灵思可重配置加速堆栈, 为应用开发人员和平台设计人员在云级部署时全面发挥赛灵思 FPGA 的优势,提供了最快的开发和部署途径。该堆栈包括库、框架集成以及附带部署参考设计的开发板,支持 OpenStack,并提供符合业界标准的用户体验。它不仅可最大化加速器利用率,降低总拥有成本,而且能够提供比其它FPGA竞争方案高出2-6倍的计算效率。
Andy还结合实例对比了赛灵思可重配置加速堆栈方案和其他方案。
“ 横轴是应用广度,也就是加速器能够非常好的来加速多少应用。纵轴是加速器利用率,也就是加速器有多灵活,性能有多优越,可以进行多少池化的部署以及随时保持全力运转并且空置的情况。在横轴,我们看最远端的是赛灵思的FPGA,因为它是可以编程的,而且可以优化,可以进行重新配置。”Andy强调,“在另一端GPU的利用率也不错,但它不能够编程优化,而且也不能进行重新配置。定制ASIC与它类似,例如谷歌的GPU可以用来执行某一项任务时表现非常好,但它的应用广度远远不能满足超大规模数据中心的要求。”
而在中间的就是英特尔的CPU+FPGA集成方案,“英特尔的至强处理器很有优势,把它和FPGA集成也有很多局限性,尤其是在功耗密度方面比如能够实现这样封装的FPGA类似很有限,只能是一些中小型FPGA,这样方只能解决一些中小型加速问题。”他强调,“它另外还有一个非常重要局限是跟赛灵思FPGA、GPU以及定制的ASIC相比---这些器件都非常容易进行池化(FPGA的池化配置,也就是指有很多个FPGA在一个单一的节点或几个节点作为一个集合来运行。),但要把芯片中的一个非常小的元素实现规模化和池化,按照1:1的封装比例是非常困难的。”
这个图纵轴是加速器利用率,横轴是计算效率(性能/功耗)以数据中心最重要的工作负载机器学习和推断来考核。赛灵思FPGA在推断导向精度方面效率很高,Altera的FPGA也有高的利用率但是它的计算效率要低于赛灵思的FPGA。为什么会出现这样的情况?这就要从两家公司DSP的架构定位说起了。
3、赛灵思FPGA赢在DSP架构、内存和工艺!
Steve Glasev强调在开发下一代DSP内核的时候,赛灵思定义了一种高效的DSP内核,赛灵思的 DSP48E2 设计用于在一个时钟周期内高效地完成一个乘法累加算法 , 多达 18x27 位的乘法和多 达 48 位的累加,如下图所示。
使用 MACC 模式的 DSP Slice
在运行 INT8 深度学习时,较宽的 27 位宽自然占有优势。在传统应用中,预加法器一般用于高效实现 (A+B) x C 计算,但这类计算在深度学习应用中很少见。将 (A+B) x C 的结果拆分为 A x C 和 B x C,然后在独立的 数据流中进行累加,使之适用于典型深度学习计算的要求。
对 INT8 深度学习运算来说,拥有 18x27 位乘法器很占优势。乘法器的输入中至少有一个必须为最小 24 位,同时进位累加器必须为 32 位宽,才能在一个 DSP Slice 上同时进行两个 INT8 MACC 运算。27 位输 入能与 48 位累加器结合,从而将深度学习求解性能提升 1.75 倍(1.75:1 即为 DSP 乘法器与 INT8 深度 学习 MACC 的比率)。其他厂商如Altera所提供的 FPGA 在单个 DSP 模块中只提供 18x19 乘法器,DSP 乘法器与 INT8 MACC 之比仅为 1:1。
“Altera早做下一代DSP开发的时候,本来它的DSP定点效率就要低于赛灵思,它后来做出的决定使得它比原来落后赛灵思的差距又扩大了,比赛灵思的效率低了100%,所以在8位一个周期里我们可以操作运算两次,而它只能一次,所以在DSP架构方面,赛灵思的比它的效率提升两倍,但实际上我们最高效率可以比它大6倍,所以除了这个DSP以外,我们还有其他两个优势。”Steve 表示,“在我们存储器层级上,我们引入一个XRAM架构,另外一个优势是我们的工艺领先Altera一代。”
4、深度学习我最强!
今年以来,由于涉及到人工智能,深度学习变得炙手可热,深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。深度学习的是通过多层神经网络来实现的,通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。
得益于全球科技界在生物识别、数据处理领域的突破,深度学习也获得了极大发展,1962年Hubel和Wiesel通过对猫视觉皮层细胞的研究,提出了感受野(receptive field)的概念,1984年日本学者Fukushima基于感受野概念提出的神经认知机(neocognitron)可以看作是卷积神经网络的第一个实现网络,也是感受野概念在人工神经网络领域的首次应用。
卷积神经网络(CNN)是人工神经网络的一种,已成为当前语音分析和图像识别领域的研究热点。它的权值共享网络结构使之更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量。该优点在网络的输入是多维图像时表现的更为明显,使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。卷积网络是为识别二维形状而特殊设计的一个多层感知器,这种网络结构对平移、比例缩放、倾斜或者共他形式的变形具有高度不变性。
在卷积神经网络(CNN)领域,目前用的最多的也是赛灵思的FPGA!Steve表示赛灵思FPGA独特的DSP架构让其特别适合完成多级卷积神经网络,例如已经估值超过10亿的深鉴科技就是利用赛灵思的FPGA提升机器学习推断效率。
“他们主要是做三项工作,第一项是专注神经系统模型的训练,也就是去除冗余。第二是把精简过的模型又进一步压缩使得它变得更小,运行的时候能提高效率。第三个非常重要,这让他们的研究成果位于业界尖端 ,就是如何让一些精度降低的数据在运营时不会影响到模型的精确性。这个精度降低的数据类型对于大规模机器学习有非常大的影响。”Andy强调,“这些成果和赛灵思的解决方案非常相关,因为最终研究结果表明,这种加速效果在机器学习推断方面甚至超过了GPU!这个成果也在Hot chips大会上发布了!”
而从亚马逊F1计算实例的客户来看,也多是和机器学习相关,“我们在亚马逊弹性计算云(EC2)上实现了FPGA即服 务(FPGA-as-a-Service) 在每个F1实例计算池上可配置多达8个FPGA 数据分析、视频、安全、机器学习。”Andy指出。
计划采用F1实例的企业通过FPGA获得的效率大幅提升,例如edico genome是做个体基因测序诊断的,通常只要几小时就可以做一些健康检查来检测出基因缺陷,用于支持治疗尤其是新生儿的治疗。基因测序需要很多不同的计算,所以FPGA非常合适。
“NGCODSC是一家规模非常小的公司,但是取得了非常惊人的成就,这给我们的启发是小公司如何充分利用全球最大的云资源来加速在市场的发展。”Andy补充说。
据介绍,赛灵思可重配置加速堆栈有三个层次,第一是平台开发,在平台层面首先有一个开发板,可以进行非常迅速的评估、开发和对标,同时这个开发板也可以作为一个设计参考,还可以作为一个生产板,支持以云为基础的开发环境。
第二层是应用层,针对关键负载如机器学习、数据分析和视频转码进行优化,赛灵思进行框架集成,选取一些普及率非常高的框架,例如机器学习领域的Caffe,可以进行深节点库和Caffe集成,视频转码的框架是FFMPEG。这个应用层还集成了SQL框架。
第三层是配置层,在Openstack已经成为超大规模数据中心管理平台的事实标准下,赛灵思的可重配置堆栈也有支持Openstack的套件。
“对于应用的开发者来说,他们只要有框架可以使用就好,他们不需要去研究这个平台是什么样的设计,他们只希望有非常简单易用效率非常高的框架就好,这也是我们可重配置加速堆栈的设计目的。”Andy强调。
他以机器学习为例来讲解赛灵思可重配置加速堆栈的使用---首先是拿到机器学习一个框架,然后对它进行修改,包括它有一个编译选项可以用于赛灵思的深度神经网络。这个深度神经网络可以执行像图像识别,还有比较机械性的机器学习内容,深度神经网络又和我们数据函数库进行合作,在GEMM这个库里,所有这些都可以为开发者提供支持。“我们的可重配置加速堆栈并不是一个成套的交钥匙工程,而是可以帮助所有超大规模数据中心企业用他们自己的架构来管理他们要做的工作。他们会对我们的开发板进行修改,最后来制成自己的客户板。”Andy指出。“他们也会在我们的库里再加上他们自己机器学习的应用。当然除了我们的框架外,他们还可以使用不同的框架,比如谷歌青睐tenserflow,亚马逊喜欢Maxnet等等,实际上我们替他们先完成80%的工作,还有20%是有待他们优化、细化,来实现自己定制化的目的。”
5、Steve Glaser: 加速赛灵思FPGA在超级数据中心中的主流应用
Steve Glasev认为FPGA未来在超级数据中心将成主流应用,尤其是及机器学习方面,在这方面GPU强在训练,而FPGA强在推断。“从去年开始,大家开始理解机器学习训练看重的是浮点运算,需要非常高的性能,而且是高功耗计算,这个是GPU非常擅长的。但是一旦大规模部署训练模型,就必须要大幅度的提高效率,需要新的推断引擎来大大提升效率,比如3到4倍,同时还要最小限度损失精确性这就是FPGA的强项所在了。”他强调,“未来至少95%的机器学习的计算都是用于推断,只有不到5%是用于对模型训练,这是两者的区别。”
“目前,FPGA在数据中心应用最大的瓶颈就是在采用方面的便利程度,因为很多的应用开发者非常希望能够在自己最喜欢的框架下进行编程,所以我们也推出了可重配置加速堆栈,这是一个开端,但我们还没有完全达到自己的目的。我们已经知道市场的需求是什么,大家已经开始知道怎么动手来做了,这是好的开始。”他表示。
另外,还有个趋势,除Amazon EC2 F1实例之外,AWS还宣布了FPGA开发者亚马逊机器映像(FPGA Developer Amazon Machine Image(AMI))开发工具,AMI为包括赛灵思Vivado? Design Suite和Vivado许可证在内的开发工具和脚本预先构建,这意味着未来FPGA开发可以架在云端了!开发者以后可以省去很多license费用,这样一来,未来甚至可以把ASIC原型验证也搬到云端?
大家以脑洞大开一下想象FPGA未来如何改变我们的生活?
全部0条评论
快来发表一下你的评论吧 !