一种针对ReRAM部署神经网络的权重分配方法组成比例

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

【技术实现步骤摘要】
一种针对ReRAM部署神经网络的权重分配方法


[0001]本专利技术涉及神经网络
,尤其涉及一种针对ReRAM部署神经网络的权重分配方法。

技术介绍

[0002]神经网络算法在计算过程中加载权重会占用大量数据带宽,基于ReRAM的存算神经网络计算引擎事先将权重写入计算单元,在执行神经网络算法是仅需要加载特征向量,省去权重的加载,能极大缓解带宽压力释放算力。
[0003]目前基于ReRAM的存内神经网络计算引擎尚处于起步阶段,没有成熟的完整的解决方案。
[0004]该算法中存算颗粒结构如图1所示,其中,一个bank由256行144B的存算单元组成;一个macro由4个bank组成,其中bank之间共享输入的数据/地址,提供4个不同的输出;一个group由16个macro组成。该算法描述4 group的情况,即存算颗粒总共包含256bank。rowBank表示并行放置的bank数量,即一次进行能使用的最大bank数量。神经网络的权重格式也是多维数组,即number * widht * hight * channel。由于存算阵列与权重都是多维格式,一般网络较多,如果纯手动摆放整个网络的权重到存算阵列将引起很多不便,如:(1)多维数据,摆放难度大,容易出现数据覆盖问题。
[0005](2)没有复用性,不同神经网络都需要独立处理,工作量极大。
[0006](3)迭代困难,存放规则变化,手动变更权重存放难以为继。

技术实现思路

[0007]本专利技术的目的在于克服现有技术的不足,从而提供一种针对ReRAM部署神经网络的权重分配方法。
[0008]本专利技术的目的是通过以下技术方案来实现的:一种针对ReRAM部署神经网络的权重分配方法,包括以下步骤:步骤1:读入神经网络;步骤2:读入神经网络层信息;步骤3:判断是否包括权重数据;步骤4:若是,则进行权重转换,形成3维小立方体;若否,则跳转至步骤5;步骤5:判断神经网络层是否为最后一层;步骤6:若是,则使用3d背包算法将3维小立方体存放到存算阵列转换的大立方体中;若否,则读入该神经网络层的下一层,并跳转至步骤2;步骤7:输出存放坐标。
[0009]进一步的,所述步骤4中的权重转换具体为:将神经网络权重转换为存算神经网络计算引擎支持的3维小立方体。
[0010]进一步的,权重转换的映射关系为:3维小立方体的rowBank表示并行放置的bank
数量,即一次进行能使用的最大bank数量;一个bank由144B * 256 行组成,即一个bank的存储容量为144B * 256 = 36 KB;底面由rowBank * columns组成,表示当前的计算资源。
[0011]进一步的,存算阵列转换的映射关系为:3维小立方体的rowBank表示并行放置的bank数量,即一次进行能使用的最大bank数量;一个bank由144B * 256 行组成,即一个bank的存储容量为144B * 256 = 36 KB;底面由rowBank * columns组成,表示当前的计算资源。
[0012]进一步的,所述步骤6中使用3d背包算法将3维小立方体存放到存算阵列转换的大立方体中具体包括以下步骤:步骤601:对3维小立方体降序排列;步骤602:依次传入排序好的小立方体进行存放,并先沿colums方向摆放,如果小立方体的columns超过存算颗粒大立方体的边界,则增加最大的rowBanks到下一行摆放;再沿rowBank方向摆放,如果当前平面摆放满,则增加rows到下一层空间摆放;最后沿rows方向摆放;步骤603:存放结束,获取存放的所有小立方体坐标,生成神经网络部署必要的权重分布信息。
[0013]进一步的,所述步骤601中的降序排列以rowbank>columns>rows的优先级进行降序排列。
[0014]本专利技术的有益效果:1、本专利技术转换存算阵列视角,将权重存放问题抽象为传统的3d背包问题,便于使用成熟的算法解决陌生的问题,提高权重存放的效率;2、本专利技术适用于多数神经网络的权重存放,可复用性高,更利于神经网络的部署与存算神经网络计算引擎的迭代改进。
附图说明
[0015]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
[0016]图1是存算颗粒结构图。
[0017]图2是本专利技术的方法流程图。
[0018]图3是3维立方体结构示意图。
具体实施方式
[0019]应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。
[0020]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0021]在本实施例中,如图2所示,一种针对ReRAM部署神经网络的权重分配方法,包括以
下步骤:步骤1:读入神经网络;步骤2:读入神经网络层信息;步骤3:判断是否包括权重数据;步骤4:若是,则进行权重转换,形成3维小立方体;若否,则跳转至步骤5;步骤5:判断神经网络层是否为最后一层;步骤6:若是,则使用3d背包算法将3维小立方体存放到存算阵列转换的大立方体中;若否,则读入该神经网络层的下一层,并跳转至步骤2;步骤7:输出存放坐标。
[0022]在本实施例中,权重转换的映射关系为:3维小立方体的rowBank表示并行放置的bank数量,即一次进行能使用的最大bank数量;一个bank由144B(列方向) * 256 行(行方向)组成,即一个bank的存储容量为144B * 256 = 36 KB;底面由rowBank * columns组成,表示当前的计算资源。
[0023]在本实施例中,存算阵列转换的映射关系为:3维小立方体的rowBank表示并行放置的bank数量,即一次进行能使用的最大bank数量;一个bank由144B(列方向) * 256 行(行方向)组成,即一个bank的存储容量为144B * 256 = 36 KB;底面由rowBank * columns组成,表示当前的计算资源。
[0024]在本实施例中,本专利技术的ReRAM部署神经网络的权重分配算法,主要包括:遍历神经网络结构,将权重进行转换,适配到存算神经网络计算引擎,每层的权重形成一个3维的小立方体;使用3d背包算法,遍历所有的权重立方体,将小立方体放到存算阵列转换的大立方体中,并获取对应的坐标信息。具体如下:1、解析神经网络例如mobileNet

v3

unit8.tfl本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对ReRAM部署神经网络的权重分配方法,其特征在于,包括以下步骤:步骤1:读入神经网络;步骤2:读入神经网络层信息;步骤3:判断是否包括权重数据;步骤4:若是,则进行权重转换,形成3维小立方体;若否,则跳转至步骤5;步骤5:判断神经网络层是否为最后一层;步骤6:若是,则使用3d背包算法将3维小立方体存放到存算阵列转换的大立方体中;若否,则读入该神经网络层的下一层,并跳转至步骤2;步骤7:输出存放坐标。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部署神经网络的权重分配方法,其特征在于,存算阵列转换的映射...

【专利技术属性】
技术研发人员:董光达余少华伍骏熊大鹏李涛
申请(专利权)人:苏州亿铸智能科技有限公司
类型:发明
国别省市:

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

1