百度EdgeBoard为AI推理实现更强大的算力

发布者:心若水仙最新更新时间:2019-12-30 来源: 益群网关键字:百度  EdgeBoard 手机看文章 扫描二维码
随时随地手机看文章

背景介绍

 

数据、算法和算力是人工智能技术的三大要素。其中,算力体现着人工智能(AI)技术具体实现的能力,实现载体主要有CPU、GPU、FPGA和ASIC四类器件。CPU基于冯诺依曼架构,虽然灵活,却延迟很大,在推理和训练过程中主要完成其擅长的控制和调度类任务。GPU以牺牲灵活性为代价来提高计算吞吐量,但其成本高、功耗大,尤其对于推理环节,并行度的优势并不能完全发挥。专用ASIC芯片开发周期长,资金投入大,由于其结构固化无法适应目前快速演进的AI算法。FPGA因其高性能、低功耗、低延迟、灵活可重配的特性,被广泛地用作AI加速,开发者无需更换芯片,即可实现优化最新的AI算法,为产品赢得宝贵的时间。

 

由此,百度基于FPGA打造了EdgeBoard嵌入式AI解决方案,能够提供强大的算力,支持定制化模型,适配各种不同的场景,并大幅提高设备端的AI推理能力,具有高性能、高通用、易集成等特点。本文将主要介绍EdgeBoard中神经网络算子在FPGA中的实现。

 

FPGA加速的关键因素

 

FPGA实现AI加速有两大关键因素,一是FPGA内部资源,二是内存访问带宽。FPGA内部资源主要包括LUT,FF,RAM以及DSP等,FPGA本质上是可编程逻辑电路,可用逻辑电路的多少取决于芯片内部资源,这也就决定了芯片的峰值算力和可容纳的算子种类数。

 

深度学习中,90%以上的计算都集中在conv、dw-conv和pooling等少数的几个算子上。所以,并不是FPGA中添加的加速算子数量越多越好,而是要注重算子的加速质量:一是用更少的资源实现更多的功能;二是提高耗时占比大的算子性能。

 

在实践中,添加新算子前需要平衡该算子在网络中所耗时间的占比以及其在FPGA中所消耗的资源。当然可以通过选取更大规模的片子来突破这种限制,但是端上设备受限于成本、功耗等因素,只能平衡多种因素选择一个合适规模的芯片,然后通过多种设计方法和技巧来提高加速性能。本文接下来就将介绍在EdgeBoard中如何优化设计DSP资源提升算力,以及如何通过算子复用和融合技术实现对多算子的支持。

 

提升内存访问带宽是提高AI加速性能的另一关键因素,因为FPGA与内存的数据交互在整个计算过程中占比很高,有时甚至超过了计算本身所消耗的时间。直接提高内存访问带宽的方法包括提高DDR位宽、增加传输所用的高速接口资源、提高DMA传输的时钟频率等。另外也可以通过复用FPGA芯片上的内存资源(RAM)以及计算和传输交叠执行(overlap)等方法,减少与外部DDR存储的交互,降低数据传输的开销。这些设计方法较为常见,本文不做详细介绍。

 

两大关键技术实现四倍算力提升

 

FPGA中的计算主要依靠DSP实现,高效使用DSP是保证FPGA算力的关键。EdgeBoard FPGA中的DSP采用DSP48E2架构,如图1所示,包括一个27-bit的预加法器(pre-adder),一个27x18的乘法器(mult)和一个48-bit的ALU。

 

 

图1. DSP48E2结构图

 

在EdgeBoard的FPGA设计中,充分利用DSP48E2本身的特点,采用supertile和INT8移位计算技术,实现了四倍算力提升。

 

一. Supertile

 

一般来讲,Xilinx Ultrascale系列FPGA运行的最高频率在300MHz到400MHz之间,但DSP是FPGA中的硬核,可以运行在更高的频率上。如图2所示,SLB-M与DSP这样构成的基本单元,被称之为Supertile,FPGA内部Supertile的布局如图3所示。Supertile技术的核心在于使DSP运行于两倍逻辑频率上,使整个系统算力达到倍增的效果。这主要得益于芯片结构中SLICEM与DSP位置临近,使用专有的布线资源,延迟缩短,可以支撑SLICEM以双倍逻辑运行的频率向DSP提供数据。另外,神经网络中存在着数据复用,通过filter和image数据的复用和交织,一次取数多次使用,从而减少数据的搬运次数,提升计算效率。

 

 

