面向高能效加速器的二值化神经网络设计和训练方法.pdf
《面向高能效加速器的二值化神经网络设计和训练方法.pdf》由会员分享,可在线阅读,更多相关《面向高能效加速器的二值化神经网络设计和训练方法.pdf(9页珍藏版)》请在咨信网上搜索。
1、第 35 卷 第 6 期 计算机辅助设计与图形学学报 Vol.35 No.6 2023 年 6 月 Journal of Computer-Aided Design&Computer Graphics Jun.2023 收稿日期:2021-11-10;修回日期:2022-03-25.基金项目:国家自然科学基金(62025404,61834006,61874124);中国科学院战略性先导科技专项(C 类)(XDC05030100).李佳骏(1994),男,博士研究生,CCF 会员,主要研究方向为深度学习模型轻量化;许浩博(1990),男,博士,助理研究员,CCF 会员,论文通信作者,主要研究方向
2、为专用处理器设计;王郁杰(1989),男,博士,副研究员,硕士生导师,CCF 会员,主要研究方向为 VLSI 设计、物理设计 EDA 工具、硬件安全;肖航(1993),男,博士研究生,CCF 会员,主要研究方向为深度学习处理器设计、VLSI 设计;王颖(1985),男,博士,副研究员,硕士生导师,CCF 高级会员,主要研究方向为计算机体系结构、VLSI 设计、专用内存系统、机器学习系统;韩银和(1980),男,博士,研究员,博士生导师,CCF 杰出会员,主要研究方向为计算机体系结构和芯片、智能硬件、机器人芯片系统;李晓维(1964),男,博士,研究员,博士生导师,CCF 会士,主要研究方向为集
3、成电路测试与诊断、验证,可靠性设计、无线传感网络.面向高能效加速器的二值化神经网络设计和训练方法 李佳骏1,2),许浩博1)*,王郁杰1),肖航1,2),王颖1),韩银和1),李晓维1)1)(中国科学院计算技术研究所智能计算机研究中心 北京 100190)2)(中国科学院大学 北京 100049)()摘 要:针对二值化神经网络加速器计算溢出和乘法器依赖的问题,提出一套二值化神经网络设计及其训练方法.首先设计能够模拟溢出的矩阵乘法,保证模型部署后不丢失准确率;然后优化卷积层和激活函数,缓解溢出总量;再设计移位批标准化层,使二值化神经网络摆脱对乘法运算的依赖,并有效地降低访存;最后针对改进的模型提
4、出基于溢出启发的协同训练框架,确保模型训练能够收敛.实验结果表明,与 10 个主流的关键词激活方法相比,在准确率无明显损失的情况下,所提方法使片上计算规模减少超过 49.1%,并为加速器带来至少 21.0%的速度提升.关键词:二值化神经网络;深度学习;模型训练;神经网络加速器 中图法分类号:TP391.41 DOI:10.3724/SP.J.1089.2023.19461 Design and Training of Binarized Neural Networks for Highly Efficient Accelerators Li Jiajun1,2),Xu Haobo1)*,Wan
5、g Yujie1),Xiao Hang1,2),Wang Ying1),Han Yinhe1),and Li Xiaowei1)1)(Research Center for Intelligent Computing Systems,Institute of Computing Technology,Chinese Academy of Sciences,Beijing 100190)2)(University of Chinese Academy of Sciences,Beijing 100049)Abstract:Aiming at the problem of computation
6、overflow and multiplier dependence on the binarized neural network accelerator,a set of design and training methods of binarized neural networks(BNN)are proposed.Firstly,an accurate simulator is designed to ensure that BNN does not lose accuracy after deployment.Secondly,the convolutional layer and
7、activation functions of the BNN are optimized to alleviate the total amount of over-flow.Thirdly,an operator named Shift-based Batch Normalization is proposed to make the BNN get rid of the dependence on multiplication and reduce memory access.Finally,for the improved BNN,a collaborative training fr
8、amework based on overflow heuristics is proposed to ensure that the model training converges.The experimen-tal results show that,compared with 10 keyword spotting methods,the accelerator reduces the amount of on-chip computation by more than 49.1%and increases the speed at least 21.0%without signifi
9、cant loss of accuracy.Key words:binarized neural networks;deep learning;model training;neural network accelerators 962 计算机辅助设计与图形学学报 第 35 卷 从 2012 年至今,深度学习技术在多项领域已取得了突破性进展,如目标识别、语音激活、双目视觉等,进一步推动了专用集成电路(application specific integrated circuit,ASIC)的发展.2014 年后,学术界涌现出一批优秀的深度学习硬件架构设计,并被应用到车辆检测、人体姿态估计、立体
10、视觉等领域.其中,在功耗受限的场景中,硬件计算资源面临着极大的约束,目前具有广泛应用前景的一个解决方案是利用 ASIC加速器处理轻量二值化神经网络(binarized neural network,BNN)1-3.BNN 将自身的权重或激活值从 32 bit 的单精度浮点量化成1 bit,即仅有1和+1这 2 个值4-6.该特性不仅能使模型权重和激活值读/写所产生的片外访存量减少为原来的 1/32,还能使乘法运算简化成异或运算,降低计算单元面积,最终为推理性能带来数十倍甚至数百倍的提升7.目前,不少学者投入到深度学习下的二值化神经网工作中.Courbariaux 等4提出 BinaryConn
11、ect,解决了 BNN 中存在的梯度传播问题,但是模型推理中的激活值的格式仍然采用浮点;随后,Cour-bariaux 等5提出二值化的方法和 Rastegari 等6提出 XNOR-net,进一步将激活值进行二值化,但是其模型的第1层和最后1层的计算仍然保持浮点的运算;Umuroglu 等8在 FPGA 部署的 BNN 中同样存在这样的问题,除此之外,其还保留批标准化(batch normalization,BN)层和尺度化因子(scaling factor,SF)来维持 BNN 的推理能力.然而,面向BNN 的加速器为了提高能效而限制计算资源,给传统的 BNN 推理带来极大的挑战,这个矛盾
12、表现为 2 个方面:一是低比特数值表示;二是没有乘法器1-3,7.低比特数值表示可以降低存储和访存来优化加速器的能效;而没有乘法器是因为 BNN 的权重和激活值只有1或+1,使得乘法运算可以使用1 bit的异或运算去代替.这2点特性在发挥性能优势的同时也带来了难题:低比特数值表示意味着中间计算结果可能发生溢出/舍入,进而导致模型训练或部署失效;而电路结构中没有乘法器会使得加速器无法实现BN层和SF,导致模型训练无法收敛.针对上述问题,本文从算子模拟、算子设计和模型训练3个角度出发,提出一套有效的面向高能效加速器的 BNN 模型设计和训练方法.首先设计支持溢出/舍入模拟的神经网络算子,解决模型部
13、署到 BNN 加速器上由于计算误差导致的准确率丢失问题,并优化算子的溢出总量,为模型训练的收敛提供保障;然后优化 BNN 存在的访存开销过大的算子,并针对该算子提供一套有效且高效的训练策略;最后评估模型优化为端到端推理性能带来的提升.实验结果表明,与 10 个关键词激活的主流方法(包括传统方法和深度学习方法)进行实验的结果表明,本文方法得到的 BNN 使片上计算量减少 49.1%,端到端推理带来至少 21.0%的速度提升,且没有明显的准确率损失.1 相关工作 1.1 BNN 训练方法 目前,国内外学者在 BNN 训练方面已经取得一些进展.BNN 权重的搜索方法可以分为训练后进行二值化(post
14、-training quantization,PTQ)9-11和训 练 中 进 行 二 值 化(quantization-aware training,QAT)4-6,12-16这 2 种.PTQ 将一个已经训练好的浮点模型直接进行二值化,训练时间短、应用成本低.当量化模型在浮点模型次优解的邻近空间附近时PTQ 工作良好,而 BNN 的量化程度太大通过 PTQ将浮点网络转化为 BNN 会损失大量的准确率.QAT 不会受到 PTQ 中邻近空间的影响,适用于BNN 的训练.QAT 的权重更新策略可以分为 3 类.(1)随机更新.早期的随机梯度下降(stochastic gradient decen
15、t,SGD)和反向梯度传播(back propa-gation,BP)应用在 BNN 是失效的,转而使用较为保守的随机翻转的策略12-13或者变分贝叶斯14去训练模型.(2)假设BNN的每个权重服从伯努利分布,其中伯努利分布是一种离散分布,并借助连续逼近优化离散分布问题15-16.(3)假设BNN的每个权重背后有一个连续可导的隐变量,将训练对象从二值化函数转移到隐变量上4-6,保证训练的有效性.其中,第 3 类更新策略是当前主流的二值化方法,这是因为第 1 类和第 2 类更新策略难以应用在大规模的训练当中,但第3类更新策略在神经网络的规模加深之后十分依赖 BN 层.1.2 二值化函数的求导 二
16、值化函数是一个符号函数(如图 1a 所示),在符号函数中存在第1类间断点,使得函数在零点处不可导,其余地方的导数均为零(如图 1b 所示),这就导致模型在反向求导训练的过程无效.因此,神经网络二值化的关键问题是去设计二值化函数的梯度计算,以保证推理和训练的有效性.直通估计器(straight-through estimation,STE)是一种非常具有代表性的方法,其思路是通过给定二值函数第 6 期 李佳骏,等:面向高能效加速器的二值化神经网络设计和训练方法 963 的导函数(如图 1c 所示),保证二值化后的模型的梯度能够顺利地进行反向传播.STE 具有良好的理论支撑、易于实现的优点,已被多
17、项工作采用4-6,但 STE 存在估计的梯度误差随着模型的加深而被放大的缺点.图 1 二值化函数梯度问题 2 本文方法 2.1 算子优化 为降低 BNN 加速器的能耗,其处理单元(processing element,PE)会采用定点 ALU,并用异或器代替乘法器.低位宽定点 ALU 使得溢出/舍入不易避免.溢出/舍入带来 2 个问题:(1)现有训练框架不支持溢出/舍入的模拟,如图 2 所示,PE 上的矩阵乘运算的溢出/舍入会发生在红色圈的位置.将训练好的模型部署到加速器上后,在推理运算时就会出现计算结果和部署前不一致的现象,导致模型准确率下降;(2)因为溢出/舍入使梯度方向产生不可忽略的偏差
18、,导致模型的训练效果变差.2.1.1 支持溢出/舍入模拟的矩阵乘模拟 现有的张量计算库(如 cuBlas,Eigen,Aten 等)以及深度学习平台(Caffe,PyTorch,TensorFlow 等),均未提供模拟专用低精度加速器的溢出/舍入行为的算子.设计支持模拟溢出的算子有 2 个关键问题:(1)在溢出/舍入算子的反向传播时,梯度如何求解;(2)每次乘法和加法操作都需要模拟溢出/舍入,数据该如何分片和广播来保证算子的计算并行度.本文借鉴梯度估计的思想,为溢出/舍入算子配置 STE;对于那些包含多级计算的算子(如卷积算子),需要进行拆分模拟.如图 2 所示,将特征值矩阵A和权重矩阵 B
19、的矩阵乘运算作分解,矩阵A的每行数据依次广播a次,矩阵B转置后广播矩阵b次,将和 B 广播之后的结果作 Hadamard运算和作溢出/舍入模拟,这是第 1 级运算;将Hadamard 运算后的结果按加速器的广播规则进行分片,同时模拟加速器上加法树的行为,每进行一级加法运算就作一次溢出分解,直至结束输出运算结果C.上述矩阵乘法模拟加速器上发生的溢出/舍入,仍可在 GPU 上实现并A行计算.图 2 支持 NPU 溢出/舍入模拟的矩阵乘法运算 2.1.2 溢出/舍入误差优化拟 因为溢出/舍入不可导,通过 STE 估计的梯度存在误差,当这个误差积累到一定规模就会使得梯度方向产生不可忽略的偏差,溢出/舍
20、入超出某个范围,将会影响到模型的训练效果.因此,在训练阶段遇到模型不收敛时,可以通过下面的方法来控制溢出.(1)降低卷积层的 KZ(kernel size)或IC(input channel)数量.图 3 所示为对卷积运算输出进行采样,KZ 和 IC 溢出/舍入误差对比.可以看出,分布越集中误差控制效果越好,反之越差.(2)选取适当的激活函数.图 4 所示为 8 种常见的激活函数下的计算误差对比,可以看出,激励抑制效果越强的激活函数使得误差分布越集中,意味着误差越小.因此,在设计 BNN 时必须遵循如下规则:(1)KZ 和 IC 尽可能地小;(2)优先选用 Sigmoid,Tanh,HardS
21、igmoid,HardTanh 激活函数来控制溢出总量.对于第1个规则,卷积运算的每个输出值会涉及一次点积运算,而 KZ 和 IC 的增大直接增加点积运 图 3 KZ 和 IC 溢出/舍入误差对比 964 计算机辅助设计与图形学学报 第 35 卷 图 4 不同激活函数下的计算误差对比 算中元素的个数,使得输出结果的范围变大.即某一层的输入的方差与下一层的输入的方差呈正相关,增加当前层的 KZ 和 IC 会直接增加下一层输入的方差,方差越大,则所需要量化的范围就越大,有限的量化位宽就越来越难以近似原始的连续分布,最终造成量化的后误差变大.对于第 2 个规则,由于量化一般采用定点低位宽的数据,使得
22、数据存在最大表示范围.对于 ReLU,ELU,SELU和 CELU 激活函数,没有对最大值做约束,也就意味着输出的激活值可以分布在一个很广的范围.然而,量化是从连续空间向离散空间进行映射,离散空间始终是有限的,激活值没有上界的约束会加剧量化误差的积累.2.1.3 Shift-based Batch Normalization 算子设计 为了使 BNN 的推理彻底摆脱对乘法及乘法器的依赖,本文设计移位 BN(shift-based BN,SBN)层.将 BN 层17简化成 SBN 层,公式为 2BNSBN2sxxxx (1)其中,表示神经层输出的均值的统计平均值;表示神经层输出的标准差的统计平均
23、值;s表示 SBN 层的移位参数.从式(1)可以看出,BN 层需要一次乘加运算,SBN 层仅有移位计算;同时,SBN 层近似地保留 BN 层的拉伸变换(distort transform)的作用,有拉伸变换才能控制溢出;并且,加速器中的定点运算后的结果原本就需要做小数点对齐,那么 SBN 层便可以和这一步直接进行合并,从而不增加额外的计算和硬件资源.从式(1)看,BN 层进行了一次线性变换,其目的之一是约束激活值的输出范围.当数据通过卷积层或者全连接层时,输出矩阵中的每个元素都是经过一个点积运算得来,这就会使得输出值的范围变大,从统计指标上看其方差会显著增加,很可能导致超过量化范围,增加量化误
24、差,最终导致BNN 训练不收敛.观察 BN 层的结构发现,其分母部分可以控制数据分布范围,将数据分布范围约束在量化范围中并不需要 BN 层的分母是全精度的,通过移位操作也能满足数据约束.同时,BN层中的平移操作对数据约束较弱,则 BN 层最终可以简化为 SBN 层的形式.2.2 基于溢出启发的模型训练 由于上文设计的 SBN 层参数是离散的,无法直接被传统算法训练,又因为移位参数需要兼顾溢出控制和数据位对齐,传统的量化技术也无法兼顾,因此本文提出基于溢出启发的动态搜索SBN 层参数的训练策略(dynamic searching Shift strategy,D3S)来解决上述问题.D3S 包括
25、 3 个模块:(1)SBN 层参数初始化;(2)反向传播随机梯度下降(back-propagation and stochastic gradient descent,BP-SGD)和 基 于 SBN 层 改 良 的 粒 子 群 搜 索(Shift-based particle swarm optimization,SPSO)协同训练;(3)尾端 SBN 层静态化.2.2.1 SBN 层参数初始化 模型参数的初始值对模型训练初期的收敛效果有着显著影响.常用的 He 等18,Glorot 等19和随机 3 种初始化方法应用在 SBN 层上的效果并不理想,这是因为它们未考虑溢出带来的影响.进一步分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 能效 加速器 二值化 神经网络 设计 训练 方法
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。