CN108446758B - 一种面向人工智能计算的神经网络数据串行流水处理方法 - Google Patents

一种面向人工智能计算的神经网络数据串行流水处理方法 Download PDF

Info

Publication number
CN108446758B
CN108446758B CN201810139859.9A CN201810139859A CN108446758B CN 108446758 B CN108446758 B CN 108446758B CN 201810139859 A CN201810139859 A CN 201810139859A CN 108446758 B CN108446758 B CN 108446758B
Authority
CN
China
Prior art keywords
layer
processing module
data processing
neural network
layer data
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.)
Expired - Fee Related
Application number
CN201810139859.9A
Other languages
English (en)
Other versions
CN108446758A (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.)
Jiangsu Jinyi Zhixin Technology Co ltd
Original Assignee
Jiangsu Jinyi Zhixin Technology 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 Jiangsu Jinyi Zhixin Technology Co ltd filed Critical Jiangsu Jinyi Zhixin Technology Co ltd
Priority to CN201810139859.9A priority Critical patent/CN108446758B/zh
Publication of CN108446758A publication Critical patent/CN108446758A/zh
Application granted granted Critical
Publication of CN108446758B publication Critical patent/CN108446758B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Abstract

本发明涉及一种面向人工智能计算的神经网络数据串行流水处理方法,包括:神经网络第一层的层数据处理模块接收到初始数据后,进行层内并行运算;中间层的层数据处理模块接收到上一层串行输出的运算结果后,进行层内并行运算;最后层的层数据处理模块接收到上一层串行输出的运算结果后,进行层内并行运算,并串行输出运算结果;若多次输入初始数据,则所有层数据处理模块对多次输入的初始数据进行流水处理。本发明通过将神经网络每层分别对应不同的层数据处理模块,每个层数据处理模块对本层数据进行层内并行运算,不与外部交互,减少了不断从外部存储读写数据和参数产生大量功耗和延迟的问题,同时对多次输入数据,可进行流水处理,提高神经网络数据的处理效率。

Description