图2. Supertile结构

 

 

图3. DSP和SLICEM在FPGA中的位置

 

二. INT8移位计算技术

 

利用DSP48E2的结构特点,一个DSP完成两路INT8的乘加。在进行8bit数据计算时,将a左移18位,置于输入的高8位,低19位补0,从DSP的A端输入,b维持在低8位,从DSP的D端输入,如图4所示。a与b两者先进行累加,然后与c相乘后,结果将分别位于输出的高(a*c)、低(b*c)两部分,该计算过程如图5所示。

 

 

图4. DSP移位示意图

 

 

图5. 单DSP实现两路INT8相乘

 

在实践中,我们把a,b两路作为filter数据输入,c作为image数据输入。这样DSP在一个时钟周期内就同时完成了两路的计算,再次使算力翻倍。结合前面提到的supertile倍频设计,两种设计使得单个DSP的算力提升四倍。因为一次计算过程有乘、加两个操作(operations),所以单个DSP在一个时钟周期高效的完成了8个operations。

 

多算子复用

 

深度学习中主要有两类运算,一类是指数运算,另一类是乘加运算。前者主要位于激活函数层,后者是深度学习涉及最多也是最基础的运算。乘加运算根据kernel的维度不同,又可分为向量型和矩阵型,在EdgeBoard中划分为三个运算单元,分别为向量运算单元(VPU: vector processing unit)、矩阵运算单元(MPU: matrix processing unit)和指数激活运算单元(EXP-ACT: exponential activation unit)。

 

一. 向量运算单元

 

向量运算单元VPU负责实现dw-conv(depth-wise convolution),完成3维输入图像(H x W x C)和3维卷积核(K1 x K2 x C)的乘加操作。其中一个卷积核负责输入图像的一个通道,卷积核的数量与上一层的通道数相同,该过程如图6所示。图7表示的是一个通道内以kernel 2x2和stride 2为例的计算过程。

 

 

图6. dw-conv示意图

 

 

图7. dw-conv的计算

 

EdgeBoard通过复用VPU一套计算资源实现了average/max pooling,elementwise add/sub,scale,batch-normalize,elementwise-mul和dropout等多种算子。

 

Average pooling可以看作是卷积核参数固定的dw-conv,即将求和后取平均(除以卷积核面积)的操作转换成先乘以一个系数(1/卷积核面积)再求和。如图8所示,该例子中卷积核大小为2x2,卷积核参数即为1/4。卷积核固定的参数可以类似于dw-conv下发卷积核的方式由SDK封装后下发,也可以通过SDK配置一个参数完成,然后在FPGA中计算转换,这样节省卷积核参数传输的时间。另外,max-pooling算子与average pooling的计算过程类似,只需要将求均值操作换成求最大值的操作,其余挖窗、存取数等过程保持不变。

 

 

图8. Pooling复用dw-conv

 

Elementwise add/sub完成两幅图像对应元素的相加或相减,不同于dw-conv的是它有两幅输入图像。如果我们控制两幅图像的输入顺序,将两幅图像按行交错拼成一幅图像,然后取卷积核为2x1,行stride为1,列stride为2,pad均设置成0,则按照dw-conv的计算方式就完成了elementwise的计算。通过在FPGA中设置当前像素对应的kernel值为1或-1,就可以分别实现对应elementwise add和elementwise sub两个算子。该过程如图9所示。

 

 

图9. ew-add/sub复用dw-conv

 

Scale算子主要在图像预处理时使用,将输入图像每一个通道的全部像素点乘以该通道对应的scale值,然后加上bias。如果我们将dw-conv的卷积核大小设成1x1,行列stride都设置成1,pad设置成0,卷积核参数值设成scale,就可以通过dw-conv完成scale算子的功能。通过分析发现,batch-normalize,elementwise-mul和dropout等算子都可以通过scale算子来实现。

 

二. 矩阵运算单元

 

矩阵运算单元MPU负责实现convolution,完成3维输入图像(H x W x C)和4维卷积核(N x K1 x K2 x C)的乘加操作,单个卷积核的通道数和输入图像的通道数相同,而卷积核的数量N决定了输出的通道数,如图10所示。full connection 算子实现的1维输入数组(长度C)和2维权重(N x C)的乘加操作。将 full connection输入数组扩展成 H x W x C, 输出扩展成 N x K1 x K2 x C, 其中H, W, K1和K2均设置成1,这样 full connection就可以调用convolution来实现。另外,在计算 deconv 时,通过SDK对卷积核进行分拆、重排,就可以通过调用conv来实现deconv,同样带来了极大的收益。

 

 

