CN116303108B - 一种适用于并行计算架构的权重地址排布方法 - Google Patents

一种适用于并行计算架构的权重地址排布方法 Download PDF

Info

Publication number
CN116303108B
CN116303108B CN202211091608.0A CN202211091608A CN116303108B CN 116303108 B CN116303108 B CN 116303108B CN 202211091608 A CN202211091608 A CN 202211091608A CN 116303108 B CN116303108 B CN 116303108B
Authority
CN
China
Prior art keywords
weight
memory
convolution kernel
bytes
weight parameter
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.)
Active
Application number
CN202211091608.0A
Other languages
English (en)
Other versions
CN116303108A (zh
Inventor
张宏宇
蒲坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xinli Intelligent Technology Shanghai Co ltd
Original Assignee
Xinli Intelligent Technology Shanghai Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xinli Intelligent Technology Shanghai Co ltd filed Critical Xinli Intelligent Technology Shanghai Co ltd
Priority to CN202211091608.0A priority Critical patent/CN116303108B/zh
Publication of CN116303108A publication Critical patent/CN116303108A/zh
Application granted granted Critical
Publication of CN116303108B publication Critical patent/CN116303108B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Multi Processors (AREA)

Abstract

本发明涉及卷积神经网络技术领域,尤其为一种适用于并行计算架构的权重地址排布方法,包括:内存排布优化单元按计算顺序来排布权重在内存中的位置;任务拆分控制单元将神经网络计算任务拆分为多个可执行的子任务;直接内存读写控制单元将权重系数从内存搬移到多核处理器中。本发明在卷积神经网络并行计算架构中,按照输出通道将任务拆分到不同处理核中进行运算的需求,针对多任务间的权重系数设计一种高效的内存排布方式,可以显著提高任务执行效率,降低芯片片内存储空间压力。本发明按计算顺序来排布权重在内存中的位置确保权重的连续读取,可以减少内存读取的latency,优化计算。

Description

一种适用于并行计算架构的权重地址排布方法
技术领域
本发明涉及卷积神经网络技术领域,尤其是一种适用于并行计算架构的权重地址排布方法。
背景技术
卷积神经网络是一种带有卷积结构的深度神经网络,卷积结构可以减少深层网络占用的内存量。卷积神经网络常进行串行训练,但随着数据规模的增长,单机串行训练存在耗时长且占有较多的系统资源的问题。后改由卷积神经网络进行并行处理,但随着神经网络复杂度的提高,特征维度显著增加,权重系数占用的内存空间越来越大。并且芯片的片内存储空间有限,一个处理核中的缓存体量已难以存放所有权重系数。
发明内容
本发明的目的是通过提出一种适用于并行计算架构的权重地址排布方法,以解决上述背景技术中提出的缺陷。
本发明采用的技术方案如下:
提供一种适用于并行计算架构的权重地址排布方法,包括:
S1.1:内存排布优化单元按计算顺序来排布权重在内存中的位置;
S1.2:任务拆分控制单元将神经网络计算任务拆分为多个可执行的子任务;
S1.3:直接内存读写控制单元将权重系数从内存搬移到多核处理器中。
作为本发明的一种优选技术方案:所述S1.1中,包括如下步骤:
S2.1:将权重参数输出通道数按照每32字节拆分为一组;
S2.2:计算整个卷积核分组数量时,当中,n的值向上取整。
作为本发明的一种优选技术方案:所述S2.1中,支持每个卷积核数据类型为1字节、2字节和4字节。
作为本发明的一种优选技术方案:当卷积核数据类型为1字节时,每组支持存放32个权重参数输出通道;当卷积核数据类型为2字节时,每组支持存放16个权重参数输出通道;当卷积核数据类型为4字节时,每组支持存放8个权重参数输出通道。
作为本发明的一种优选技术方案:所述S2.2中,n的值向上取整,在最后一组中,不满32字节的部分,填充0补足32字节。
作为本发明的一种优选技术方案:所述S1.2中,包括如下步骤:
S3.1:按照权重参数输出通道每32字节拆分子任务;
S3.2:向上取整。
作为本发明的一种优选技术方案:由一个处理核执行一个或多个子任务。
作为本发明的一种优选技术方案:所述S1.3中,每组子任务权重系数通过S1.2在内存中均连续排布,按照直接内存突发读写的方式,将子任务的权重系数连续搬移到片内存储器中。
作为本发明的一种优选技术方案:所述每组子任务权重占用的初始地址为:分组编号*权重参数卷积核高度*权重参数卷积核宽度*权重参数输入通道数*32字节。
作为本发明的一种优选技术方案:每个子任务权重占用的地址数量为:权重参数卷积核高度*权重参数卷积核宽度*权重参数输入通道数*32字节。
本发明提供的适用于并行计算架构的权重地址排布方法,与现有技术相比,其有益效果有:
本发明在卷积神经网络并行计算架构中,按照输出通道将任务拆分到不同处理核中进行运算的需求,针对多任务间的权重系数设计一种高效的内存排布方式,可以显著提高任务执行效率,降低芯片片内存储空间压力。本发明按计算顺序来排布权重在内存中的位置确保权重的连续读取,可以减少内存读取的latency,优化计算。
附图说明
图1为本发明优选实施例的方法流程图;
图2为本发明优选实施例中权重参数通道图;
图3为本发明优选实施例中1字节卷积核数据类型图。
具体实施方式
需要说明的是,在不冲突的情况下,本实施例中的实施例及实施例中的特征可以相互组合,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,本发明优选实施例提供了一种适用于并行计算架构的权重地址排布方法,包括:
S1.1:内存排布优化单元按计算顺序来排布权重在内存中的位置;
S1.2:任务拆分控制单元将神经网络计算任务拆分为多个可执行的子任务;
S1.3:直接内存读写控制单元将权重系数从内存搬移到多核处理器中。
所述S1.1中,包括如下步骤:
S2.1:将权重参数输出通道数按照每32字节拆分为一组;
S2.2:计算整个卷积核分组数量时,当中,n的值向上取整。
所述S2.1中,支持每个卷积核数据类型为1字节、2字节和4字节。
当卷积核数据类型为1字节时,每组支持存放32个权重参数输出通道;当卷积核数据类型为2字节时,每组支持存放16个权重参数输出通道;当卷积核数据类型为4字节时,每组支持存放8个权重参数输出通道。
所述S2.2中,n的值向上取整,在最后一组中,不满32字节的部分,填充0补足32字节。
所述S1.2中,包括如下步骤:
S3.1:按照权重参数输出通道每32字节拆分子任务;
S3.2:向上取整。
由一个处理核执行一个或多个子任务。
所述S1.3中,每组子任务权重系数通过S1.2在内存中均连续排布,按照直接内存突发读写的方式,将子任务的权重系数连续搬移到片内存储器中。
所述每组子任务权重占用的初始地址为:分组编号*权重参数卷积核高度*权重参数卷积核宽度*权重参数输入通道数*32字节。
所述每个子任务权重占用的地址数量为:权重参数卷积核高度*权重参数卷积核宽度*权重参数输入通道数*32字节。
本实施例中,参照图2、图3,内存排布优化单元包括:权重参数输出通道数(outputchannel,OCL),权重参数输入通道数(input channel,ICL),权重参数卷积核宽度W,权重参数卷积核高度H,卷积核数据类型format。
内存排布优化单元将OCL按照每32Byte拆分为一组,所述内存排布优化单元支持每个卷积核数据类型format为1Byte,2Byte,4Byte;当卷积核数据类型为1字节时,每组支持存放32个权重参数输出通道数;当卷积核数据类型为2字节时,每组支持存放16个权重参数输出通道数;当卷积核数据类型为4字节时,每组支持存放8个权重参数输出通道数。计算整个卷积核分组数量时,若OCL﹡format的值非32Byte的整数倍,需要所述公式进行归一化处理:OCL﹡format/32向上取整。在最后一组中,不满32Byte的部分,填充0补足32Byte。
在分组内,如图3以1Byte卷积核数据类型为例,依次摆ICL0的{H_0,W_0,OCL_0},{H_0,W_0,OCL_1},{H_0,W_0,OCL_2},…,{H_0,W_0,OCL_31},{H_0,W_1,OCL_0},{H_0,W_1,OCL_1},…的方式排列好;当分组内的ICL0排列好后,紧随ICL0的地址按上述方法排列ICL1;按上述方法排列完所有ICL后,得到OCL0~OCL31下所有ICL的排列;在OCL0~OCL31排列完成后,紧随OCL0~OCL31的地址按上述方法排列OCL32~63;按上述方法依次排列完所有权重系数。
任务拆分控制单元中,按照权重OCL方向32Byte的个数拆分子任务;拆分子任务的数量等于OCL﹡format/32向上取整;以常见的7x7卷积核,即W=7,H=7为例。即使ICL数量多达1024时,每个子任务的权重大小为1568KB,尚在片内存储器容量的可接受范围内;所述子任务,可以由1个处理核执行1个,也可以1个处理核执行多个。
直接内存读写控制单元中,按所述任务拆分控制单元的方法,每组子任务的权重系数在内存中均连续排布;每组子任务权重占用的初始地址为:分组编号﹡H﹡W﹡ICL﹡32Byte;每个子任务权重占用的地址数量为:H﹡W﹡ICL﹡32Byte;按照直接内存突发读写的方式,将子任务的权重系数连续搬移到片内存储器中。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

Claims (8)

1.一种适用于并行计算架构的权重地址排布方法,其特征在于:包括
S1.1:内存排布优化单元按计算顺序来排布权重在内存中的位置;
S1.2:任务拆分控制单元将神经网络计算任务拆分为多个可执行的子任务;
S1.3:直接内存读写控制单元将权重系数从内存搬移到多核处理器中;
所述S1.2中,包括如下步骤:
S3.1:按照权重参数输出通道每32字节拆分子任务;
S3.2:拆分子任务的数量等于权重参数输出通道数向上取整;
所述S1.1中,包括如下步骤:
S2.1:将权重参数输出通道数按照每32字节拆分为一组;
S2.2:计算整个卷积核分组数量时,当中,n的值向上取整;
内存排布优化单元将OCL按照每32Byte拆分为一组,所述内存排布优化单元支持每个卷积核数据类型format为1Byte,2Byte,4Byte;当卷积核数据类型为1字节时,每组支持存放32个权重参数输出通道数;当卷积核数据类型为2字节时,每组支持存放16个权重参数输出通道数;当卷积核数据类型为4字节时,每组支持存放8个权重参数输出通道数。
2.根据权利要求1所述的适用于并行计算架构的权重地址排布方法,其特征在于:所述S2.1中,支持每个卷积核数据类型为1字节、2字节和4字节。
3.根据权利要求2所述的适用于并行计算架构的权重地址排布方法,其特征在于:当卷积核数据类型为1字节时,每组支持存放32个权重参数输出通道;当卷积核数据类型为2字节时,每组支持存放16个权重参数输出通道;当卷积核数据类型为4字节时,每组支持存放8个权重参数输出通道。
4.根据权利要求1所述的适用于并行计算架构的权重地址排布方法,其特征在于:所述S2.2中,n的值向上取整,在最后一组中,不满32字节的部分,填充0补足32字节。
5.根据权利要求1所述的适用于并行计算架构的权重地址排布方法,其特征在于:由一个处理核执行一个或多个子任务。
6.根据权利要求1所述的适用于并行计算架构的权重地址排布方法,其特征在于:所述S1.3中,每组子任务权重系数通过S1.2在内存中均连续排布,按照直接内存突发读写的方式,将子任务的权重系数连续搬移到片内存储器中。
7.根据权利要求6所述的适用于并行计算架构的权重地址排布方法,其特征在于:所述每组子任务权重占用的初始地址为:分组编号*权重参数卷积核高度*权重参数卷积核宽度*
权重参数输入通道数*32字节。
8.根据权利要求6所述的适用于并行计算架构的权重地址排布方法,其特征在于:每个子任务权重占用的地址数量为:权重参数卷积核高度*权重参数卷积核宽度*权重参数输入通道数*32字节。
CN202211091608.0A 2022-09-07 2022-09-07 一种适用于并行计算架构的权重地址排布方法 Active CN116303108B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211091608.0A CN116303108B (zh) 2022-09-07 2022-09-07 一种适用于并行计算架构的权重地址排布方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211091608.0A CN116303108B (zh) 2022-09-07 2022-09-07 一种适用于并行计算架构的权重地址排布方法

Publications (2)

Publication Number Publication Date
CN116303108A CN116303108A (zh) 2023-06-23
CN116303108B true CN116303108B (zh) 2024-05-14

Family

ID=86813679

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211091608.0A Active CN116303108B (zh) 2022-09-07 2022-09-07 一种适用于并行计算架构的权重地址排布方法

Country Status (1)

Country Link
CN (1) CN116303108B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107862378A (zh) * 2017-12-06 2018-03-30 芯原微电子(上海)有限公司 基于多核的卷积神经网络加速方法及系统、存储介质及终端
CN108280514A (zh) * 2018-01-05 2018-07-13 中国科学技术大学 基于fpga的稀疏神经网络加速系统和设计方法
CN108920413A (zh) * 2018-06-28 2018-11-30 中国人民解放军国防科技大学 面向gpdsp的卷积神经网络多核并行计算方法
CN110503201A (zh) * 2019-08-29 2019-11-26 苏州浪潮智能科技有限公司 一种神经网络分布式并行训练方法与装置
CN110826708A (zh) * 2019-09-24 2020-02-21 上海寒武纪信息科技有限公司 一种用多核处理器实现神经网络模型拆分方法及相关产品
CN111381968A (zh) * 2020-03-11 2020-07-07 中山大学 一种高效运行深度学习任务的卷积运算优化方法及系统
CN111768458A (zh) * 2020-06-28 2020-10-13 苏州鸿鹄骐骥电子科技有限公司 一种基于卷积神经网络的稀疏图像处理方法
CN112288082A (zh) * 2020-11-23 2021-01-29 天津大学 一种基于hls的可重构通用标准卷积加速器设计方法
CN112465108A (zh) * 2020-11-11 2021-03-09 上海交通大学 一种面向存算一体平台的神经网络编译方法
CN112711478A (zh) * 2019-10-24 2021-04-27 珠海零边界集成电路有限公司 基于神经网络的任务处理方法、装置、服务器和存储介质
CN113051216A (zh) * 2021-04-22 2021-06-29 南京工业大学 一种基于FPGA加速的MobileNet-SSD目标检测装置及方法
CN113869446A (zh) * 2021-10-11 2021-12-31 沈阳航空航天大学 一种基于fpga的cnn目标识别系统及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11797837B2 (en) * 2017-04-24 2023-10-24 Intel Corporation Dynamic distributed training of machine learning models
CN110928576A (zh) * 2018-09-20 2020-03-27 中兴通讯股份有限公司 一种卷积神经网络的卷积处理方法、装置及存储介质
CN111382832A (zh) * 2018-12-29 2020-07-07 佳能株式会社 多层神经网络模型的训练和应用方法、装置及存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107862378A (zh) * 2017-12-06 2018-03-30 芯原微电子(上海)有限公司 基于多核的卷积神经网络加速方法及系统、存储介质及终端
CN108280514A (zh) * 2018-01-05 2018-07-13 中国科学技术大学 基于fpga的稀疏神经网络加速系统和设计方法
CN108920413A (zh) * 2018-06-28 2018-11-30 中国人民解放军国防科技大学 面向gpdsp的卷积神经网络多核并行计算方法
CN110503201A (zh) * 2019-08-29 2019-11-26 苏州浪潮智能科技有限公司 一种神经网络分布式并行训练方法与装置
CN110826708A (zh) * 2019-09-24 2020-02-21 上海寒武纪信息科技有限公司 一种用多核处理器实现神经网络模型拆分方法及相关产品
CN112711478A (zh) * 2019-10-24 2021-04-27 珠海零边界集成电路有限公司 基于神经网络的任务处理方法、装置、服务器和存储介质
CN111381968A (zh) * 2020-03-11 2020-07-07 中山大学 一种高效运行深度学习任务的卷积运算优化方法及系统
CN111768458A (zh) * 2020-06-28 2020-10-13 苏州鸿鹄骐骥电子科技有限公司 一种基于卷积神经网络的稀疏图像处理方法
CN112465108A (zh) * 2020-11-11 2021-03-09 上海交通大学 一种面向存算一体平台的神经网络编译方法
CN112288082A (zh) * 2020-11-23 2021-01-29 天津大学 一种基于hls的可重构通用标准卷积加速器设计方法
CN113051216A (zh) * 2021-04-22 2021-06-29 南京工业大学 一种基于FPGA加速的MobileNet-SSD目标检测装置及方法
CN113869446A (zh) * 2021-10-11 2021-12-31 沈阳航空航天大学 一种基于fpga的cnn目标识别系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种卷积神经网络的优化方法;刘晨;曲长文;周强;李智;;舰船电子工程(第05期);第36-40页 *

Also Published As

Publication number Publication date
CN116303108A (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
CN110399104B (zh) 数据存储方法、数据存储装置、电子设备、存储介质
US9286074B2 (en) NOP instruction compressing apparatus and method in a VLIW machine
CN111079917B (zh) 张量数据分块存取的方法及装置
CN106846235B (zh) 一种利用NVIDIA Kepler GPU汇编指令加速的卷积优化方法及系统
US8321492B1 (en) System, method, and computer program product for converting a reduction algorithm to a segmented reduction algorithm
CN111340201A (zh) 卷积神经网络加速器及其执行卷积运算操作的方法
CN112668708B (zh) 一种提高数据利用率的卷积运算装置
CN110413776B (zh) 一种基于cpu-gpu协同并行的文本主题模型lda高性能计算方法
CN111324294B (zh) 存取张量数据的方法和装置
CN109993293B (zh) 一种适用于堆叠式沙漏网络的深度学习加速器
US20230068450A1 (en) Method and apparatus for processing sparse data
CN111915001A (zh) 卷积计算引擎、人工智能芯片以及数据处理方法
CN111160534A (zh) 一种适用于移动终端的二值神经网络前向传播框架
CN113313247A (zh) 基于数据流架构的稀疏神经网络的运算方法
WO2023065983A1 (zh) 计算装置、神经网络处理设备、芯片及处理数据的方法
CN115687229A (zh) 一种ai训练板卡及基于此的服务器、服务器集群、分布式训练方法
CN116303108B (zh) 一种适用于并行计算架构的权重地址排布方法
KR20230081697A (ko) 팽창 컨볼루션 계산 가속화 방법 및 장치
CN111191774B (zh) 面向精简卷积神经网络的低代价加速器架构及其处理方法
CN110766133B (zh) 嵌入式设备中的数据处理方法、装置、设备和存储介质
CN112712167A (zh) 支持多种卷积神经网络加速的存储器访问方法及系统
US20240087076A1 (en) Graph data calculation method and apparatus
US20240088913A1 (en) Graph data compression method and apparatus
US20130061023A1 (en) Combining data values through associative operations
US11790592B2 (en) Data process apparatus for to-be-cached matrix and method thereof

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