一种面向人工智能计算的神经网络数据串行流水处理方法
技术领域
本发明实施例涉及计算机技术领域,具体涉及一种面向人工智能计算的神经网络数据串行流水处理方法。
背景技术
神经网络是人工智能领域中应用最多的一种工具,神经网络的种类有多种,以深度卷积神经网络为例,深度卷积神经网络不同的模型具有不同层数,但主要计算类型有六种方式:全连接、卷积、池化、非线性、向量运算和矩阵加,这六种方式属于成熟技术,本文不再赘述。
神经网络模型的计算方式本质都是小矩阵的乘加运算,巨大的并行度带来巨大数据量,不断从外部存储读写数据和参数是其最大的瓶颈,将产生大量功耗和延迟。
上述对问题的发现过程的描述,仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
为了解决现有技术存在的问题,本发明的至少一个实施例提供了一种面向人工智能计算的神经网络数据串行流水处理方法。
本发明实施例公开一种面向人工智能计算的神经网络数据串行流水处理方法,包括:
神经网络第一层的层数据处理模块接收到初始数据后,对第一层的层数据进行层内并行运算,并串行输出运算结果;
神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对本身所属层的层数据进行层内并行运算,并串行输出运算结果;
神经网络最后层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对最后层的层数据进行层内并行运算,并串行输出运算结果;
若多次向所述神经网络输入初始数据,则所述神经网络第一层的层数据处理模块、神经网络中间层的层数据处理模块以及神经网络最后层的层数据处理模块对多次输入的初始数据进行流水处理。
可选的,所述神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,所述方法还包括:
所述神经网络中间层的层数据处理模块判断接收到的串行数据是否满足层内并行运算的预设最低条件;若满足,则执行所述对本身所属层的层数据进行层内并行运算,并串行输出运算结果的步骤。
可选的,所述神经网络第一层的层数据处理模块接收到初始数据后,对第一层的层数据进行层内并行运算后,所述方法还包括:
所述神经网络第一层的层数据处理模块存储运算结果;
相应地,所述神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对本身所属层的层数据进行层内并行运算后,所述方法还包括:
所述神经网络中间层的层数据处理模块存储运算结果;
相应地,所述神经网络最后层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对最后层的层数据进行层内并行运算后,所述方法还包括:
所述神经网络最后层的层数据处理模块存储运算结果。
可选的,所述方法还包括:
所述神经网络第一层的层数据处理模块接收到层数据配置信息后,对第一层的层数据进行配置;
所述神经网络中间层的层数据处理模块接收到层数据配置信息后,对本身所属层的层数据进行配置;
所述神经网络最后层的层数据处理模块接收到层数据配置信息后,对最后层的层数据进行配置。
可选的,所述层内并行运算为核间并行运算。
可见,本发明实施例的至少一个实施例中,通过将神经网络每层分别对应不同的层数据处理模块,每个层数据处理模块对本层数据进行层内并行运算,不与外部交互,减少了运算过程中不断从外部存储读写数据和参数产生大量功耗和延迟的问题,同时对多次输入数据,可进行流水处理,从而提高了神经网络数据的处理效率。
可见,本发明实施例的至少一个实施例中,每个层数据处理模块对本层数据进行层内并行运算,运算过程中本层数据均在本层数据处理模块中存储,减少了运算过程中不断从外部存储读写数据和参数产生大量功耗和延迟的问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种面向人工智能计算的神经网络数据串行流水处理方法流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例公开一种面向人工智能计算的神经网络数据串行流水处理方法,可包括如下步骤101至104:
101、神经网络第一层的层数据处理模块接收到初始数据后,对第一层的层数据进行层内并行运算,并串行输出运算结果。
102、神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对本身所属层的层数据进行层内并行运算,并串行输出运算结果。
103、神经网络最后层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对最后层的层数据进行层内并行运算,并串行输出运算结果。
本实施例中,串行输出可理解为将先运算出的数据先输出,将后运算出的数据后输出,而非将本层数据全部运算完成后统一输出。
104、若多次向所述神经网络输入初始数据,则所述神经网络第一层的层数据处理模块、神经网络中间层的层数据处理模块以及神经网络最后层的层数据处理模块对多次输入的初始数据进行流水处理。
本实施例中,神经网络中间层的层数据处理模块可以有多个,根据神经网络的层数确定,若神经网络有N层,则神经网络中间层的层数据处理模块有N-2个,N≥3。
本实施例中,神经网络的层数和层数据处理模块的个数相同,但是考虑到神经网络的层数通常较多,而神经网络的输入数据和输出数据都很少,且神经网络本身的参数和处理中的中间数据数量巨大,为了减少参数读取和层间数据传输,可对神经网络的层进行分组,例如可将M层神经网络分成N组,M>N,分组依据可以根据神经网络内部的参数数据大小、计算类型以及层间交互数据量等因素分组,例如,将连续的卷积、非线性和池化三层归到同一组。每组对应一个层数据处理模块,不同组对应不同的层数据处理模块。
本实施例中,对多次输入的初始数据进行流水处理,例如,若两次输入初始数据,则流水处理的部分过程为:神经网络第二层对应的层数据处理模块处理第一次输入的初始数据的第二层时,神经网络第一层对应的层数据处理模块开始处理第二次输入的初始数据的第一层。流水处理的完整过程与流水处理的部分过程类似,在此不再赘述。
本实施例中,通过流水处理方式使得中间数据边产生边使用,减少了缓存的中间数据数量。
可见,本实施例公开的神经网络数据串行流水处理方法,通过将神经网络每层分别对应不同的层数据处理模块,每个层数据处理模块对本层数据进行层内并行运算,不与外部交互,减少了运算过程中不断从外部存储读写数据和参数产生大量功耗和延迟的问题,同时对多次输入数据,可进行流水处理,从而提高了神经网络数据的处理效率。
在一个具体的例子中,步骤102中神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,他图1所示的方法还可包括图1中未示出的如下步骤102’:
102’、神经网络中间层的层数据处理模块判断接收到的串行数据是否满足层内并行运算的预设最低条件;若满足,则执行所述对本身所属层的层数据进行层内并行运算,并串行输出运算结果的步骤。
本实施例中,考虑到神经网络运算的每一层数据是一个三维矩阵,对数据输出来说每次都是输出一个数据,对数据输入来说,若要使处理器开始运算,至少要传输完一个维度的数据处理器才能开始计算,因此,预设最低条件可以为一个维度的数据。
在一个具体的例子中,步骤101中神经网络第一层的层数据处理模块接收到初始数据后,对第一层的层数据进行层内并行运算后,所述方法还包括:神经网络第一层的层数据处理模块存储运算结果;
相应地,步骤102中神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对本身所属层的层数据进行层内并行运算后,所述方法还包括:神经网络中间层的层数据处理模块存储运算结果;
相应地,步骤103中神经网络最后层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对最后层的层数据进行层内并行运算后,所述方法还包括:神经网络最后层的层数据处理模块存储运算结果。
可见,本实施例中,每个层数据处理模块对本层数据进行层内并行运算,运算过程中本层数据均在本层数据处理模块中存储,减少了运算过程中不断从外部存储读写数据和参数产生大量功耗和延迟的问题。
在一个具体的例子中,图1所示方法还可包括图1中未示出的如下步骤104~106:
104、神经网络第一层的层数据处理模块接收到层数据配置信息后,对第一层的层数据进行配置。
105、神经网络中间层的层数据处理模块接收到层数据配置信息后,对本身所属层的层数据进行配置。
106、神经网络最后层的层数据处理模块接收到层数据配置信息后,对最后层的层数据进行配置。
本实施例中,层数据配置信息例如包括:层数据处理模块所对应的神经网络的层。
基于以上各实施例公开的神经网络数据串行流水处理方法,层数据处理模块为多核处理模块,相应地,层内并行运算为核间并行运算。
可以理解,多个层数据处理模块也可集成到一个多核处理器中,一个层数据处理模块为该多核处理器的一个核。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (5)