图10. Conv算子示意图

 

三.指数激活运算单元

 

指数激活运算单元EXP-ACT实现的基础是sigmoid,由于在FPGA中进行指数型运算比较耗资源,如何复用该计算单元就变得非常有意义。通过分析发现,可以把 tanh 和两通道softmax转换成 sigmoid 的形式,这样一个指数运算单元就支持了3种算子,实现资源利用的最大化。

 

多算子融合

 

在推理时做BatchNorm运算非常耗时,通过SDK将BatchNorm+Scale的线性变换参数融合到卷积层,替换原来的weights和bias,这样4个算子可以融合成单个算子conv + batchnorm + scale + relu,对于dw-conv同样如此。相对于每计算完一个算子就将数据送回内存,这种算子融合大大减少了内存的读写操作,有效提高了处理帧率。

 

此外,我们将scale、bias和relu为代表的激活函数层放到各算子之后的链路上,然后统一送到DMA传输模块,如图11所示。这不仅使得各算子复用了这些逻辑,节省了大量片内资源,也使得各算子都可以具备这些功能,且都能以最大带宽进行DMA传输。在实践中,我们将这些功能做成可选项,由软件根据当前网络算子的需要进行选择,在节省资源的同时,既保证了通用性,又兼顾了灵活性。

 

 

图11. EdgeBoard内部结构和链路图


关键字:百度  EdgeBoard 引用地址:百度EdgeBoard为AI推理实现更强大的算力

上一篇:SimpleLink MCU—可在各个频带和协议间实现创新、加速及连接
下一篇:2019年全球前五大服务器品牌排名:华为No.1

推荐阅读最新更新时间:2024-11-13 20:14

AI技术能否读懂人类情绪?
AI技术 为何读不懂人类情绪?背后的原因有3点!   说到现在的 互联网 ,很多人应该都有这样的感受,目前的互联网已经渗透到我们生活的方方面面,不管是移动支付还是在人工智能方面,互联网技术的应用已经体现的是淋漓尽致。前段时间,网上有个真实的笑话,两个小偷去商店打劫,可是连串了3家商家,劫到的现金只有两千。     小偷被抓时,直言自己肠子都悔青了,当然这可能是一个笑话,不过从这个故事,我们也能看到互联网技术的强大。今天小编和大家聊的话题,其实也和这个是有关的,小编要和大家聊的是人工智能。     人工智能,简称AI,目前国内的领先企业,应该是 百度 ,百度在这方面做得比较好,尤其是在无人驾驶等方面。很多人疑惑,人工智能为什
[嵌入式]
百度将于下半年推出自动驾驶出租车
百度创始人、董事长兼CEO李彦宏在长沙表示,2019下半年,百度将会和长沙合作,从一些划定区域开始尝试智能交通的落地——百度将进行自动驾驶出租车队的商业化运营,预计2019年下半年,普通市民即可有机会在长沙打到无人驾驶出租车。 按照规划,年内百度自动驾驶出租车将在长沙规模化落地测试运营,数量将达到100辆。
[机器人]
百度高通展开战略合作,DueOS的AI功能将集成到骁龙平台
在夏威夷举行的高通骁龙技术峰会上,百度与高通共同宣布,将在人工智能语音方面展开战略合作。双方将在高通骁龙移动平台包括骁龙845上,深度支持并联合优化DuerOS在手机上的人工智能解决方案。百度度秘事业部总经理景鲲表示,DuerOS的AI功能将预集成在骁龙移动平台上,为用户提供实时在线、低功耗的人工智能语音方案,未来每一台搭载骁龙处理器的智能终端都拥有智能语音功能。 百度度秘事业部总经理景鲲 百度认为,AI时代语音对话是非常简单,非常自然的交互方式,可以吸引到更多用户使用。DuerOS是百度度秘事业部研发的对话式人工之智能交互方式,可以让用户以自然的语言对话的交互方式,实现影视音乐、信息查询、生活服务、出行路况等10大类的100
[手机便携]
盘点国内无人驾驶领域的“春秋五霸”
   无人驾驶 就是近些日子来,大家纷纷举筷下手的目标。下面就随汽车电子系哦啊吧一起来了解一下相关内容吧。   整个3月 无人驾驶 领域的动静一直没有平息下来。腾讯收购特斯拉5%的股权跻身特斯拉第五大股东,前面四大股东分别是:Elon Musk,持股大约21%;富达投资,持股14%;Baillie Gifford,持股8.2%;T.Rowe Price,持股7.3%。 百度 公司副总裁王劲在几天前的洪泰基金CEO春分大会上宣布即将离开 百度 ,自己创业投身 无人驾驶 事业上。一连离职多位高管的 百度 也没闲着,立马投资一直很靠谱的蔚来汽车。阿里则是在本月中旬领投了瑞士AR汽车导航初创公司WayRay。不止BAT的动作频频,很多无
