CN116306811A - 一种针对ReRAM部署神经网络的权重分配方法 - Google Patents
一种针对ReRAM部署神经网络的权重分配方法 Download PDFInfo
- Publication number
- CN116306811A CN116306811A CN202310178399.1A CN202310178399A CN116306811A CN 116306811 A CN116306811 A CN 116306811A CN 202310178399 A CN202310178399 A CN 202310178399A CN 116306811 A CN116306811 A CN 116306811A
- Authority
- CN
- China
- Prior art keywords
- neural network
- storage
- weight
- reram
- cubes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 15
- 238000006243 chemical reaction Methods 0.000 claims description 11
- 230000009191 jumping Effects 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 6
- 239000002245 particle Substances 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 abstract description 13
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000008187 granular material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种针对ReRAM部署神经网络的权重分配方法,属于神经网络技术领域,其方法包括:遍历神经网络结构,将权重进行转换,适配到存算神经网络计算引擎,每层的权重形成一个3维的小立方体;使用3d背包算法,遍历所有的权重立方体,将小立方体放到存算阵列转换的大立方体中,并获取对应的坐标信息。本发明转换了存算阵列视角,将权重存放问题抽象为传统的3d背包问题,便于使用成熟的算法解决陌生的问题,提高了权重存放的效率;同时适用于多数神经网络的权重存放,可复用性高,更利于神经网络的部署与存算神经网络计算引擎的迭代改进。
Description
技术领域
本发明涉及神经网络技术领域,尤其涉及一种针对ReRAM部署神经网络的权重分配方法。
背景技术
神经网络算法在计算过程中加载权重会占用大量数据带宽,基于ReRAM的存算神经网络计算引擎事先将权重写入计算单元,在执行神经网络算法是仅需要加载特征向量,省去权重的加载,能极大缓解带宽压力释放算力。
目前基于ReRAM的存内神经网络计算引擎尚处于起步阶段,没有成熟的完整的解决方案。
该算法中存算颗粒结构如图1所示,其中,一个bank由256行144B的存算单元组成;一个macro由4个bank组成,其中bank之间共享输入的数据/地址,提供4个不同的输出;一个group由16个macro组成。该算法描述4 group的情况,即存算颗粒总共包含256bank。rowBank表示并行放置的bank数量,即一次进行能使用的最大bank数量。神经网络的权重格式也是多维数组,即number * widht * hight * channel。由于存算阵列与权重都是多维格式,一般网络较多,如果纯手动摆放整个网络的权重到存算阵列将引起很多不便,如:
(1)多维数据,摆放难度大,容易出现数据覆盖问题。
(2)没有复用性,不同神经网络都需要独立处理,工作量极大。
(3)迭代困难,存放规则变化,手动变更权重存放难以为继。
发明内容
本发明的目的在于克服现有技术的不足,从而提供一种针对ReRAM部署神经网络的权重分配方法。
本发明的目的是通过以下技术方案来实现的:
一种针对ReRAM部署神经网络的权重分配方法,包括以下步骤:
步骤1:读入神经网络;
步骤2:读入神经网络层信息;
步骤3:判断是否包括权重数据;
步骤4:若是,则进行权重转换,形成3维小立方体;若否,则跳转至步骤5;
步骤5:判断神经网络层是否为最后一层;
步骤6:若是,则使用3d背包算法将3维小立方体存放到存算阵列转换的大立方体中;若否,则读入该神经网络层的下一层,并跳转至步骤2;
步骤7:输出存放坐标。
进一步的,所述步骤4中的权重转换具体为:将神经网络权重转换为存算神经网络计算引擎支持的3维小立方体。
进一步的,权重转换的映射关系为:3维小立方体的rowBank表示并行放置的bank数量,即一次进行能使用的最大bank数量;一个bank由144B * 256 行组成,即一个bank的存储容量为144B * 256 = 36 KB;底面由rowBank * columns组成,表示当前的计算资源。
进一步的,存算阵列转换的映射关系为:3维小立方体的rowBank表示并行放置的bank数量,即一次进行能使用的最大bank数量;一个bank由144B * 256 行组成,即一个bank的存储容量为144B * 256 = 36 KB;底面由rowBank * columns组成,表示当前的计算资源。
进一步的,所述步骤6中使用3d背包算法将3维小立方体存放到存算阵列转换的大立方体中具体包括以下步骤:
步骤601:对3维小立方体降序排列;
步骤602:依次传入排序好的小立方体进行存放,并先沿colums方向摆放,如果小立方体的columns超过存算颗粒大立方体的边界,则增加最大的rowBanks到下一行摆放;再沿rowBank方向摆放,如果当前平面摆放满,则增加rows到下一层空间摆放;最后沿rows方向摆放;
步骤603:存放结束,获取存放的所有小立方体坐标,生成神经网络部署必要的权重分布信息。
进一步的,所述步骤601中的降序排列以rowbank>columns>rows的优先级进行降序排列。
本发明的有益效果:
1、本发明转换存算阵列视角,将权重存放问题抽象为传统的3d背包问题,便于使用成熟的算法解决陌生的问题,提高权重存放的效率;
2、本发明适用于多数神经网络的权重存放,可复用性高,更利于神经网络的部署与存算神经网络计算引擎的迭代改进。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1是存算颗粒结构图。
图2是本发明的方法流程图。
图3是3维立方体结构示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本实施例中,如图2所示,一种针对ReRAM部署神经网络的权重分配方法,包括以下步骤:
步骤1:读入神经网络;
步骤2:读入神经网络层信息;
步骤3:判断是否包括权重数据;
步骤4:若是,则进行权重转换,形成3维小立方体;若否,则跳转至步骤5;
步骤5:判断神经网络层是否为最后一层;
步骤6:若是,则使用3d背包算法将3维小立方体存放到存算阵列转换的大立方体中;若否,则读入该神经网络层的下一层,并跳转至步骤2;
步骤7:输出存放坐标。
在本实施例中,权重转换的映射关系为:3维小立方体的rowBank表示并行放置的bank数量,即一次进行能使用的最大bank数量;一个bank由144B(列方向) * 256 行(行方向)组成,即一个bank的存储容量为144B * 256 = 36 KB;底面由rowBank * columns组成,表示当前的计算资源。
在本实施例中,存算阵列转换的映射关系为:3维小立方体的rowBank表示并行放置的bank数量,即一次进行能使用的最大bank数量;一个bank由144B(列方向) * 256 行(行方向)组成,即一个bank的存储容量为144B * 256 = 36 KB;底面由rowBank * columns组成,表示当前的计算资源。
在本实施例中,本发明的ReRAM部署神经网络的权重分配算法,主要包括:遍历神经网络结构,将权重进行转换,适配到存算神经网络计算引擎,每层的权重形成一个3维的小立方体;使用3d背包算法,遍历所有的权重立方体,将小立方体放到存算阵列转换的大立方体中,并获取对应的坐标信息。具体如下:
1、解析神经网络例如mobileNet-v3-unit8.tflite,遍历网络的每一层,将一般卷积、深度卷积层及全连接层放到同一数组中(记作weight_layer_array),其他没有带权重的层忽略;
2、遍历weight_layer_array,将权重的维度根据存算神经网络计算引擎的约束进行形变,得到新的数组;
3、将上一步得到的新数组传入3d背包算法中进行小立方体的摆放,注意存放过程中权重立方体不能旋转,具体步骤包括:
(1)对小立方体降序排列(降序优先级:rowbank>columns>rows);
(2)依次传入排序好的小立方体进行存放,获取坐标。如,图3其具体存放过程为:
(a)先沿colums方向摆放,如果小立方体的columns超过存算颗粒大立方体的边界,则增加最大的rowBanks到下一行摆放;
(b)再沿rowBank方向摆放,如果当前平面摆放满,则增加rows到下一层空间摆放;
(c)最后沿rows方向摆放;
(3)存放结束,获取存放的所有小立方体坐标,生成神经网络部署必要的权重分布信息。
需要特别说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、ROM、RAM等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (6)
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部署神经网络的权重分配方法,其特征在于,存算阵列转换的映射关系为:3维小立方体的rowBank表示并行放置的bank数量,即一次进行能使用的最大bank数量;一个bank由144B * 256 行组成,即一个bank的存储容量为144B* 256 = 36 KB;底面由rowBank * columns组成,表示当前的计算资源。
5.根据权利要求1所述的一种针对ReRAM部署神经网络的权重分配方法,其特征在于,所述步骤6中使用3d背包算法将3维小立方体存放到存算阵列转换的大立方体中具体包括以下步骤:
步骤601:对3维小立方体降序排列;
步骤602:依次传入排序好的小立方体进行存放,并先沿colums方向摆放,如果小立方体的columns超过存算颗粒大立方体的边界,则增加最大的rowBanks到下一行摆放;再沿rowBank方向摆放,如果当前平面摆放满,则增加rows到下一层空间摆放;最后沿rows方向摆放;
步骤603:存放结束,获取存放的所有小立方体坐标,生成神经网络部署必要的权重分布信息。
6.根据权利要求5所述的一种针对ReRAM部署神经网络的权重分配方法,其特征在于,所述步骤601中的降序排列以rowbank>columns>rows的优先级进行降序排列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310178399.1A CN116306811B (zh) | 2023-02-28 | 2023-02-28 | 一种针对ReRAM部署神经网络的权重分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310178399.1A CN116306811B (zh) | 2023-02-28 | 2023-02-28 | 一种针对ReRAM部署神经网络的权重分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116306811A true CN116306811A (zh) | 2023-06-23 |
CN116306811B CN116306811B (zh) | 2023-10-27 |
Family
ID=86823387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310178399.1A Active CN116306811B (zh) | 2023-02-28 | 2023-02-28 | 一种针对ReRAM部署神经网络的权重分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116306811B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106504320A (zh) * | 2016-11-02 | 2017-03-15 | 华东师范大学 | 一种基于gpu及面向深度图像的实时三维重构方法 |
WO2020133317A1 (zh) * | 2018-12-29 | 2020-07-02 | 华为技术有限公司 | 计算资源分配技术及神经网络系统 |
CN112000772A (zh) * | 2020-08-24 | 2020-11-27 | 齐鲁工业大学 | 面向智能问答基于语义特征立方体的句子对语义匹配方法 |
WO2021078486A1 (en) * | 2019-10-24 | 2021-04-29 | International Business Machines Corporation | 3d neural inference processing unit architectures |
CN112990444A (zh) * | 2021-05-13 | 2021-06-18 | 电子科技大学 | 一种混合式神经网络训练方法、系统、设备及存储介质 |
CN113128134A (zh) * | 2021-06-17 | 2021-07-16 | 中国矿业大学(北京) | 一种矿区生态环境演变驱动因子权重量化分析方法 |
WO2021142713A1 (zh) * | 2020-01-16 | 2021-07-22 | 北京比特大陆科技有限公司 | 神经网络处理的方法、装置与系统 |
CN113487020A (zh) * | 2021-07-08 | 2021-10-08 | 中国科学院半导体研究所 | 用于神经网络计算的参差存储结构及神经网络计算方法 |
CN113705784A (zh) * | 2021-08-20 | 2021-11-26 | 江南大学 | 一种基于矩阵共享的神经网络权重编码方法及硬件系统 |
CN114008677A (zh) * | 2019-04-26 | 2022-02-01 | 韦尔特布雷公司 | 三维模型优化 |
WO2022134465A1 (zh) * | 2020-12-24 | 2022-06-30 | 北京清微智能科技有限公司 | 加速可重构处理器运行的稀疏化数据处理方法和装置 |
CN114723024A (zh) * | 2022-03-08 | 2022-07-08 | 北京知存科技有限公司 | 用于存算一体芯片的基于线性规划的神经网络映射方法 |
CN115420578A (zh) * | 2022-06-30 | 2022-12-02 | 吉林大学 | 一种基于显微高光谱成像系统的Omicron病毒检测方法 |
CN115687181A (zh) * | 2022-11-07 | 2023-02-03 | 上海亿铸智能科技有限公司 | 一种用于存算处理单元的寻址方法 |
-
2023
- 2023-02-28 CN CN202310178399.1A patent/CN116306811B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106504320A (zh) * | 2016-11-02 | 2017-03-15 | 华东师范大学 | 一种基于gpu及面向深度图像的实时三维重构方法 |
WO2020133317A1 (zh) * | 2018-12-29 | 2020-07-02 | 华为技术有限公司 | 计算资源分配技术及神经网络系统 |
CN114008677A (zh) * | 2019-04-26 | 2022-02-01 | 韦尔特布雷公司 | 三维模型优化 |
WO2021078486A1 (en) * | 2019-10-24 | 2021-04-29 | International Business Machines Corporation | 3d neural inference processing unit architectures |
WO2021142713A1 (zh) * | 2020-01-16 | 2021-07-22 | 北京比特大陆科技有限公司 | 神经网络处理的方法、装置与系统 |
CN112000772A (zh) * | 2020-08-24 | 2020-11-27 | 齐鲁工业大学 | 面向智能问答基于语义特征立方体的句子对语义匹配方法 |
WO2022134465A1 (zh) * | 2020-12-24 | 2022-06-30 | 北京清微智能科技有限公司 | 加速可重构处理器运行的稀疏化数据处理方法和装置 |
CN112990444A (zh) * | 2021-05-13 | 2021-06-18 | 电子科技大学 | 一种混合式神经网络训练方法、系统、设备及存储介质 |
CN113128134A (zh) * | 2021-06-17 | 2021-07-16 | 中国矿业大学(北京) | 一种矿区生态环境演变驱动因子权重量化分析方法 |
CN113487020A (zh) * | 2021-07-08 | 2021-10-08 | 中国科学院半导体研究所 | 用于神经网络计算的参差存储结构及神经网络计算方法 |
CN113705784A (zh) * | 2021-08-20 | 2021-11-26 | 江南大学 | 一种基于矩阵共享的神经网络权重编码方法及硬件系统 |
CN114723024A (zh) * | 2022-03-08 | 2022-07-08 | 北京知存科技有限公司 | 用于存算一体芯片的基于线性规划的神经网络映射方法 |
CN115420578A (zh) * | 2022-06-30 | 2022-12-02 | 吉林大学 | 一种基于显微高光谱成像系统的Omicron病毒检测方法 |
CN115687181A (zh) * | 2022-11-07 | 2023-02-03 | 上海亿铸智能科技有限公司 | 一种用于存算处理单元的寻址方法 |
Non-Patent Citations (3)
Title |
---|
AQEEB IQBAL ARKA等: "ReGraphX: NoC-enabled 3D Heterogeneous ReRAM Architecture for Training Graph Neural Networks", 《ARXIV》, pages 1 - 6 * |
周川波: "基于ReRAM的神经网络加速器发展概况", 《西部广播电视》, no. 24, pages 246 - 251 * |
宫正: "基于激光雷达背包点云的室内场景语义分割与目标检测方法研究", 《中国博士学位论文全文数据库 信息科技辑》, no. 3, pages 136 - 79 * |
Also Published As
Publication number | Publication date |
---|---|
CN116306811B (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111178519B (zh) | 卷积神经网络加速引擎、卷积神经网络加速系统及方法 | |
CN109948774B (zh) | 基于网络层捆绑运算的神经网络加速器及其实现方法 | |
CN107203807B (zh) | 神经网络加速器的片上缓存带宽均衡方法、系统及其装置 | |
CN111723900B (zh) | 一种基于众核处理器的神经网络的映射方法及计算设备 | |
WO2020238843A1 (zh) | 神经网络计算设备、方法以及计算设备 | |
CN110222818B (zh) | 一种用于卷积神经网络数据存储的多bank行列交织读写方法 | |
CN115221102B (zh) | 用于优化片上系统的卷积运算操作的方法和相关产品 | |
CN110750957B (zh) | 一种高效多核RISC-V处理器的Cache系统验证方法 | |
CN112633490A (zh) | 执行神经网络模型的数据处理装置、方法及相关产品 | |
CN108197075B (zh) | 一种Inception结构的多核实现方法 | |
CN113449153A (zh) | 索引构建方法、装置、计算机设备和存储介质 | |
CN110084865A (zh) | 一种离散点分级加权拟合规则格网的方法 | |
CN105975345A (zh) | 一种基于分布式内存的视频帧数据动态均衡存储管理方法 | |
CN111415003B (zh) | 面向神经网络加速芯片的三维堆叠存储优化方法及装置 | |
CN116993555A (zh) | 国土空间规划重点区域识别的分区方法、系统及存储介质 | |
CN110336875B (zh) | 一种提高物联网应用的计算和存储速度的方法 | |
CN116306811B (zh) | 一种针对ReRAM部署神经网络的权重分配方法 | |
CN116956756B (zh) | 模型部署方法、任务处理方法、装置、设备及存储介质 | |
CN105138607A (zh) | 一种基于混合粒度分布式内存网格索引的knn查询方法 | |
CN116861951A (zh) | 一种分布式图神经网络计算效率的优化方法 | |
CN116528320A (zh) | 可控簇规模的无人机自组网簇首推举方法、系统及介质 | |
CN116089095B (zh) | 一种针对ReRAM神经网络计算引擎网络的部署方法 | |
CN114124973B (zh) | 一种面向多云场景的镜像同步方法和装置 | |
CN112527463B (zh) | 一种基于对象存储的容器镜像下载加速方法 | |
CN114021070A (zh) | 一种基于微架构处理器的深度卷积计算方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CB03 | Change of inventor or designer information |
Inventor after: Dong Guangda Inventor after: Yu Shaohua Inventor after: Wu Jun Inventor after: Xiong Dapeng Inventor before: Dong Guangda Inventor before: Yu Shaohua Inventor before: Wu Jun Inventor before: Xiong Dapeng Inventor before: Li Tao |
|
CB03 | Change of inventor or designer information |