[发明专利]一种卷积神经网络加速器的内部存储带宽优化方法有效

专利信息
申请号: 202011102647.7 申请日: 2020-10-15
公开(公告)号: CN112070217B 公开(公告)日: 2023-06-06
发明(设计)人: 李幼萌;王亚博 申请(专利权)人: 天津大学
主分类号: G06N3/0464 分类号: G06N3/0464
代理公司: 天津市北洋有限责任专利代理事务所 12201 代理人: 韩帅
地址: 300072*** 国省代码: 天津;12
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 卷积 神经网络 加速器 内部 存储 带宽 优化 方法
【权利要求书】:

1.一种卷积神经网络加速器的内部存储带宽优化方法,其特征在于,所述神经网络的卷积层中设置有对加速器减少带宽需求的优化模块,所述优化模块采用如下步骤:

步骤1、在存放待计算特征数据的内部存储RAM与计算单元之间设置一块与计算单元数相同大小的CACHE,CACHE中的各个数据直连在计算单元上,在每个计算周期先将CACHE中数据传入计算单元;

步骤2、由内存读写控制单元用读取并准备好下一周期所用数据:缓存块相对于内存区优先上下移动,每次移动将缓存块中不同于上一周期的一行数据丢弃,其他数据顺序前移,将缓存块新覆盖到的数据加入到空行;

步骤3、当纵向移动到边界时,横向移动一步,将缓存块中不同于上一周期的一列数据丢弃,其他数据顺序侧移,将缓存块新覆盖到的数据加入到空列,其中,所述优化模块采用如下步骤实现二维特征数据缓存:

步骤0,初始化CACHE,准备好第一个计算周期所用数据;此过程开始,由内存读写控制单元将CACHE第一行应存入的数据的地址向量传给内部存储RAM,在下一周期提交第二行地址向量,并将收到的第一行数据向量放入CACHE第一行,如此重复,直到将CACHE填满,标志初始化完成,此时CACHE中的数据与内部存储RAM的左上角数据一一对应;其中:设置了维护地址的变量AddrBase,AddrBase的第一个值等于CoreLen减1,每一个地址向量的最后一个元素等于AddrBase的值,其它元素依次递减得出,之后AddrBase的值改变为Addr0,Addr0的计算如公式(1)所示,公式1中InMapCol为超参数,是二维特征数据的列数;

Addr0=AddrBase+InMapCol     (1)

步骤1:当初始化完成之后,计算单元开始工作,利用CACHE中的数据完成第一次运算,内存读写控制单元继续执行上述地址的计算及传递,接收到的数据向量将被放置于CACHE的最后一行,原有的最后一行转移到倒数第二行,以此规律将数据上移,抛弃原有的第一行数据,同时计数器Counter1开始工作,每执行一次地址向量的传递便自增,直到其不小于InMapRow减CoreLen;

步骤2:步骤1结束时相当于CACHE相对于二维特征数据的滑动已经到达此列的底部,此时将CACHE向右移动一列;此时地址向量的计算方式改变,AddrBase的值加1作为地址向量的最后一个元素,其他元素向前依次递减InMapCol,由此地址向量得到的数据向量以新方式放入CACHE:将CACHE的各行数据向前移动一个元素的位置,舍弃各行的行首元素,之后将新的数据向量的第一个元素填充在CACHE的第一行的最后一个元素位置上,数据向量的第二个元素填充在CACHE的第二行的最后一个元素位置上,依次进行;之后,将AddrBase的值纠正为Addr1,Addr1的计算如公式(2)所示,同时变量Counter2自增,并进入步骤3:

Addr1=AddrBase-CoreLen×InMapCol    (2)

步骤3:本步骤类似步骤1,本步骤于每次地址向量计算完后,变量AddrBase的值改变为Addr2,Addr2的计算方式如公式(2)所示,接收到的数据向量将被放置在CACHE的第一行,原第一行向下移动成为新的第二行,其他行依次下移,抛弃最后一行数据;同时计数器Counter1将每次自减1,直到其不大于1时,进入步骤4;

Addr2=AddrBase-InMapCol    (3)

步骤4:本步骤类似步骤2,本步骤地址向量的计算方式变为AddrBase的值加1作为地址向量的最后一个元素,其他元素向前依次递增InMapCol,然后将CACHE的各行数据向前移动一个元素的位置,舍弃各行的行首元素,之后将新的数据向量的最后一个元素填充在CACHE的第一行的最后一个元素位置上,数据向量的倒数第二个元素填充在CACHE的第二行的最后一个元素位置上,依次进行,填充完毕后对计数器Counter2进行判断,如果Counter2小于Counter,则Counter2自增1,将AddrBase的值纠正为Addr3,Addr3的计算如公式(5)所示,并进入步骤1;否则,表示此特征数据已经被扫描一遍了,这时需要判断是否还有其他卷积核需要与其进行卷积计算,ScanIndex变量则记录一组二维特征数据被扫描的次数,如ScanIndex不小于CoreGroup,则表示此二维特征数据已使用完毕,需初始化相关的各变量,否则纠正AddrBase的值为Addr4,Addr4的计算如公式(6)所示,并进入步骤5:

Counter=InMapCol-CoreLen    (4)

Addr3=AddrBase+CoreLen×InMapCol    (5)

Addr4=AddrBase-CoreLen+CoreLen×InMapCol    (6)

步骤5:为了省去初始化CACHE的步骤,此时可以沿着CACHE滑动的路径反向移动回去,由于一个卷积核对应一组二维特征数据,因此滑动的初始位置可以在任意位置;此时CACHE相当于和二维特征数据的右上角数据一一对应;总体上类似于步骤1,不同的是地址向量的第一个元素等于变量AddrBase的值,其他元素依次递增;同时计数器Counter1的状态与条件与步骤1相同,其不小于Counter′时进入步骤6,Counter′的计算如公式(7)所示:

Counter′=InMapRow-CoreLen    (7)

步骤6:此步骤与步骤2相似,不同的是AddrBase的值自减1作为地址向量的第一个元素,其他元素向后依次递减InMapCol;将CACHE的各行数据向后移动一个元素的位置,舍弃各行的行尾元素,之后将新的数据向量的第一个元素填充在CACHE的最后一行的第一个元素位置上,数据向量的第二个元素填充在CACHE的倒数第二行的第一个元素位置上,依次进行;之后,将AddrBase的值纠正为Addr1;计数器Counter2自减1,并进入步骤7;

步骤7:此步骤与步骤3基本相同,不同的是此步骤中地址向量的计算方式与步骤5相同,地址向量的第一个元素等于变量AddrBase的值,其他元素依次递增;当计数器Counter1不大于1时,进入步骤8;

步骤8:本步骤类似步骤4,本步骤地址向量的计算方式为AddrBase的值自减1作为地址向量的第一个元素,其他元素向后依次递减InMapCol,将CACHE的各行数据向后移动一个元素的位置,舍弃各行的行尾元素,之后将新的数据向量的第一个元素填充在CACHE的第一行的第一个元素位置上,数据向量的第二个元素填充在CACHE的第二行的第一个元素位置上,依次进行;填充完毕后对计数器Counter2进行判断,如果Counter2大于1,则Counter2自减1,将AddrBase的值纠正为Addr3,进入步骤5;否则,表示此特征数据已经被扫描一遍了,这时如果ScanIndex不小于CoreGroup,则表示此二维特征数据已使用完毕,需初始化相关的各变量,否则纠正变量AddrBase的值为Addr5,Addr5的计算方法如公式(8)所示,之后进入步骤1;

Addr5=AddrBase+CoreLen+CoreLen×InMapCol     (8)。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津大学,未经天津大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202011102647.7/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top