CN108564170B - 一种基于noc的可重构神经网络运算方法和电路 - Google Patents
一种基于noc的可重构神经网络运算方法和电路 Download PDFInfo
- Publication number
- CN108564170B CN108564170B CN201810384188.2A CN201810384188A CN108564170B CN 108564170 B CN108564170 B CN 108564170B CN 201810384188 A CN201810384188 A CN 201810384188A CN 108564170 B CN108564170 B CN 108564170B
- Authority
- CN
- China
- Prior art keywords
- unit
- neural network
- network
- data
- circuit
- 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
Links
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
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)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种基于NOC的可重构神经网络运算方法和电路,所述电路包括资源搜索单元、资源列表存储单元、网络配置调度单元、配置信息存储单元、网络映射存储单元、主存单元、神经网络处理电路、NOC接口处理单元、网络互联单元。通过设置NOC接口处理单元,将不同的神经网络处理电路互联起来,且NOC接口处理单元能够将不同神经网络处理电路计算得到的数据转换为相同的标准格式进行交互,不仅使得神经网络电路可以拓展任何新的处理电路,也使得各个神经网络处理电路之间的数据交换变得更加统一高效。
Description
技术领域
本发明涉及神经网络芯片电路领域,特别涉及一种基于NOC的可重构神经网络运算方法和装置。
背景技术
随着人工智能产业的兴起,深度学习芯片也在快速发展。随着深度学习应用的大面积推广使用,越来越多的设备开始支持深度学习功能。深度学习芯片作为深度学习设备的核心,作用也变得越来越重要。目前,大量的深度学习芯片都是针对某一些特点或者功能的神经网络结构,在使用时不能改变结构和连接关系,导致无法适应深度学习的快速发展和新网络结构的快速更新。此外,在现有技术中,神经网络结构的网络层次和网络层次之间的数据交互都是采用专用的数据格式进行交互,单一对多或者多对一访问时会出现数据格式不统一的问题,这在神经网络拓扑较为复杂时,需要涉及到大量的数据格式转换,将会影响数据的传输效率。
发明内容
为此,需要提供一种基于NOC的可重构神经网络运算的技术方案,用以解决目前神经网络结构不能改变结构和连接方式,导致无法适应网络结构的快速更新使用的问题,以及由于网络层之间的数据都是专有格式导致网络结构复杂时数据传输效率低下的问题。
为实现上述目的,发明人提供了一种基于NOC的可重构神经网络运算电路,所述电路包括资源搜索单元、资源列表存储单元、网络配置调度单元、配置信息存储单元、网络映射存储单元、主存单元、神经网络处理电路、NOC接口处理单元、网络互联单元;
所述神经网络处理电路包括多个神经网络子电路,每一神经网络子电路对应于一个NOC接口处理单元连接,每个NOC接口处理单元均与网络互联单元连接;
所述资源搜索单元与资源列表存储单元连接,所述网络配置调度单元分别与资源列表存储单元、配置信息存储单元、网络映射存储单元连接,所述网络配置调度单元还与所有NOC接口处理单元连接;所述主存单元与神经网络处理电路连接;
所述资源搜索单元用于搜索与网络互联单元相连接的所有神经网络子电路,并将每个神经网络子电路类型与其标识信息对应存储于资源列表存储单元中;
所述网络配置调度单元用于获取配置信息存储单元中存储的神经网络结构的参数配置信息,确定实现该神经网络类型所需的各个神经网络子电路类型以及执行本次神经网络运算的各个神经网络子电路的运算顺序,生成网络调度信息,并将网络调度信息存储于网络映射存储单元中;
所述网络配置调度单元用于根据网络调度信息的运算顺序,控制神经网络处理子电路依次从主存单元中读取待测数据、对待测数据进行处理计算、将计算结果回写至主存单元中;所述NOC接口处理单元用于将神经网络子电路获取或计算得到的数据打包成预设格式后发送至网络互联单元,或者用于监听网络互联单元中发送给其对应的神经网络子电路的网络数据包,获取网络数据包并解析后发送给对应的神经网络子电路。
进一步地,所述NOC接口处理单元包括数据打包单元、发送包缓存单元、监听单元、接收包缓存单元、数据解包单元;所述数据打包单元和数据解包单元分别与神经网络处理电路连接,所述发送包缓存单元和监听单元分别与网络互联单元连接,所述接收包缓存单元分别与数据解包单元、监听单元连接;所述数据打包单元与发送包缓存单元连接;
所述监听单元用于监听网络互联单元中发送给当前NOC接口处理单元对应的神经网络子电路的预设格式的网络数据包,并将其存储于接收包缓存单元中;所述数据解包单元用于对接收包缓存单元中的网络数据包进行解析,并将解析后的数据包发送给对应的神经网络子电路;
所述数据打包单元用于接收当前NOC接口处理单元对应的神经网络子电路发送的运算后的数据,并将运算后的数据打包为预设格式的网络数据包存储于发送包缓存单元中;以及在接收到发送指令后,将发送包缓存单元中的预设格式的网络数据包发送至网络互联单元。
进一步地,所述神经网络子电路包括数据输入单元、乘加器阵列单元、激活函数运算单元、池化运算单元和反向回写单元;所述数据输入单元与主存单元连接,所述反向回写单元与主存单元连接;
执行本次神经网络运算的各个神经网络子电路的运算顺序依次为:数据输入单元、乘加器阵列单元、激活函数运算单元、池化运算单元、反向回写单元。
进一步地,每个神经网络子电路类型对应有多个神经网络子电路,执行本次神经网络运算的神经网络子电路根据参数配置信息确定。
发明人还提供了一种基于NOC的可重构神经网络运算方法,所述方法应用于基于NOC的可重构神经网络运算电路,所述电路包括资源搜索单元、资源列表存储单元、网络配置调度单元、配置信息存储单元、网络映射存储单元、主存单元、神经网络处理电路、NOC接口处理单元、网络互联单元;
所述神经网络处理电路包括多个神经网络子电路,每一神经网络子电路对应于一个NOC接口处理单元连接,每个NOC接口处理单元均与网络互联单元连接;
所述资源搜索单元与资源列表存储单元连接,所述网络配置调度单元分别与资源列表存储单元、配置信息存储单元、网络映射存储单元连接,所述网络配置调度单元还与所有NOC接口处理单元连接;所述主存单元与神经网络处理电路连接;
所述方法包括以下步骤:
资源搜索单元搜索与网络互联单元相连接的所有神经网络子电路,并将每个神经网络子电路类型与其标识信息对应存储于资源列表存储单元中;
网络配置调度单元获取配置信息存储单元中存储的神经网络结构的参数配置信息,确定实现该神经网络类型所需的各个神经网络子电路类型以及执行本次神经网络运算的各个神经网络子电路的运算顺序,生成网络调度信息,并将网络调度信息存储于网络映射存储单元中;
网络配置调度单元根据网络调度信息的运算顺序,控制神经网络处理子电路依次从主存单元中读取待测数据、对待测数据进行处理计算、将计算结果回写至主存单元中;
NOC接口处理单元将神经网络子电路获取或计算得到的数据打包成预设格式后发送至网络互联单元,或者
监听网络互联单元中发送给其对应的神经网络子电路的网络数据包,获取网络数据包并解析后发送给对应的神经网络子电路。
进一步地,所述NOC接口处理单元包括数据打包单元、发送包缓存单元、监听单元、接收包缓存单元、数据解包单元;所述数据打包单元和数据解包单元分别与神经网络处理电路连接,所述发送包缓存单元和监听单元分别与网络互联单元连接,所述接收包缓存单元分别与数据解包单元、监听单元连接;所述数据打包单元与发送包缓存单元连接;
所述方法包括:
监听单元监听网络互联单元中发送给当前NOC接口处理单元对应的神经网络子电路的预设格式的网络数据包,并将其存储于接收包缓存单元中;
数据解包单元对接收包缓存单元中的网络数据包进行解析,并将解析后的数据包发送给对应的神经网络子电路;
数据打包单元接收当前NOC接口处理单元对应的神经网络子电路发送的运算后的数据,并将运算后的数据打包为预设格式的网络数据包存储于发送包缓存单元中;以及在接收到发送指令后,将发送包缓存单元中的预设格式的网络数据包发送至网络互联单元。
进一步地,所述神经网络子电路包括数据输入单元、乘加器阵列单元、激活函数运算单元、池化运算单元和反向回写单元;所述数据输入单元与主存单元连接,所述反向回写单元与主存单元连接;
执行本次神经网络运算的各个神经网络子电路的运算顺序依次为:数据输入单元、乘加器阵列单元、激活函数运算单元、池化运算单元、反向回写单元。
进一步地,每个神经网络子电路类型对应有多个神经网络子电路,执行本次神经网络运算的神经网络子电路根据参数配置信息确定。
区别于现有技术,上述技术方案所述的基于NOC的可重构神经网络运算方法和电路,所述电路包括资源搜索单元、资源列表存储单元、网络配置调度单元、配置信息存储单元、网络映射存储单元、主存单元、神经网络处理电路、NOC接口处理单元、网络互联单元。通过设置NOC接口处理单元,将不同的神经网络处理电路互联起来,且NOC接口处理单元能够将不同神经网络处理电路计算得到的数据转换为相同的标准格式进行交互,不仅使得神经网络电路可以拓展任何新的处理电路,也使得各个神经网络处理电路之间的数据交换变得更加统一高效。
附图说明
图1为本发明一实施例涉及的基于NOC的可重构神经网络运算电路的示意图;
图2为本发明一实施例涉及的NOC接口处理单元的结构示意图;
图3为本发明一实施例涉及的基于NOC的可重构神经网络运算方法的示流程图;
附图标记说明:
101、资源搜索单元;
102、资源列表存储单元;
103、网络配置调度单元;
104、配置信息存储单元;
105、网络映射存储单元;
106、主存单元;
107、神经网络处理电路;
108、NOC接口处理单元;111、数据解包单元;112、接收包缓存单元;113、监听单元;114、数据打包单元;115、发送包缓存单元;
109、网络互联单元。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
请参阅图1,为本发明一实施例涉及的基于NOC的可重构神经网络运算电路的示意图。所述电路包括资源搜索单元101、资源列表存储单元102、网络配置调度单元103、配置信息存储单元104、网络映射存储单元105、主存单元106、神经网络处理电路、NOC接口处理单元108、网络互联单元;
所述神经网络处理电路包括多个神经网络子电路,每一神经网络子电路对应于一个NOC接口处理单元连接,每个NOC接口处理单元均与网络互联单元连接。
在本实施方式中,所述神经网络子电路107包括数据输入单元、乘加器阵列单元、激活函数运算单元、池化运算单元和反向回写单元;所述数据输入单元与主存单元连接,所述反向回写单元与主存单元连接。
数据输入单元用于从主存单元中读取特征数据和卷积核数据,并将其送往乘加器阵列单元进行卷积运算;乘加器阵列单元将卷积运算得到的运算结果送往激活函数运算单元进行激活运算,池化运算单元对激活运算得到的数据进行池化处理。反向回写单元将池化处理后的数据回写至主存单元中,并将回写的数据作为下一神经网络子层的特征数据进行读取(这一操作通过下一神经网络子层对应的数据输入单元来完成)。乘加器阵列单元包括多个乘加器,每一乘加器对应进行一个乘加运算。
卷积运算过程为神经网络运算领域常用的算法,相关原理可以参考以下链接:
https://www.cnblogs.com/nsnow/p/4562308.html
https://blog.csdn.net/nicajonh/article/details/53142449?locationNum= 2&fps=1。
激活运算,也是神经网络运算领域一个常见的运算,简单的说,其是通过一个激活阈值对卷积运算后的卷积特征数据进行激活,从而得到一个大多数位置数值为0的矩阵来尝试表达特征数据,关于激活函数运算的相关原理可以参考以下链接:
https://blog.csdn.net/huahuazhu/article/details/74188288
https://blog.csdn.net/shuzfan/article/details/71125457。
池化运算,也是神经网络运算领域一个常见的运算,关于池化运算的相关原理可以参考以下链接:
https://blog.csdn.net/qq_18343569/article/details/49823091
https://blog.csdn.net/qq_16234613/article/details/79520929。
所述资源搜索单元与资源列表存储单元连接,所述网络配置调度单元分别与资源列表存储单元、配置信息存储单元、网络映射存储单元连接,所述网络配置调度单元还与所有NOC接口处理单元连接;所述主存单元与神经网络处理电路连接;
所述资源搜索单元101用于搜索与网络互联单元相连接的所有神经网络子电路,并将每个神经网络子电路类型与其标识信息对应存储于资源列表存储单元102中。例如类型为激活函数的神经网络子电路包括Sigmoid激活函数电路、ReLU激活函数电路,这两电路对应的标识信息为1和2,这资源列表存储单元中会将“电路1-Sigmoid激活函数电路”、“电路2-ReLU激活函数电路”对应存储,以便后续调用处理。
所述网络配置调度单元103用于获取配置信息存储单元104中存储的神经网络结构的参数配置信息,确定实现该神经网络类型所需的各个神经网络子电路类型以及执行本次神经网络运算的各个神经网络子电路的运算顺序,生成网络调度信息,并将网络调度信息存储于网络映射存储单元105中。
在本实施方式中,每个神经网络子电路类型对应有多个神经网络子电路,执行本次神经网络运算的神经网络子电路根据参数配置信息确定。神经网络结构的参数配置信息基于任务请求决定,任务请求不同,神经网络结构也不尽相同。任务请求包括人脸识别、图像识别、指纹识别、文字识别、语音识别等等。对于同一任务请求而言,根据不同的精度要求,配置的神经网络结构的参数配置信息也可以不同,例如人脸识别算法A要求的乘加器阵列单元的精度为8bit,人脸识别算法B要求的乘加器阵列单元的精度为16bit。参数配置信息包括当前神经网络结构的层数(即神经网络子层的数量)、各层神经网络子层的神经元数量、卷积核值、权值、激活函数类型、乘加器精度、池化运算单元类型等等。简言之,参数配置信息表征的是如何构建某一神经网络结构的物理量,网络配置调度单元获取到参数配置信息后,就可以根据参数配置信息对各个参数元素(神经元、激活函数、乘加器等)进行调度,以组成所需的神经网络结构。
在本实施方式中,执行本次神经网络运算的各个神经网络子电路的运算顺序依次为:数据输入单元、乘加器阵列单元、激活函数运算单元、池化运算单元、反向回写单元。例如某一神经网络结构所需的神经网络子电路根据运算顺序依次为:数据输入单元、16bit乘加器阵列单元、Sigmoid激活函数电路、平均池化运算单元、反向回写单元,假设这几个神经网络子电路对应的ID编号依次为5、3、1、2、4,那么运算顺序为5-3-1-2-4,这一运算顺序将以网络调度信息的方式进行存储,并向所有神经网络子电路进行广播,以便上述神经网络子电路能够获取到网络调度信息。
所述网络配置调度单元103用于根据网络调度信息的运算顺序,控制神经网络处理子电路依次从主存单元中读取待测数据、对待测数据进行处理计算、将计算结果回写至主存单元106中;
为了保证各个神经网络子电路传输的数据格式统一,提高数据传输效率,本实施方式中,每一个神经网络子电路都对应连接一个NOC接口处理单元,并通过NOC接口处理单元与网络互联单元连接。所述NOC接口处理单元用于将神经网络子电路获取或计算得到的数据打包成预设格式后发送至网络互联单元,或者用于监听网络互联单元中发送给其对应的神经网络子电路的网络数据包,获取网络数据包并解析后发送给对应的神经网络子电路。
如图2所示,所述NOC接口处理单元108包括数据打包单元114、发送包缓存单元115、监听单元113、接收包缓存单元112、数据解包单元111;所述数据打包单元114和数据解包单元分别与神经网络处理电路107连接,所述发送包缓存单元115和监听单元分113别与网络互联单元109连接,所述接收包缓存单元112分别与数据解包单元111、监听单元113连接;所述数据打包单元114与发送包缓存单元115连接;
所述监听单元113用于监听网络互联单元109中发送给当前NOC接口处理单元108对应的神经网络子电路的预设格式的网络数据包,并将其存储于接收包缓存单元112中;所述数据解包单元111用于对接收包缓存单元112中的网络数据包进行解析,并将解析后的数据包发送给对应的神经网络子电路;
所述数据打包单元114用于接收当前NOC接口处理单元对应的神经网络子电路发送的运算后的数据,并将运算后的数据打包为预设格式的网络数据包存储于发送包缓存单元115中;以及在接收到发送指令后,将发送包缓存单元115中的预设格式的网络数据包发送至网络互联单元109。
以前文提到的某一神经网络结构为例,其所需的神经网络子电路根据运算顺序依次为:数据输入单元、16bit乘加器阵列单元、Sigmoid激活函数电路、平均池化运算单元、反向回写单元,假设这几个神经网络子电路对应的ID编号依次为5、3、1、2、4。也就是说,参数配置信息中包含了某一个神经网络结构所需的子电路(包括具体类型、精度),网络调度信息中包含了所需的神经网络子电路对应到资源列表中记载的神经网络子电路的标识信息,以及各个神经网络子电路之间的运算顺序。
例如以乘加器阵列单元为例,资源列表中记载了电路中包含着8bit精度乘加器阵列单元、16bit乘加器阵列单元、32bit乘加器阵列单元,三者对应的编号为11、12、13,则资源列表中记载的信息如下:“电路11-8bit精度乘加器阵列单元”、“电路12-16bit乘加器阵列单元”、“电路13-32bit乘加器阵列单元”。配置信息存储单元中存储的是某一神经网络结构的参数配置信息,例如“16bit乘加器阵列单元、ReLU激活函数”等,网络映射存储单元中存储的是所需的神经网络结构映射到资源列表后,神经网络子电路标识之间的对应关系。假设ReLU激活函数在资源列表中的ID为15,则网络映射存储单元中记载了如下内容:“电路12-电路15”。
在实际应用过程中,网络配置调度单元103读取网络映射存储单元105中存储的该神经网络需要用到的处理电路进行调度控制。具体过程如下:
步骤1:网络配置调度单元控制单元编号为5的数据输入单元对主存单元进行神经元输入数据读取,并将读取的神经元输入数据经过NOC接口处理单元(简称“NOC单元”)变为单元5的标准的网络数据包格式送入NOC网络。所述神经元输入数据包括进行卷积运算的特征数据以及卷积核数据。
步骤2:网络配置调度单元103继续控制单元编号为3的16bit乘加阵列单元到网络上查找编号为5的NOC单元进行数据读取,并在读取后完成乘加运算,再将运算结果送往NOC接口处理单元变为单元3的标准的网络数据包格式送入NOC网络。具体是通过控制16bit乘加阵列单元对应的NOC接口处理单元中的监听单元对网络互联单元中的网络包数据进行监听,由于16bit乘加阵列单元对应的NOC接口处理单元事先接收到了网络配置调度单元广播的网络调度信息,因而其知道各个神经网络子电路之间的运算顺序,即知道自身需要读取的是数据输入单元发送的网络数据包。
步骤3:网络配置调度单元103继续控制单元编号为1的sigmoid激活函数单元到网络上查找编号为3的NOC单元进行数据读取,读取后完成sigmoid激活函数运算,再将运算结果送往NOC接口处理单元变为单元1的标准的网络数据包格式送入NOC网络.
步骤4:网络配置调度单元103继续控制单元编号为2的最大池化运算单元(假设该神经网络结构对应的池化运算函数为最大池化运算单元)到网络上查找编号为1的NOC单元进行数据读取,读取后完成最大池化运算,再将运算结果送往NOC接口处理单元变为单元2的标准的网络数据包格式送入NOC网络。
步骤5:网络配置调度单元继续控制单元编号为4的反向回写单元到网络上查找编号为2的NOC单元进行数据读取,读取后将数据通过NOC单元4回写至主存单元。
步骤1至5不是串行完成,而是实时的并行处理,当后一级处理单元需要数据而前一级还没处理完成时,通过网络握手机制让后一级处理进行等待,网络映射存储单元中未记录的神经网络子电路不参与本次神经网络计算。
简言之,对于各个神经网络子电路需要的上一级数据可以并行实时进行监听,当上一级神经网络子电路还没运算完成,则通过网络握手机制等待。例如本次采用的池化运算单元为平均池化单元,采用的激活函数运算单元为sigmoid激活函数单元,sigmoid激活函数单元为平均池化单元的上一级神经网络子电路,平均池化单元对应的NOC单元中的监听单元对应监听sigmoid激活函数单元的发送包数据,如果未监测到则等待sigmoid激活函数单元运算完成后再进行获取。
如图1所示,在某些实施例中,基于NOC的可重构神经网络运算电路可以通过预留的空出的网络互联单元,十分方便地接入新的运算单元(即神经网络子电路)以适应不断发展的新神经网络结构和运算种类。当神经网络停止止工作时,通过预留的空的互联单元接入新的运算单元,然后重新更新可配置资源列表存储单元,将新加入的资源加入列表,这样在重新做网络资源映射时,网络调度信息就可以加入新的单元。
请参阅图3,本发明提供了一种基于NOC的可重构神经网络运算方法,所述方法应用于基于NOC的可重构神经网络运算电路,所述电路包括资源搜索单元、资源列表存储单元、网络配置调度单元、配置信息存储单元、网络映射存储单元、主存单元、神经网络处理电路、NOC接口处理单元、网络互联单元;
所述神经网络处理电路包括多个神经网络子电路,每一神经网络子电路对应于一个NOC接口处理单元连接,每个NOC接口处理单元均与网络互联单元连接;
所述资源搜索单元与资源列表存储单元连接,所述网络配置调度单元分别与资源列表存储单元、配置信息存储单元、网络映射存储单元连接,所述网络配置调度单元还与所有NOC接口处理单元连接;所述主存单元与神经网络处理电路连接;
所述方法包括以下步骤:
首先进入步骤S301资源搜索单元搜索与网络互联单元相连接的所有神经网络子电路,并将每个神经网络子电路类型与其标识信息对应存储于资源列表存储单元中;
而后进入步骤S302网络配置调度单元获取配置信息存储单元中存储的神经网络结构的参数配置信息,确定实现该神经网络类型所需的各个神经网络子电路类型以及执行本次神经网络运算的各个神经网络子电路的运算顺序,生成网络调度信息,并将网络调度信息存储于网络映射存储单元中;
而后进入步骤S303网络配置调度单元根据网络调度信息的运算顺序,控制神经网络处理子电路依次从主存单元中读取待测数据、对待测数据进行处理计算、将计算结果回写至主存单元中;
而后进入步骤S304NOC接口处理单元将神经网络子电路获取或计算得到的数据打包成预设格式后发送至网络互联单元,或者监听网络互联单元中发送给其对应的神经网络子电路的网络数据包,获取网络数据包并解析后发送给对应的神经网络子电路。
在某些实施例中,所述NOC接口处理单元包括数据打包单元、发送包缓存单元、监听单元、接收包缓存单元、数据解包单元;所述数据打包单元和数据解包单元分别与神经网络处理电路连接,所述发送包缓存单元和监听单元分别与网络互联单元连接,所述接收包缓存单元分别与数据解包单元、监听单元连接;所述数据打包单元与发送包缓存单元连接;
所述方法包括:
监听单元监听网络互联单元中发送给当前NOC接口处理单元对应的神经网络子电路的预设格式的网络数据包,并将其存储于接收包缓存单元中;
数据解包单元对接收包缓存单元中的网络数据包进行解析,并将解析后的数据包发送给对应的神经网络子电路;
数据打包单元接收当前NOC接口处理单元对应的神经网络子电路发送的运算后的数据,并将运算后的数据打包为预设格式的网络数据包存储于发送包缓存单元中;以及在接收到发送指令后,将发送包缓存单元中的预设格式的网络数据包发送至网络互联单元。
在某些实施例中,所述神经网络子电路包括数据输入单元、乘加器阵列单元、激活函数运算单元、池化运算单元和反向回写单元;所述数据输入单元与主存单元连接,所述反向回写单元与主存单元连接;
执行本次神经网络运算的各个神经网络子电路的运算顺序依次为:数据输入单元、乘加器阵列单元、激活函数运算单元、池化运算单元、反向回写单元。
在某些实施例中,每个神经网络子电路类型对应有多个神经网络子电路,执行本次神经网络运算的神经网络子电路根据参数配置信息确定。
上述技术方案所述的基于NOC的可重构神经网络运算方法和电路,所述电路包括资源搜索单元、资源列表存储单元、网络配置调度单元、配置信息存储单元、网络映射存储单元、主存单元、神经网络处理电路、NOC接口处理单元、网络互联单元。通过设置NOC接口处理单元,将不同的神经网络处理电路互联起来,且NOC接口处理单元能够将不同神经网络处理电路计算得到的数据转换为相同的标准格式进行交互,不仅使得神经网络电路可以拓展任何新的处理电路,也使得各个神经网络处理电路之间的数据交换变得更加统一高效。
需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。
Claims (8)
1.一种基于NOC的可重构神经网络运算电路,其特征在于,所述电路包括资源搜索单元、资源列表存储单元、网络配置调度单元、配置信息存储单元、网络映射存储单元、主存单元、神经网络处理电路、NOC接口处理单元、网络互联单元;
所述神经网络处理电路包括多个神经网络子电路,每一神经网络子电路对应于一个NOC接口处理单元连接,每个NOC接口处理单元均与网络互联单元连接;
所述资源搜索单元与资源列表存储单元连接,所述网络配置调度单元分别与资源列表存储单元、配置信息存储单元、网络映射存储单元连接,所述网络配置调度单元还与所有NOC接口处理单元连接;所述主存单元与神经网络处理电路连接;
所述资源搜索单元用于搜索与网络互联单元相连接的所有神经网络子电路,并将每个神经网络子电路类型与其标识信息对应存储于资源列表存储单元中;
所述网络配置调度单元用于获取配置信息存储单元中存储的神经网络结构的参数配置信息,确定实现该神经网络类型所需的各个神经网络子电路类型以及执行本次神经网络运算的各个神经网络子电路的运算顺序,生成网络调度信息,并将网络调度信息存储于网络映射存储单元中;
所述网络配置调度单元用于根据网络调度信息的运算顺序,控制神经网络处理子电路依次从主存单元中读取待测数据、对待测数据进行处理计算、将计算结果回写至主存单元中;所述NOC接口处理单元用于将神经网络子电路获取或计算得到的数据打包成预设格式后发送至网络互联单元,或者用于监听网络互联单元中发送给其对应的神经网络子电路的网络数据包,获取网络数据包并解析后发送给对应的神经网络子电路。
2.如权利要求1所述的基于NOC的可重构神经网络运算电路,其特征在于,所述NOC接口处理单元包括数据打包单元、发送包缓存单元、监听单元、接收包缓存单元、数据解包单元;所述数据打包单元和数据解包单元分别与神经网络处理电路连接,所述发送包缓存单元和监听单元分别与网络互联单元连接,所述接收包缓存单元分别与数据解包单元、监听单元连接;所述数据打包单元与发送包缓存单元连接;
所述监听单元用于监听网络互联单元中发送给当前NOC接口处理单元对应的神经网络子电路的预设格式的网络数据包,并将其存储于接收包缓存单元中;所述数据解包单元用于对接收包缓存单元中的网络数据包进行解析,并将解析后的数据包发送给对应的神经网络子电路;
所述数据打包单元用于接收当前NOC接口处理单元对应的神经网络子电路发送的运算后的数据,并将运算后的数据打包为预设格式的网络数据包存储于发送包缓存单元中;以及在接收到发送指令后,将发送包缓存单元中的预设格式的网络数据包发送至网络互联单元。
3.如权利要求1所述的基于NOC的可重构神经网络运算电路,其特征在于,所述神经网络子电路包括数据输入单元、乘加器阵列单元、激活函数运算单元、池化运算单元和反向回写单元;所述数据输入单元与主存单元连接,所述反向回写单元与主存单元连接;
执行本次神经网络运算的各个神经网络子电路的运算顺序依次为:数据输入单元、乘加器阵列单元、激活函数运算单元、池化运算单元、反向回写单元。
4.如权利要求1或3所述的基于NOC的可重构神经网络运算电路,其特征在于,每个神经网络子电路类型对应有多个神经网络子电路,执行本次神经网络运算的神经网络子电路根据参数配置信息确定。
5.一种基于NOC的可重构神经网络运算方法,其特征在于,所述方法应用于基于NOC的可重构神经网络运算电路,所述电路包括资源搜索单元、资源列表存储单元、网络配置调度单元、配置信息存储单元、网络映射存储单元、主存单元、神经网络处理电路、NOC接口处理单元、网络互联单元;
所述神经网络处理电路包括多个神经网络子电路,每一神经网络子电路对应于一个NOC接口处理单元连接,每个NOC接口处理单元均与网络互联单元连接;
所述资源搜索单元与资源列表存储单元连接,所述网络配置调度单元分别与资源列表存储单元、配置信息存储单元、网络映射存储单元连接,所述网络配置调度单元还与所有NOC接口处理单元连接;所述主存单元与神经网络处理电路连接;
所述方法包括以下步骤:
资源搜索单元搜索与网络互联单元相连接的所有神经网络子电路,并将每个神经网络子电路类型与其标识信息对应存储于资源列表存储单元中;
网络配置调度单元获取配置信息存储单元中存储的神经网络结构的参数配置信息,确定实现该神经网络类型所需的各个神经网络子电路类型以及执行本次神经网络运算的各个神经网络子电路的运算顺序,生成网络调度信息,并将网络调度信息存储于网络映射存储单元中;
网络配置调度单元根据网络调度信息的运算顺序,控制神经网络处理子电路依次从主存单元中读取待测数据、对待测数据进行处理计算、将计算结果回写至主存单元中;
NOC接口处理单元将神经网络子电路获取或计算得到的数据打包成预设格式后发送至网络互联单元,或者
监听网络互联单元中发送给其对应的神经网络子电路的网络数据包,获取网络数据包并解析后发送给对应的神经网络子电路。
6.如权利要求5所述的基于NOC的可重构神经网络运算方法,其特征在于,所述NOC接口处理单元包括数据打包单元、发送包缓存单元、监听单元、接收包缓存单元、数据解包单元;所述数据打包单元和数据解包单元分别与神经网络处理电路连接,所述发送包缓存单元和监听单元分别与网络互联单元连接,所述接收包缓存单元分别与数据解包单元、监听单元连接;所述数据打包单元与发送包缓存单元连接;
所述方法包括:
监听单元监听网络互联单元中发送给当前NOC接口处理单元对应的神经网络子电路的预设格式的网络数据包,并将其存储于接收包缓存单元中;
数据解包单元对接收包缓存单元中的网络数据包进行解析,并将解析后的数据包发送给对应的神经网络子电路;
数据打包单元接收当前NOC接口处理单元对应的神经网络子电路发送的运算后的数据,并将运算后的数据打包为预设格式的网络数据包存储于发送包缓存单元中;以及在接收到发送指令后,将发送包缓存单元中的预设格式的网络数据包发送至网络互联单元。
7.如权利要求5所述的基于NOC的可重构神经网络运算方法,其特征在于,所述神经网络子电路包括数据输入单元、乘加器阵列单元、激活函数运算单元、池化运算单元和反向回写单元;所述数据输入单元与主存单元连接,所述反向回写单元与主存单元连接;
执行本次神经网络运算的各个神经网络子电路的运算顺序依次为:数据输入单元、乘加器阵列单元、激活函数运算单元、池化运算单元、反向回写单元。
8.如权利要求5或7所述的基于NOC的可重构神经网络运算方法,其特征在于,每个神经网络子电路类型对应有多个神经网络子电路,执行本次神经网络运算的神经网络子电路根据参数配置信息确定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810384188.2A CN108564170B (zh) | 2018-04-26 | 2018-04-26 | 一种基于noc的可重构神经网络运算方法和电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810384188.2A CN108564170B (zh) | 2018-04-26 | 2018-04-26 | 一种基于noc的可重构神经网络运算方法和电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108564170A CN108564170A (zh) | 2018-09-21 |
CN108564170B true CN108564170B (zh) | 2020-06-19 |
Family
ID=63536833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810384188.2A Active CN108564170B (zh) | 2018-04-26 | 2018-04-26 | 一种基于noc的可重构神经网络运算方法和电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108564170B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111210005B (zh) * | 2019-12-31 | 2023-07-18 | Oppo广东移动通信有限公司 | 设备运行方法、装置、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110037184A (ko) * | 2009-10-06 | 2011-04-13 | 한국과학기술원 | 뉴로-퍼지 시스템과 병렬처리 프로세서가 결합된, 파이프라이닝 컴퓨터 시스템, 이를 이용하여 영상에서 물체를 인식하는 방법 및 장치 |
CN103970939A (zh) * | 2014-04-22 | 2014-08-06 | 南京航空航天大学 | 一种层次化可重构的片上网络建模与仿真*** |
CN106940815A (zh) * | 2017-02-13 | 2017-07-11 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
CN107800700A (zh) * | 2017-10-27 | 2018-03-13 | 中国科学院计算技术研究所 | 一种路由器和片上网络传输***及方法 |
CN109302357A (zh) * | 2018-08-03 | 2019-02-01 | 西安交通大学 | 一种面向深度学习可重构处理器的片上互联结构 |
-
2018
- 2018-04-26 CN CN201810384188.2A patent/CN108564170B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110037184A (ko) * | 2009-10-06 | 2011-04-13 | 한국과학기술원 | 뉴로-퍼지 시스템과 병렬처리 프로세서가 결합된, 파이프라이닝 컴퓨터 시스템, 이를 이용하여 영상에서 물체를 인식하는 방법 및 장치 |
CN103970939A (zh) * | 2014-04-22 | 2014-08-06 | 南京航空航天大学 | 一种层次化可重构的片上网络建模与仿真*** |
CN106940815A (zh) * | 2017-02-13 | 2017-07-11 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
CN107800700A (zh) * | 2017-10-27 | 2018-03-13 | 中国科学院计算技术研究所 | 一种路由器和片上网络传输***及方法 |
CN109302357A (zh) * | 2018-08-03 | 2019-02-01 | 西安交通大学 | 一种面向深度学习可重构处理器的片上互联结构 |
Non-Patent Citations (2)
Title |
---|
High Performance and Low Latency Mapping for Neural Network into Network on Chip Architecture;Yiping Dong等;《IEEE 8th International Conference on ASIC》;20091231;第891页右列第3段至第893页左列第2段以及图1、图3和图4 * |
片上网络若干关键技术的研究;刘招山;《中国优秀硕士学位论文全文数据库 信息科技辑(月刊)无线电电子学》;20140815(第08期);第2-3页第1.1.2节、第26页第2.5.1节以及图1.3、图2.8和图2.9 * |
Also Published As
Publication number | Publication date |
---|---|
CN108564170A (zh) | 2018-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102542580B1 (ko) | Dnn을 사용하여 ssd의 성능을 최적화하기 위한 시스템 및 방법 | |
CN109104876B (zh) | 一种运算装置及相关产品 | |
CN110582785B (zh) | 配置用于执行层描述符列表的具有功率效率的深度神经网络模块 | |
EP3407182B1 (en) | Vector computing device | |
JP7012689B2 (ja) | コマンド実行方法及び装置 | |
CN111984400B (zh) | 神经网络的内存分配方法及装置 | |
JP6975095B2 (ja) | マシンラーニングを実行するデータストレージ及び処理システムとその動作方法 | |
CN111966361B (zh) | 用于确定待部署模型的方法、装置、设备及其存储介质 | |
CN115880132A (zh) | 图形处理器、矩阵乘法任务处理方法、装置及存储介质 | |
CN110647981B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN108564170B (zh) | 一种基于noc的可重构神经网络运算方法和电路 | |
US20120011490A1 (en) | Development system | |
CN114662646A (zh) | 实现神经网络的方法和装置 | |
CN110458285B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN110555522B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN111260070B (zh) | 运算方法、装置及相关产品 | |
CN111260046B (zh) | 运算方法、装置及相关产品 | |
WO2021212045A1 (en) | Synchronization of processing elements and software managed memory hierarchy in a machine learning accelerator | |
CN111258641B (zh) | 运算方法、装置及相关产品 | |
CN112766475A (zh) | 处理部件及人工智能处理器 | |
CN111309382A (zh) | 基于神经网络的指令推送方法、***、设备及存储介质 | |
CN112394985B (zh) | 执行方法、装置及相关产品 | |
CN114327399B (zh) | 分布式训练方法、装置、计算机设备、存储介质和产品 | |
CN111339060B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111079914B (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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: 350003 building, No. 89, software Avenue, Gulou District, Fujian, Fuzhou 18, China Patentee after: Ruixin Microelectronics Co., Ltd Address before: 350003 building, No. 89, software Avenue, Gulou District, Fujian, Fuzhou 18, China Patentee before: Fuzhou Rockchips Electronics Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |