System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种卷积神经网络训练硬件加速器制造技术_技高网

一种卷积神经网络训练硬件加速器制造技术

技术编号:40408391 阅读:8 留言:0更新日期:2024-02-20 22:29
本发明专利技术公开一种卷积神经网络训练硬件加速器,属于人工智能中边缘学习和计算领域。本发明专利技术所设计的卷积神经网络训练硬件加速器包括核外单元、缓存单元和数据处理单元,实现了可配置精度定点量化器,并对数据缓存方式进行了具体优化。本发明专利技术所设计的训练加速器具备模型精度高、计算效率高、资源开销低、功耗低等优点。

【技术实现步骤摘要】

本专利技术属于人工智能中边缘学习和计算领域,涉及卷积神经网络硬件友好的量化方案和加速器架构,尤其涉及一种卷积神经网络训练硬件加速器


技术介绍

1、近年来,卷积神经网络(convolutional neural networks, cnn)技术在人工智能领域得到了广泛应用,如目标检测、目标识别、图像分类、指纹识别、语音唤醒等。这些技术的实现一般需要两步:第一,收集大量与任务相关的数据集发送到云端,建立cnn模型,在云端的图形处理单元(graphics processing unit, gpu)上对cnn模型进行训练、迭代及优化,直至模型收敛;第二,将已收敛的cnn算法进行硬件电路实现,并嵌入到终端设备中。用户在使用终端设备时无需优化cnn算法,仅执行cnn的推理功能便可精准地实现检测或分类等任务。然而,伴随着任务复杂度提升、终端设备与云端的环境差异导致的模型精度渐低、以及用户隐私数据泄露等现象的频发,这种实现方式已不能满足用户的需求。一种可行的措施是让用户能够使用终端设备在设备现场完成cnn模型的再训练和优化工作,避免用户上传隐私数据或者上传对环境敏感的数据。不同于cnn推理计算,cnn训练期间涉及极其庞大的数据运算和内存访问,且对数据精度要求极高,以此来保证cnn算法能够收敛。例如,在gpu上训练cnn时,数据都以32位浮点数据存储并参与计算,以此来保证数据精度。但是,浮点数的乘除法计算需要消耗大量的硬件资源,而体积和能量都十分受限的终端设备很难支持这种大存储量、高复杂度的计算。因此,cnn模型量化训练算法一时成为了学术界和工业界研究的课题,将高位宽的浮点数量化为低位宽的定点数,旨在降低cnn训练的硬件成本,使其被部署在终端设备上成为可能。

2、现场可编程门阵列(field programmable gate array,fpga)具备开发周期短,并行计算,功耗低等优点,现有的cnn加速器多基于fpga实现,但多数仅支持cnn的推理计算。在少有的cnn训练加速器中,支持的cnn模型相对简单,参数量较小,且模型精度和收敛速度有待提升。


技术实现思路

1、本专利技术所要解决的技术问题是针对
技术介绍
中提到的需求和不足,提供一种卷积神经网络训练硬件加速器。

2、本专利技术为解决上述技术问题采用了以下技术方案:

3、一种卷积神经网络训练硬件加速器,包括核外单元、缓存单元和数据处理单元;

4、所述核外单元用于存储信息,输出网络各层可学习参数、网络各层特征值到所述缓存单元,接收所述缓存单元输出的可学习参数的梯度、网络各层特征值并实现可学习参数的更新;

5、所述缓存单元包括第一至第五bram、uram、第一至第十四2选1数据选择器,其中,第一、第二、第三、第五bram采用真双口配置,第四bram和uram采用简单双口配置;

6、所述第一至第十四2选1数据选择器均包含第一输入端、第二输入端、第三输入端和输出端,选择端为低电平时输出端输出第一输入端的数据,选择端为高电平时输出端输出第二输入端的数据;

7、所述第一、第二、第三、第四、第五bram的dina端分别和第四、第六、第八、第九、第三2选1数据选择器的输出端对应相连,第一、第二、第三、第五bram的dinb端分别和第五、第七、第八、第三2选1数据选择器的输出端对应相连,第一bram的douta端、第二bram的douta端分别和所述第二2选1数据选择器的第一输入端、第二输入端对应相连,第一bram的doutb端分别和第十、第十二2选1数据选择器的第一输入端相连,第二bram的doutb端分别和第十2选1数据选择器的第二输入端、第十三2选1数据选择器的第一输入端相连;

8、所述第三bram的douta端和所述第十一2选1数据选择器的第一输入端相连,第三bram的doutb端和所述第十二2选1数据选择器的第二输入端相连;

9、所述第四bram的douta端分别和所述第十一2选1数据选择器的第二输入端、第十三2选1数据选择器的第二输入端相连;

10、所述第五bram的douta端和所述第一2选1数据选择器的第一输入端相连,第五bram的doutb端作为缓存单元的第三输出端;

11、所述uram的dina端作为缓存单元的第一输入端,uram的douta端作为缓存单元的第二输出端;

12、所述第二2选1数据选择器的输出端和第一2选1数据选择器的第二输入端相连,第一2选1数据选择器的输出端作为缓存单元的第一输出端;

13、所述第三至第八2选1数据选择器的输出端均和其第一输入端相连;

14、所述第三2选1数据选择器的第二输入端作为缓存单元的第三输入端;

15、所述第四、第六、第九2选1数据选择器的第一输入端并联,作为缓存单元的第二输入端,第五、第七、第八、第九2选1数据选择器的第二输入端并联后作为缓存单元的第四输入端;

16、所述第十四2选1数据选择器的第一输入端、第二输入端分别和第十、第十一2选1数据选择器的输出端对应相连;

17、所述第十二、第十三、第十四2选1数据选择器的输出端分别作为缓存单元的第四、第五、第六输出端;

18、所述缓存单元在前向传播中从核外单元接收网络第一层的输入特征值并写入第一bram,从数据处理单元接收网络最后一层到的输入特征值并写入第四bram,从数据处理单元接收中间层的输入特征值并交替写入第二bram和第一bram,并从第一bram和第二bram中交替读出,输出到核外单元;缓存单元在反向传播中从数据处理单元接收起始误差和各层的传出误差并交替写入第三bram和第一bram,从第三bram的douta端和doutb端读出的传入误差输出到数据处理单元,分别用于计算传出误差和可学习参数的梯度,从核外单元接收网络中间层的输入特征值交替写入第二bram和第四bram,并从第四bram和第二bram中交替读出,输出到数据处理单元,用于计算可学习参数梯度,从数据处理单元接收网络各层可学习参数的梯度,写入第五bram,并从第五bram中读出,输出到核外单元;

19、所述缓存单元第一输入端接收所述核外单元的网络各层可学习参数,第二输入端接收所述核外单元的网络各层特征值,第三输入端接收所述数据处理单元计算的网络各层可学习参数的梯度,第四输入端接收所述数据处理单元计算的网络各层特征值和误差,第一输出端输出网络各层的特征值和可学习参数的梯度到所述核外单元,第二输出端输出网络各层可学习参数到所述数据处理单元,第三输出端输出批归一化层的可学习参数梯度到所述数据处理单元,第四输出端输出网络各层误差到所述数据处理单元,第五输出端输出网络各层特征值到所述数据处理单元,第六输出端输出网络各层特征值和误差到所述数据处理单元;

20、所述数据处理单元包括,第一至第二卷积处理模块、可配置精度定点量化器、批预处理模块和数据寄存器;

21、所述可配置精度定点量化器用于本文档来自技高网...

【技术保护点】

1.一种卷积神经网络训练硬件加速器,其特征在于,包括核外单元、缓存单元和数据处理单元;

2. 基于权利要求1所述卷积神经网络训练硬件加速器,其特征在于,所述第一至第四BRAM的数据位宽是K1*(B*ci*q)bit,所述第五BRAM的数据位宽是K2*(ci*ci*q),所述URAM的数据位宽是K3*(ci*co*p)bit,B是并行的输入图片数,ci和co分别是并行的卷积输入和输出通道数,q是单个特征值或者激活值的位宽,p是可学习参数的位宽, K1、K2、K3均为预设的正整数。

3.基于权利要求1和2所述卷积神经网络训练硬件加速器,其特征在于,所述第一卷积处理模块执行卷积层计算时,以co个卷积输出通道为基本单位,优先遍历输出特征的行和列,其次遍历卷积输出通道。

【技术特征摘要】

1.一种卷积神经网络训练硬件加速器,其特征在于,包括核外单元、缓存单元和数据处理单元;

2. 基于权利要求1所述卷积神经网络训练硬件加速器,其特征在于,所述第一至第四bram的数据位宽是k1*(b*ci*q)bit,所述第五bram的数据位宽是k2*(ci*ci*q),所述uram的数据位宽是k3*(ci*co*p)bit,b是并行...

【专利技术属性】
技术研发人员:谢玉东陈鑫项志强高昌浩
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1