一种针对ReRAM部署神经网络的权重分配方法与流程

文档序号:34553418发布日期:2023-06-28 04:52阅读:57来源:国知局
一种针对ReRAM部署神经网络的权重分配方法与流程

本发明涉及神经网络,尤其涉及一种针对reram部署神经网络的权重分配方法。


背景技术:

1、神经网络算法在计算过程中加载权重会占用大量数据带宽,基于reram的存算神经网络计算引擎事先将权重写入计算单元,在执行神经网络算法是仅需要加载特征向量,省去权重的加载,能极大缓解带宽压力释放算力。

2、目前基于reram的存内神经网络计算引擎尚处于起步阶段,没有成熟的完整的解决方案。

3、该算法中存算颗粒结构如图1所示,其中,一个bank由256行144b的存算单元组成;一个macro由4个bank组成,其中bank之间共享输入的数据/地址,提供4个不同的输出;一个group由16个macro组成。该算法描述4 group的情况,即存算颗粒总共包含256bank。rowbank表示并行放置的bank数量,即一次进行能使用的最大bank数量。神经网络的权重格式也是多维数组,即number * widht * hight * channel。由于存算阵列与权重都是多维格式,一般网络较多,如果纯手动摆放整个网络的权重到存算阵列将引起很多不便,如:

4、(1)多维数据,摆放难度大,容易出现数据覆盖问题。

5、(2)没有复用性,不同神经网络都需要独立处理,工作量极大。

6、(3)迭代困难,存放规则变化,手动变更权重存放难以为继。


技术实现思路

1、本发明的目的在于克服现有技术的不足,从而提供一种针对reram部署神经网络的权重分配方法。

2、本发明的目的是通过以下技术方案来实现的:

3、一种针对reram部署神经网络的权重分配方法,包括以下步骤:

4、步骤1:读入神经网络;

5、步骤2:读入神经网络层信息;

6、步骤3:判断是否包括权重数据;

7、步骤4:若是,则进行权重转换,形成3维小立方体;若否,则跳转至步骤5;

8、步骤5:判断神经网络层是否为最后一层;

9、步骤6:若是,则使用3d背包算法将3维小立方体存放到存算阵列转换的大立方体中;若否,则读入该神经网络层的下一层,并跳转至步骤2;

10、步骤7:输出存放坐标。

11、进一步的,所述步骤4中的权重转换具体为:将神经网络权重转换为存算神经网络计算引擎支持的3维小立方体。

12、进一步的,权重转换的映射关系为:3维小立方体的rowbank表示并行放置的bank数量,即一次进行能使用的最大bank数量;一个bank由144b * 256 行组成,即一个bank的存储容量为144b * 256 = 36 kb;底面由rowbank * columns组成,表示当前的计算资源。

13、进一步的,存算阵列转换的映射关系为:3维小立方体的rowbank表示并行放置的bank数量,即一次进行能使用的最大bank数量;一个bank由144b * 256 行组成,即一个bank的存储容量为144b * 256 = 36 kb;底面由rowbank * columns组成,表示当前的计算资源。

14、进一步的,所述步骤6中使用3d背包算法将3维小立方体存放到存算阵列转换的大立方体中具体包括以下步骤:

15、步骤601:对3维小立方体降序排列;

16、步骤602:依次传入排序好的小立方体进行存放,并先沿colums方向摆放,如果小立方体的columns超过存算颗粒大立方体的边界,则增加最大的rowbanks到下一行摆放;再沿rowbank方向摆放,如果当前平面摆放满,则增加rows到下一层空间摆放;最后沿rows方向摆放;

17、步骤603:存放结束,获取存放的所有小立方体坐标,生成神经网络部署必要的权重分布信息。

18、进一步的,所述步骤601中的降序排列以rowbank>columns>rows的优先级进行降序排列。

19、本发明的有益效果:

20、1、本发明转换存算阵列视角,将权重存放问题抽象为传统的3d背包问题,便于使用成熟的算法解决陌生的问题,提高权重存放的效率;

21、2、本发明适用于多数神经网络的权重存放,可复用性高,更利于神经网络的部署与存算神经网络计算引擎的迭代改进。



技术特征:

1.一种针对reram部署神经网络的权重分配方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种针对reram部署神经网络的权重分配方法,其特征在于,所述步骤4中的权重转换具体为:将神经网络权重转换为存算神经网络计算引擎支持的3维小立方体。

3.根据权利要求2所述的一种针对reram部署神经网络的权重分配方法,其特征在于,权重转换的映射关系为:3维小立方体的rowbank表示并行放置的bank数量,即一次进行能使用的最大bank数量;一个bank由144b * 256 行组成,即一个bank的存储容量为144b *256 = 36 kb;底面由rowbank * columns组成,表示当前的计算资源。

4.根据权利要求1所述的一种针对reram部署神经网络的权重分配方法,其特征在于,存算阵列转换的映射关系为:3维小立方体的rowbank表示并行放置的bank数量,即一次进行能使用的最大bank数量;一个bank由144b * 256 行组成,即一个bank的存储容量为144b* 256 = 36 kb;底面由rowbank * columns组成,表示当前的计算资源。

5.根据权利要求1所述的一种针对reram部署神经网络的权重分配方法,其特征在于,所述步骤6中使用3d背包算法将3维小立方体存放到存算阵列转换的大立方体中具体包括以下步骤:

6.根据权利要求5所述的一种针对reram部署神经网络的权重分配方法,其特征在于,所述步骤601中的降序排列以rowbank>columns>rows的优先级进行降序排列。


技术总结
本发明公开了一种针对ReRAM部署神经网络的权重分配方法,属于神经网络技术领域,其方法包括:遍历神经网络结构,将权重进行转换,适配到存算神经网络计算引擎,每层的权重形成一个3维的小立方体;使用3d背包算法,遍历所有的权重立方体,将小立方体放到存算阵列转换的大立方体中,并获取对应的坐标信息。本发明转换了存算阵列视角,将权重存放问题抽象为传统的3d背包问题,便于使用成熟的算法解决陌生的问题,提高了权重存放的效率;同时适用于多数神经网络的权重存放,可复用性高,更利于神经网络的部署与存算神经网络计算引擎的迭代改进。

技术研发人员:董光达,余少华,伍骏,熊大鹏,李涛
受保护的技术使用者:苏州亿铸智能科技有限公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1