1.一种面向人工智能计算的神经网络数据串行流水处理方法,其特征在于,包括:
神经网络第一层的层数据处理模块接收到初始数据后,对第一层的层数据进行层内并行运算,并串行输出运算结果;
神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对本身所属层的层数据进行层内并行运算,并串行输出运算结果;
神经网络最后层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对最后层的层数据进行层内并行运算,并串行输出运算结果;
若多次向所述神经网络输入初始数据,则所述神经网络第一层的层数据处理模块、神经网络中间层的层数据处理模块以及神经网络最后层的层数据处理模块对多次输入的初始数据进行流水处理;其中,神经网络的层数和层数据处理模块的个数相同。
2.根据权利要求1所述的方法,其特征在于,所述神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,所述方法还包括:
所述神经网络中间层的层数据处理模块判断接收到的串行数据是否满足层内并行运算的预设最低条件;若满足,则执行所述对本身所属层的层数据进行层内并行运算,并串行输出运算结果的步骤。
3.根据权利要求1所述的方法,其特征在于,所述神经网络第一层的层数据处理模块接收到初始数据后,对第一层的层数据进行层内并行运算后,所述方法还包括:
所述神经网络第一层的层数据处理模块存储运算结果;
相应地,所述神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对本身所属层的层数据进行层内并行运算后,所述方法还包括:
所述神经网络中间层的层数据处理模块存储运算结果;
相应地,所述神经网络最后层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对最后层的层数据进行层内并行运算后,所述方法还包括:
所述神经网络最后层的层数据处理模块存储运算结果。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述神经网络第一层的层数据处理模块接收到层数据配置信息后,对第一层的层数据进行配置;
所述神经网络中间层的层数据处理模块接收到层数据配置信息后,对本身所属层的层数据进行配置;
所述神经网络最后层的层数据处理模块接收到层数据配置信息后,对最后层的层数据进行配置。
5.根据权利要求1所述的方法,其特征在于,所述层内并行运算为核间并行运算。
CN201810139859.9A 2018-02-11 2018-02-11 一种面向人工智能计算的神经网络数据串行流水处理方法 Expired - Fee Related CN108446758B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810139859.9A CN108446758B (zh) 2018-02-11 2018-02-11 一种面向人工智能计算的神经网络数据串行流水处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810139859.9A CN108446758B (zh) 2018-02-11 2018-02-11 一种面向人工智能计算的神经网络数据串行流水处理方法

Publications (2)

Publication Number Publication Date
CN108446758A CN108446758A (zh) 2018-08-24
CN108446758B true CN108446758B (zh) 2021-11-30

Family

ID=63192374

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810139859.9A Expired - Fee Related CN108446758B (zh) 2018-02-11 2018-02-11 一种面向人工智能计算的神经网络数据串行流水处理方法

Country Status (1)

