[发明专利]一种用于混合精度神经网络计算的可重构脉动阵列系统有效
申请号: | 202110173515.1 | 申请日: | 2021-02-09 |
公开(公告)号: | CN112836813B | 公开(公告)日: | 2023-06-16 |
发明(设计)人: | 代柳瑶;杜来民;李凯;谢歆昂;毛伟;余浩 | 申请(专利权)人: | 南方科技大学 |
主分类号: | G06N3/063 | 分类号: | G06N3/063;G06N3/04 |
代理公司: | 深圳市君胜知识产权代理事务所(普通合伙) 44268 | 代理人: | 刘芙蓉 |
地址: | 518055 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 混合 精度 神经网络 计算 可重构 脉动 阵列 系统 | ||
1.一种用于混合精度神经网络计算的可重构脉动阵列系统,其特征在于,所述可重构脉动阵列系统包括:
可重构脉动阵列模块,与所述可重构脉动阵列模块耦合连接的多精度数据流重构模块,以及与所述多精度数据流重构模块耦合连接的DRAM片外存储器,所述多精度数据流重构模块用于对混合精度神经网络的运算进行加速;所述DRAM片外存储器用于存储数据;其中,所述可重构脉动阵列模块采用特定脉动流形式,包括可重构PE单元,输入图像矩阵,卷积核矩阵,片上网络单元;
所述可重构PE单元包括可重构乘法器,可重构加法器,选择器;所述可重构PE单元用于重构乘法器和加法器的计算逻辑;
所述可重构PE单元在预设的精度信号下,将接收的矩阵数据存储,并将脉动数据流输入到可重构乘法器;所述可重构乘法器根据精度信号进行重构,并将乘法运算结果输出给加法器;所述加法器根据控制信号来执行累加,并将累加结果输出到所述选择器;
所述输入图像矩阵的每一行按顺序输入到可重构脉动阵列模块对应的行中;所述卷积核矩阵的每一列按顺序输入到可重构脉动阵列模块对应的列中;
所述可重构乘法器根据精度信号进行重构,并将乘法运算结果输出给加法器;所述加法器根据控制信号来执行累加,并将累加结果输出到所述选择器,包括:
根据所述精度信号判断计算并行度;
将输入的两个有符号数取绝对值,并存储符号位;
将所述两个有符号数的绝对值相乘得到绝对值乘积,符号位做异或操作得到乘积的符号位;
根据所述乘积的符号位对所述绝对值乘积进行取补码操作;
完成当前精度下的乘法运算并输出乘积给所述加法器;
所述加法器前的选择器根据控制信号cycle_num判断是否开始新一轮的累加,其中,所述cycle_num判断条件是可重构PE单元在阵列中横纵坐标相加和等于(cycle_num-(compute_num+1))%32,其中,compute_num是计算矩阵长度;
将所述可重构加法器输出的结果给到所述选择器,根据脉动数据流信号进行输出操作;
所述输入图像矩阵的每一行按顺序输入到可重构脉动阵列模块对应的行中;所述卷积核矩阵的每一列按顺序输入到可重构脉动阵列模块对应的列中,包括:
所述输入图像矩阵和卷积核矩阵需要根据阵列的大小进行裁剪,每次最多只能输入16行或16列,每行或者每列的数据多次复用,矩阵计算完毕需要三层循环,数据流重构模块中的第一层循环计算当前行和列的所有数,第二层循环遍历卷积核矩阵的所有列,第三层循环遍历所述输入图像矩阵的所有行,在第二层循环中将所述输入图像矩阵的输入数在最右端DF输出后再写回到当前行对应的发射FIFO中;
所述可重构脉动阵列模块的计算模式根据预设的计算精度进行重构,包括:
当所述输入图像矩阵和卷积核矩阵的数据精度都是nbit时,一组nbit*nbit的计算会利用到可重构PE单元中乘法器所有的计算单元,所述乘法器和加法器一个周期只进行一组乘累加计算,每个可重构PE单元每个计算周期对I矩阵中的一个nbit数和J矩阵的一个nbit数的进行乘累加操作;其中,I为所述输入图像矩阵,位宽是Wi,J为所述卷积核矩阵,位宽是Wj,nbit*nbit的乘累加计算中输入的乘数和被乘数位宽分别是n和n;
当所述输入图像和卷积核的数据精度分别是nbit和n/2bit时,乘法器和加法器一个周期内并行进行2组乘累加计算, 脉动阵列并行进行I1*J1、I2*J2的矩阵乘法计算,其中,I1为数据精度是nbit的输入图像矩阵,I2为数据精度是n/2bit的输入图像矩阵,J1为数据精度是nbit的卷积核矩阵、J2为数据精度是n/2bit的卷积核矩阵;根据精度信号,矩阵适应模块将I1矩阵和I2矩阵进行拼接,得到一个新矩阵I,将J1矩阵和J2矩阵进行拼接,得到一个新矩阵J,每个可重构PE单元的每个周期对I矩阵中的一个nbit数和J矩阵中的一个n/2bit数进行乘累加操作,nbit和n/2bit乘累加计算中输入的乘数和被乘数的位宽分别是n和n/2;
nbit*nbit和nbit*n/2bit两组并行计算;
所述可重构PE单元还包括PE缓存器,所述可重构PE单元在预设周期对输入的脉动数据进行一次乘累加操作,并得到的乘累加结果存储在PE缓存器中;
所述可重构脉动阵列系统还包括阵列适应模块,所述阵列适应模块在预设的精度信号下,将更新矩阵输入给可重构脉动阵列模块;其中,所述将更新矩阵输入给可重构脉动阵列模块,采用一个PE单元分周期的方式完成,或采用设置一串PE单元采用流水线的方式完成;
所述片上网络单元管理所述PE缓存器的数据输出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南方科技大学,未经南方科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110173515.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种富硒枸杞脆果及其制备方法
- 下一篇:一种极简卡扣结构的液晶电视