[汽车电子]
百度又一辆车自己开上高速 能自主控速
  继去年 百度 在乌镇子夜路正式对外开放试乘后,今天, 百度 研发的另一辆能实现部分无人驾驶功能的车,也开上了高速公路,不过与乌镇试乘的无人车不同,今天开放试乘的 自动驾驶 车辆由 百度 L3即智能汽车事业部研发。下面就随汽车电子小编一起来了解一下相关内容吧。    百度智能汽车事业部总经理顾维灏与博世签约战略合作   这也是百度将旗下L3、L4及车联网业务合并为智能驾驶事业群组(简称IDG)一个半月后,IDG对外公布的最新大动作。   4月17日,百度宣布与博世正式签署基于高精地图的 自动驾驶 战略合作,开发更加精准实时的 自动驾驶 定位系统。同时在发布会现场,也展示了博世与百度的合作成果——高速公路辅助功能增强版演示车。
[汽车电子]
百度无人车量产 符号意义大于商业价值
7月4日,百度AI开发者大会上,百度创始人、董事长兼CEO李彦宏连线厦门金龙客车董事长谢思瑜,直播第100辆全球首款L4级自动驾驶巴士“阿波龙”下线。 李彦宏认为,这个场景兑现了去年许下的“今年7月量产无人车”的承诺。 据谢思瑜的描述,“阿波龙”搭载了Apollo L4级别自动驾驶解决方案系统,没有方向盘,没有油门和刹车踏板,适用于景区、厂区等应用场景。 李彦宏介绍,这批“阿波龙”即将发往北京、雄安、深圳、福建平潭、湖北武汉等地开展商业化运营,并将联合金龙客车、软银集团旗下自动驾驶公司SB Drive将“阿波龙”销往日本,实现了我国自动驾驶电动车的首次“出海”。 “李彦宏强调‘全球首款L4级别自动驾驶汽车已经量产’,我不认为这是真
[机器人]
李彦宏:人工智能加持百度医疗 未来有更大发展前景
百度集团董事长兼CEO李彦宏近日出席了极客公园 GIF2017 大会。继2016年513次提及人工智能之后,李彦宏面对本届大会创新主题时用新视角给出了他对智能未来的新思考。他表示,人工智能发展任重道远,与医疗等传统行业的融合需要时间才能形成不可小觑的影响,但随着人工智能在精准医疗等领域不断产生突破与创新,人类最终都会成为AI 的受益者。 人工智能技术经过近十年的繁荣期,在深度学习和机器学习方面都有了长足的发展,但其对生活方方面面的革命性影响仍需要沉淀与累积。李彦宏表示,计算机正在逐渐掌握一些人类擅长、机器不擅长的能力,而当机器具备人的能力时,它在一些领域比做得人类更出色。我们与未来之间只差一个唤醒智能的声音。 百度凭借技术起家,
[嵌入式]
百度基于IndoorAtlas技术推出室内位置服务
中国领先的搜索引擎将把地磁定位技术带给2.7亿百度地图月活跃用户 IndoorAtlas今天宣布,中国领先的搜索引擎百度已开始向2.7亿百度地图月活跃用户推出基于IndoorAtlas技术的室内位置服务。这是双方去年签订的合作协议的成果。 室内定位技术的全球领导者IndoorAtlas利用地球磁场在建筑物内定位,精确度达到一米,这项技术适用于室内精确导航、位置感知的移动搜索、基于位置的广告服务和新的线上线下电子商务机会。百度将IndoorAtlas技术作为百度地图位置服务(LBS)的基础,利用这项磁技术所具有的无与伦比的精确度和扩展性支持室内搜索,驱动店铺、商品搜索和寻路等创新应用,将用户体验提升到一个新水
[物联网]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved