本发明涉及神经网络,尤其涉及一种针对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的优先级进行降序排列。