Country Link
CN (1) CN108446758B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110163337B (zh) * 2018-11-12 2023-01-20 腾讯科技(深圳)有限公司 基于神经网络的数据处理方法、装置、设备及存储介质
CN110490302B (zh) * 2019-08-12 2022-06-07 中科寒武纪科技股份有限公司 一种神经网络编译优化方法、装置以及相关产品
CN112418389A (zh) * 2019-08-23 2021-02-26 北京希姆计算科技有限公司 数据处理方法、装置、电子设备及计算机可读存储介质
CN112799726B (zh) * 2021-01-26 2024-01-30 上海寒武纪信息科技有限公司 数据处理装置、方法及相关产品

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105550749A (zh) * 2015-12-09 2016-05-04 四川长虹电器股份有限公司 一种新型网络拓扑结构的卷积神经网络的构造方法
CN105930598A (zh) * 2016-04-27 2016-09-07 南京大学 一种基于控制器流水架构的层次化信息处理方法及电路
CN106203621A (zh) * 2016-07-11 2016-12-07 姚颂 用于卷积神经网络计算的处理器
CN106203619A (zh) * 2015-05-29 2016-12-07 三星电子株式会社 数据优化的神经网络遍历
CN106909971A (zh) * 2017-02-10 2017-06-30 华南理工大学 一种面向多核计算环境的bp神经网络并行化方法
CN107463990A (zh) * 2016-06-02 2017-12-12 国家计算机网络与信息安全管理中心 一种卷积神经网络的fpga并行加速方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4513865B2 (ja) * 2008-01-25 2010-07-28 セイコーエプソン株式会社 並列演算装置および並列演算方法
US20100312736A1 (en) * 2009-06-05 2010-12-09 The Regents Of The University Of California Critical Branching Neural Computation Apparatus and Methods

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106203619A (zh) * 2015-05-29 2016-12-07 三星电子株式会社 数据优化的神经网络遍历
CN105550749A (zh) * 2015-12-09 2016-05-04 四川长虹电器股份有限公司 一种新型网络拓扑结构的卷积神经网络的构造方法
CN105930598A (zh) * 2016-04-27 2016-09-07 南京大学 一种基于控制器流水架构的层次化信息处理方法及电路
CN107463990A (zh) * 2016-06-02 2017-12-12 国家计算机网络与信息安全管理中心 一种卷积神经网络的fpga并行加速方法
CN106203621A (zh) * 2016-07-11 2016-12-07 姚颂 用于卷积神经网络计算的处理器
CN106909971A (zh) * 2017-02-10 2017-06-30 华南理工大学 一种面向多核计算环境的bp神经网络并行化方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
卷积神经网络的FPGA并行加速方案设计;方睿 等;《计算机工程与应用》;20141029;第32-36页 *
神经网络串行训练并行处理;张向君 等;《物探化探计算技术》;20010831;第223-226页 *

Also Published As

Publication number Publication date
CN108446758A (zh) 2018-08-24

Similar Documents

Publication Publication Date Title
CN108446758B (zh) 一种面向人工智能计算的神经网络数据串行流水处理方法
CN107169560B (zh) 一种自适应可重构的深度卷积神经网络计算方法和装置
CN107862374B (zh) 基于流水线的神经网络处理系统和处理方法
CN106445471B (zh) 处理器和用于在处理器上执行矩阵乘运算的方法
WO2017166568A1 (zh) 一种神经网络加速器及其运算方法
US20180174036A1 (en) Hardware Accelerator for Compressed LSTM
CN107797962B (zh) 基于神经网络的计算阵列
CN111406267A (zh) 使用性能预测神经网络的神经架构搜索
CN107992299B (zh) 神经网络超参数提取转换方法、系统、装置及存储介质
CN109086722A (zh) 混合车牌识别方法、装置、电子设备
CN108491924B (zh) 一种面向人工智能计算的神经网络数据串行流水处理装置
CN110458294A (zh) 模型运行方法、装置、终端及存储介质
US11977885B2 (en) Utilizing structured sparsity in systolic arrays
Sun et al. A high-performance accelerator for large-scale convolutional neural networks
CN106295670A (zh) 数据处理方法及数据处理装置
WO2024031989A1 (zh) 用于嵌入式设备深度学习推理的内存优化方法及系统
Li et al. Siphon extraction for deadlock control in flexible manufacturing systems by using Petri nets
Dinelli et al. MEM-OPT: A scheduling and data re-use system to optimize on-chip memory usage for CNNs on-board FPGAs
CN111008691B (zh) 一种权值和激活值都二值化的卷积神经网络加速器架构
CN105335375A (zh) 主题挖掘方法和装置
Zong-ling et al. The design of lightweight and multi parallel CNN accelerator based on FPGA
Dazzi et al. 5 parallel prism: A topology for pipelined implementations of convolutional neural networks using computational memory
CN111539519A (zh) 一种面向海量数据的卷积神经网络训练引擎方法及系统
Horsch et al. Flexible policy construction by information refinement
CN113196232A (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20211130