- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
深入理解DNN加速器中的基本单元——DSP
DNN加速器的设计一直在两个方面使力:通用架构和高效性能。通用性需要自顶向下的设计,首先综合各种神经网络的算子设计一套标准的指令集,然后根据硬件平台的特点,考察计算资源,存储资源以及带宽,进行硬件的模块化设计,在指令集以及硬件的特殊结构基础上,再去构建工具链。
通用性要看的广,指令集的定义要具有扩展性和灵活性,工具链要能够灵活的对接不同的深度学习框架,能够处理不同类型的网络。这是一个很大的工程,需要一个顶级架构师以及大批软件编译类工程师合力来做。但是现在出现的很多开源工具链框架将这种开发难度大大降低了,比如TVM,LLVM,MLIR等工具给我们提供了基础,避免了再造轮子的重负。很多公司也基于这些开源框架来编写自己的编译工具。
高效性能永远是各大芯片厂商比拼的焦点,性能的提升需要三个方面共同努力:一个是来自于芯片的广大的资源,包括计算资源和存储资源,以及高带宽,从Xilinx芯片不断加大尺寸和DSP数量,以及采用HBM,还有GPU内核数量的提升以及对HBM的采用都说明了这个问题;另外一个是算法的深度优化,神经网络对噪声的容纳能力让其有了很多可以利用的空间,比如int类型的量化,稀疏化,剪枝等等,可以在保证精度的前提下,大大降低其运算量以及参数数量,同时能够更好的适配硬件;第三就是需要编译器对指令的优化,算符融合,无效算子的kill,指令的schedule等等,都会对最后性能造成很深的影响。提升性能需要看的深,追求硬件,算法,编译的极限,尽最大可能利用硬件有限的资源,尽最大可能优化网络的结构,尽最大可能寻求指令序列的优化解。今天我们谈性能追求当中的一个很小的部分——DSP。
XilinxDSP
1结构和功能
DSP48E2是zynq器件中使用的DSP类型,其主要结构包括一个27bit前加器,27x18bit的乘法器,一个48bit的可以执行加减法,累加以及逻辑功能的ALU。如下图所示:
DSP48E2单元的功能包括:
1)前加器可以计算D+/-A以及D+/-B的功能,这大大扩展了A和B端口的公用。通过对A和B的选择,可以增加乘数的宽度,利用这个可以将神经网络的算力提高一倍甚至两倍,后边我们具体再讲。
2)前加器可以将结果发送到乘法器,所以提供了平方操作,比如A*A。
3)A端口的低27bit用于乘法器输入,30bit完整数据可以和B端口数据concate实现48bit数据的ALU操作,包括与或非等逻辑运算以及加减法计算。
4)端口CARRYCASCIN和CARRYCASCOUT能够用于多个DSP级联,这对于实现神经网络中的矩阵乘法或者卷积的累加非常方便。
5)基于SIMD模式的加减法操作,可以支持2路24bit加减法以及4路12bit加减法。
6)支持48bit的逻辑操作:and,or,not,nand,nor以及xnor。
7)支持一些类型检测:overflow/underflow,rounding等。
8)支持17bit右移操作。
9)DSP单元是单时钟同步运转的,始终频率能够达到内部memory频率的两倍,相对内部逻辑,DSP可以工作在倍频下。
DSP支持的操作类型很多,主要用于两方面:一个是基于大量乘累加的计算,比如conv,gemm,FFT等。另外一种是纯加减法和逻辑的运算,这些在神经网络中也有很多,比如element-wiseadd。逻辑运算用的不多,更多可能作为一些计算的辅助。
Zynq器件中通常将2个DSP48E2和一个36Kb的blockmemory以及5个CLB放置在一起,一个36Kb的BRAM可以拆分成2个18Kb的memory使用,每个memory可以独自被一个DSP占用。这样的配置也为DSP以及存储的高效配合使用提供了模板。后边我们可以利用这样的结构构建一个conv计算单元。同时多个DSP在FPGA芯片内部是垂直摆放的,这有利于多个DSP的cascade。
现在来看一下如何使用DSP阵列来构建低功耗的加法树。在传统的FIR滤波器中,乘累加的普遍做法是将多个乘法的输出通过多级加法器累加起来,需要的加法器级数是计算数据量的log2函数。比如一个如下滤波器:
使用加法树会采用这样的结构:
这样的加法树会消耗更多的资源,代价以及能耗。特别是后几级的加法器位宽变的越来越宽,对LUT资源消耗很多。如果我们利用DSP的级联功能,可以完全实现FIR中的多输入加法功能。DSP中提供的post-adder以及CARRYCASCIN和CARRYCASCOUT可以选择上一级DSP的输出,同时将本级输出作为下一级输入。但是要注意级联的长度收到post-adder加法器位宽的限制,对于48bit的post-addr,如果乘法的输出长度为32bit,那么其
您可能关注的文档
- 物理所利用冷冻电镜解锁石墨嵌锂阶结构微观本质与演变_转自DOC.docx
- 海外社交电商卖家引流渠道.doc
- 如何保养氧传感器?氧传感器的故障分析.doc
- 如何计算IGBT的损耗?.doc
- 中信银行推出”信e汇“,解决跨境汇款痛点.doc
- 社交媒体营销的四个步骤.doc
- 基于DSP C54x的数字滤波器设计.doc
- 通过更高的输出功率和H级控制打造身临其境的汽车音频体验.doc
- 无滤波模拟技术解析.doc
- 申请国外外观专利的费用分析:预算规划与成本考虑.doc
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
文档评论(0)