CN108288090B - 一种并行竞争神经网络芯片的优化方法和装置 - Google Patents

一种并行竞争神经网络芯片的优化方法和装置 Download PDF

Info

Publication number
CN108288090B
CN108288090B CN201810015066.6A CN201810015066A CN108288090B CN 108288090 B CN108288090 B CN 108288090B CN 201810015066 A CN201810015066 A CN 201810015066A CN 108288090 B CN108288090 B CN 108288090B
Authority
CN
China
Prior art keywords
neural network
unit
main control
control unit
training
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
CN201810015066.6A
Other languages
English (en)
Other versions
CN108288090A (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.)
Rockchip Electronics Co Ltd
Original Assignee
Fuzhou Rockchip Electronics 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 Fuzhou Rockchip Electronics Co Ltd filed Critical Fuzhou Rockchip Electronics Co Ltd
Priority to CN201810015066.6A priority Critical patent/CN108288090B/zh
Publication of CN108288090A publication Critical patent/CN108288090A/zh
Application granted granted Critical
Publication of CN108288090B publication Critical patent/CN108288090B/zh
Active 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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种并行竞争神经网络芯片的优化方法和装置,所述装置包括缓存单元、多个可重构网络矩阵单元、取数单元、主控单元。所述方法包括以下步骤:可重构网络矩阵单元根据主控单元发送的初始参数配置信息,获取缓存单元中的各个参数元素,构建出相应的神经网络单元;神经网络单元进行神经网络训练,主控单元根据神经网络单元的训练结果不断地淘汰训练结果最差的神经网络单元,并将淘汰的神经网络的电路资源(即参数元素)重新分配给未淘汰的神经网络,直至剩余的神经网络单元数量不大于预设数量值,剩余的神经网络单元具有最优的电路资源,可以高效地进行神经网络计算,提高识别效率。

Description

一种并行竞争神经网络芯片的优化方法和装置
技术领域
本发明涉及电子设备领域,尤其涉及一种并行竞争神经网络芯片的优化方法和装置。
背景技术
随着人工智能深度学习神经网络的快速发展,人们对人工智能应用的需求越来越强烈,如进行智能语音识别对话、智能人脸识别等,基于神经网络的识别算法是其中重要一项。由于深度学习神经网络计算较为复杂,导致其对硬件电路资源的消耗较大,而对于大多数终端用户设备(例如移动手持设备)而言,很难实现允许容纳多个复杂的神经网络训练电路。因此,当前深度学习神经网络训练的一大矛盾就是有限的电路资源和复杂神经网络算法对硬件电路的极大要求之间的矛盾。如果能找到缓和或者解决该矛盾的方法,在人工智能应用领域将是非常有意义的。
发明内容
为此,需要提供一种并行竞争神经网络芯片的优化的技术方案,用以解决目前终端设备的硬件资源无法适配多个神经网络训练电路的问题。
为实现上述目的,发明人提供一种并行竞争神经网络芯片的优化装置,所述装置包括缓存单元、多个可重构网络矩阵单元、取数单元、主控单元;每个可重构网络矩阵单元均与取数单元连接,取数单元与缓存单元连接;主控单元与各个可重构网络矩阵单元连接;所述缓存单元用于存储参数元素;
所述主控单元用于配置各个神经网络单元对应的初始参数配置信息,所述初始参数配置信息包括神经网络单元所需的各个参数元素最小数量;
所述取数单元用于根据初始参数配置信息从缓存单元中获取相应数量的参数元素,所述可重构网络矩阵单元用于根据各个参数元素构建出相应的神经网络单元;
所述主控单元还用于配置参数优化信息,并根据均分规则将缓存单元中剩余的参数元素平均配置至各个神经网络单元;
所述神经网络单元用于接收主控单元发送的测试数据,进行神经网络训练,并将神经网络训练的结果发送至主控单元;所述主控单元用于根据各个神经网络单元的训练结果,确定当前训练结果最差的神经网络单元,并对该神经网络单元进行拆分,将拆分得到的参数元素存储至缓存单元中,以及用于根据均分规则将当前缓存单元中的所有参数元素重新配置至剩余的神经网络单元中;
所述神经网络单元还用于再次接收主控单元发送的测试数据,进行神经网络训练,并将再次神经网络训练的结果发送至主控单元;所述主控单元用于根据各个神经网络单元的再次得到的训练结果,确定当前训练结果最差的神经网络单元,并对该神经网络单元进行拆分,将拆分得到的参数元素存储至缓存单元中,以及用于根据均分规则将当前缓存单元中的所有参数元素重新配置至剩余的神经网络单元中;重复上述步骤,直至剩余的神经网络单元数量不大于预设数量值。
进一步地,主控单元用于根据各个神经网络单元的训练结果,确定训练结果最差的神经网络单元包括:
主控单元用于在各个神经网络单元的识别率均达到预设识别率后,将识别率最低的神经网络单元确定为训练结果最差的神经网络单元;所述识别率为神经网络单元对测试数据的计算结果与真实信息之间的匹配程度,每一测试数据对应一真实信息。
进一步地,所述主控单元用于在至少存在一个神经网络单元的识别率达不到预设识别率时,判断各个神经网络单元的训练次数是否均达到预设训练次数,若是统计当前各个神经网络单元的识别率,将识别率最低的神经网络单元确定为训练结果最差的神经网络单元。
进一步地,所述参数元素包括乘加器,主控单元还用于在根据均分规则将当前缓存单元中的乘加器重新配置至剩余的神经网络单元中之后,对各个神经网络单元的乘加器进行并行度提升;所述并行度提升具体包括:根据当前乘加器的数量、乘加器的精度以及神经网络单元所需的乘加器数量,尽可能地将神经网络单元所需的乘加器整合为下一精度级别的乘加器。
进一步地,所述装置包括WIFI通信单元和配置存储单元,所述主控单元与配置存储单元连接,所述主控单元还通过WIFI通信单元与互联网连接;
所述主控单元还用于接收任务请求,并根据任务请求类型从配置存储单元中获取该类型对应的初始参数配置信息,以及在配置存储单元中未存储有任务请求类型对应的初始参数配置信息时,通过WIFI通信单元从互联网中搜索任务请求类型对应的神经网络单元的初始参数配置信息,并将搜索得到的初始参数配置信息存储于配置存储单元中。
发明人还提供了一种并行竞争神经网络芯片的优化方法,所述方法应用于并行竞争神经网络芯片的优化装置,所述装置包括缓存单元、多个可重构网络矩阵单元、取数单元、主控单元;每个可重构网络矩阵单元均与取数单元连接,取数单元与缓存单元连接;主控单元与各个可重构网络矩阵单元连接;所述缓存单元用于存储参数元素;所述方法包括以下步骤:
主控单元配置各个神经网络单元对应的初始参数配置信息,所述初始参数配置信息包括神经网络单元所需的各个参数元素最小数量;
取数单元根据初始参数配置信息从缓存单元中获取相应数量的参数元素,可重构网络矩阵单元根据各个参数元素构建出相应的神经网络单元;
主控单元配置参数优化信息,并根据均分规则将缓存单元中剩余的参数元素平均配置至各个神经网络单元;
神经网络单元接收主控单元发送的测试数据,进行神经网络训练,并将神经网络训练的结果发送至主控单元;主控单元根据各个神经网络单元的训练结果,确定当前训练结果最差的神经网络单元,并对该神经网络单元进行拆分,将拆分得到的参数元素存储至缓存单元中,以及根据均分规则将当前缓存单元中的所有参数元素重新配置至剩余的神经网络单元中;
神经网络单元再次接收主控单元发送的测试数据,进行神经网络训练,并将再次神经网络训练的结果发送至主控单元;主控单元根据各个神经网络单元的再次得到的训练结果,确定当前训练结果最差的神经网络单元,并对该神经网络单元进行拆分,将拆分得到的参数元素存储至缓存单元中,以及根据均分规则将当前缓存单元中的所有参数元素重新配置至剩余的神经网络单元中;重复上述步骤,直至剩余的神经网络单元数量不大于预设数量值。
进一步地,主控单元根据各个神经网络单元的训练结果,确定训练结果最差的神经网络单元包括:
主控单元在各个神经网络单元的识别率均达到预设识别率后,将识别率最低的神经网络单元确定为训练结果最差的神经网络单元;所述识别率为神经网络单元对测试数据的计算结果与真实信息之间的匹配程度,每一测试数据对应一真实信息。
进一步地,所述方法包括:主控单元在至少存在一个神经网络单元的识别率达不到预设识别率时,判断各个神经网络单元的训练次数是否均达到预设训练次数,若是统计当前各个神经网络单元的识别率,将识别率最低的神经网络单元确定为训练结果最差的神经网络单元。
进一步地,所述参数元素包括乘加器,所述方法包括:
主控单元在根据均分规则将当前缓存单元中的乘加器重新配置至剩余的神经网络单元中之后,对各个神经网络单元的乘加器进行并行度提升;所述并行度提升具体包括:根据当前乘加器的数量、乘加器的精度以及神经网络单元所需的乘加器数量,尽可能地将神经网络单元所需的乘加器整合为下一精度级别的乘加器。
进一步地,所述装置包括WIFI通信单元和配置存储单元,所述主控单元与配置存储单元连接,所述主控单元还通过WIFI通信单元与互联网连接;所述方法包括:
主控单元接收任务请求,并根据任务请求类型从配置存储单元中获取该类型对应的初始参数配置信息,以及在配置存储单元中未存储有任务请求类型对应的初始参数配置信息时,通过WIFI通信单元从互联网中搜索任务请求类型对应的神经网络单元的初始参数配置信息,并将搜索得到的初始参数配置信息存储于配置存储单元中。
区别于现有技术,上述技术方案并行竞争神经网络芯片的优化方法和装置,所述装置包括缓存单元、多个可重构网络矩阵单元、取数单元、主控单元。所述方法包括以下步骤:可重构网络矩阵单元根据主控单元发送的初始参数配置信息,获取缓存单元中的各个参数元素,构建出相应的神经网络单元;神经网络单元进行神经网络训练,主控单元根据神经网络单元的训练结果不断地淘汰训练结果最差的神经网络单元,并将淘汰的神经网络的电路资源(即参数元素)重新分配给未淘汰的神经网络,直至剩余的神经网络单元数量不大于预设数量值,剩余的神经网络单元具有最优的电路资源,可以高效地进行神经网络计算,提高识别效率。另外,由于剩余的神经网络单元数量不大于预设数量值,相较于在终端上构建多个神经网络单元的方式,有效减轻了神经网络单元对硬件资源的占用,满足了终端用户设备的应用需求。
附图说明
图1为本发明一实施例涉及的并行竞争神经网络芯片的优化装置的结构示意图;
图2为本发明一实施例涉及的升级单元的电路结构图;
图3为本发明一实施例涉及的乘加器单元的电路结构图;
图4为本发明一实施例涉及的可重构网络矩阵单元的电路结构图;
图5为本发明一实施例涉及的乘加器并行度提升的示意图;
图6为本发明一实施例涉及的并行竞争神经网络芯片的优化方法的流程图;
图7为本发明另一实施例涉及的并行竞争神经网络芯片的优化装置的结构示意图;
附图标记说明:
101、缓存单元;102、可重构网络矩阵单元;103、取数单元;104、主控单元;105、WIFI通信单元;106、配置存储单元。
131、互联矩阵单元;132、乘加器单元;133、升级单元;134、激活函数单元;135、误差计算单元。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
请参阅图1,为本发明一实施例涉及的并行竞争神经网络芯片的优化装置的结构示意图。所述装置包括缓存单元101、多个可重构网络矩阵单元102、取数单元103、主控单元104;每个可重构网络矩阵单元102均与取数单元103连接,取数单元103与缓存单元101连接;主控单元104与各个可重构网络矩阵单元102连接;所述缓存单元101用于存储参数元素。
所述主控单元104用于配置各个神经网络单元对应的初始参数配置信息,所述初始参数配置信息包括神经网络单元所需的各个参数元素最小数量。所述初始参数配置信息即包括神经网络单元进行计算所需的硬件电路资源(即参数元素),也包括神经网络单元构建时的一些基本参数。如图4所示,可重构网络矩阵单元包括互联矩阵单元131、乘加器单元132、升级单元133、激活函数单元134和误差计算单元135。其中,乘加器单元132、升级单元133、激活函数单元134均为硬件电路资源(即参数元素),神经网络单元在进行识别计算时需要用到上述硬件电路资源。每个神经网络单元在构建时都有其对应的最小参数元素数量,即需要多少乘加器、多少升级单元、多少激活函数单元才可满足神经网络计算的最低要求。升级单元的电路结构如图2所示,乘加器单元的电路结构如图3所示。
神经网络单元的基本参数包括神经网络层数、各层神经网络的神经元数量、各层神经网络的卷积核值、卷积配置值以及权值。相对应地,所述取数单元包括神经元取数单元、卷积核取数单元、核值取数单元、卷积配置取数单元。不同类型的神经网络单元的基本参数也相应不同,这主要是神经网络相关算法决定的,例如应用于人脸识别的神经网络单元,其基本参数设置一般与应用于语音识别的神经网络单元的不同。即使是相同类型的神经网络单元,即都是应用于人脸识别或语音识别的神经网络单元,其也具有多种不同的算法;算法不同,其相应的基本参数也不同。主控单元可以根据不同的基本参数构建出基于同一功能的不同的神经网络结构。本发明主要针对的是基于同一功能(如人脸识别、语音识别等)的神经网络单元的参数元素(即硬件资源)的配置进行调整,不断优化,对于神经网络基本参数设置不是本发明的重点,此处不再赘述。
所述取数单元103用于根据初始参数配置信息从缓存单元中获取相应数量的参数元素,所述可重构网络矩阵单元用于根据各个参数元素构建出相应的神经网络单元。如图4所示,互联矩阵单元131可以对从缓存单元中提取出的乘加器单元、升级单元、激活函数单元等参数元素进行互联,从而得到相应结构的神经网络结构。
所述主控单元104还用于配置参数优化信息,并根据均分规则将缓存单元中剩余的参数元素平均配置至各个神经网络单元。例如现在需要对3个神经网络单元进行并行竞争优化,满足神经网络单元A进行计算的升级单元数量至少为3个,满足神经网络单元B进行计算的升级单元数量至少为3个,满足神经网络单元C进行计算的升级单元数量至少为5个,缓存单元中存储的升级单元数量为20个,则主控单元会先按照3个神经网络单元的最低需求分配升级单元,并将剩余的9个升级单元均分给3个神经网络单元。再比如3个神经网络单元进行计算所需的升级单元的最小数量同上,缓存单元中存储的升级单元数量为15个,那么主控单元将剩余的4个升级单元按照以下方式进行分配:神经网络单元A、神经网络单元B、神经网络单元C分别再分配1个升级单元,剩下1个升级单元继续存储在缓存单元中,等待下一次资源再分配操作。对于累加器单元、激活函数单元的分配方式,同理可得,此处不再赘述。通过上述分配方式,使得缓存单元中的资源可以得到有效优化配置,提高了资源利用率,也提高了各个神经网络单元的计算速度。
所述神经网络单元用于接收主控单元发送的测试数据,进行神经网络训练,并将神经网络训练的结果发送至主控单元;所述主控单元用于根据各个神经网络单元的训练结果,确定当前训练结果最差的神经网络单元,并对该神经网络单元进行拆分,将拆分得到的参数元素存储至缓存单元中,以及用于根据均分规则将当前缓存单元中的所有参数元素重新配置至剩余的神经网络单元中。
在本实施方式中,主控单元用于根据各个神经网络单元的训练结果,确定训练结果最差的神经网络单元包括:主控单元用于在各个神经网络单元的识别率均达到预设识别率后,将识别率最低的神经网络单元确定为训练结果最差的神经网络单元;所述识别率为神经网络单元对测试数据的计算结果与真实信息之间的匹配程度,每一测试数据对应一真实信息。
所述真实信息是指输入至神经网络单元的特征信息,可以是指纹特征信息、人脸特征信息,也可以是包含有指纹特征信息、人脸特征信息的图片等。例如神经网络单元进行的是基于指纹识别功能的训练,则输入的特征信息为指纹特征信息,所述识别率是指神经网络单元经过多次计算后,得到的计算结果与输入的真实指纹特征信息之间的匹配度,如果误差计算单元135得到的匹配度越高,说明误差越小。如果各个神经网络单元的识别率均达到预设识别率(如80%或90%),则淘汰掉识别率最低的神经网络单元,并对淘汰掉的神经网络单元进行拆分,将分配给其的参数元素重新存储至缓存单元中。例如预设识别率为90%,神经网络单元A、B、C对同一测试数据经过多次神经网络训练计算后,计算结果与真实信息的匹配度分别达到91%、93%、95%,则确定神经网络单元A为训练结果最差的神经网络单元,假设初始阶段分配给其的升级单元为3个,主控单元对神经网络单元A进行拆分,将拆分得到的3个升级单元重新存储至缓存单元,并根据均分原则进行分配处理。此时缓存单元中存储有4个升级单元(拆分的3个以及初始还未分配的1个),根据均分原则进行分配处理具体如下:神经网络单元B、神经网络单元C分别再分配2个升级单元。
在实际应用过程中,有些神经网络单元无论计算多少次,都很难达到预设识别率,为了避免所述装置陷入死循环状态,在某些实施例中,所述主控单元用于在至少存在一个神经网络单元的识别率达不到预设识别率时,判断各个神经网络单元的训练次数是否均达到预设训练次数,若是统计当前各个神经网络单元的识别率,将识别率最低的神经网络单元确定为训练结果最差的神经网络单元。例如预设训练次数为500次,预设识别率为90%,经过500次神经网络计算后,神经网络单元A、B、C的计算结果与真实信息的匹配度分别达到81%、93%、65%,则确定神经网络单元C为训练结果最差的神经网络单元,假设初始阶段分配给其的升级单元为5个,主控单元对神经网络单元C进行拆分,将拆分得到的5个升级单元重新存储至缓存单元,并根据均分原则进行分配处理。此时缓存单元中存储有6个升级单元(拆分的5个以及初始还未分配的1个),根据均分原则进行分配处理具体如下:神经网络单元B、神经网络单元C分别再分配3个升级单元。
所述神经网络单元还用于再次接收主控单元发送的测试数据,进行神经网络训练,并将再次神经网络训练的结果发送至主控单元;所述主控单元用于根据各个神经网络单元的再次得到的训练结果,确定当前训练结果最差的神经网络单元,并对该神经网络单元进行拆分,将拆分得到的参数元素存储至缓存单元中,以及用于根据均分规则将当前缓存单元中的所有参数元素重新配置至剩余的神经网络单元中;重复上述步骤,直至剩余的神经网络单元数量不大于预设数量值。在本实施方式中,所述预设数量值为1,即经过不断地计算、比较识别率、拆分、再计算、再比较识别率、再拆分,直至将缓存单元中的所有参数元素均分配给某一个神经网络单元,该神经网络单元具有较强的运算能力以及较高的识别率,可以满足用户的需求,提升用户体验。
在某些实施例中,所述装置包括WIFI通信单元105和配置存储单元106,所述主控单元104与配置存储单元106连接,所述主控单元104还通过WIFI通信单元105与互联网连接。所述主控单元还用于接收任务请求,并根据任务请求类型从配置存储单元中获取该类型对应的初始参数配置信息,以及在配置存储单元中未存储有任务请求类型对应的初始参数配置信息时,通过WIFI通信单元从互联网中搜索任务请求类型对应的神经网络单元的初始参数配置信息,并将搜索得到的初始参数配置信息存储于配置存储单元中。
简言之,配置存储单元会存储一些神经网络结构的配置参数,以便可重构网络矩阵单元构建神经网络单元时及时调取,同时,主控单元也可以通过互联网将本地没有的一些神经网络结构的基本参数下载存储至配置存储单元,从而提高本装置的适用范围。例如在某一应用场景中,配置存储单元只存储有指纹识别的基本参数,而需要并行竞争后的神经网络单元可以实现人脸识别的功能,主控单元在查询到配置存储单元中未存储有人脸识别相关的神经网络配置的初始参数配置信息时,将从互联网下载与人脸识别相关的神经网络结构的初始参数配置信息至配置存储单元中,以便后续调用。
在某些实施例中,所述参数元素包括乘加器,主控单元还用于在根据均分规则将当前缓存单元中的乘加器重新配置至剩余的神经网络单元中之后,对各个神经网络单元的乘加器进行并行度提升;所述并行度提升具体包括:根据当前乘加器的数量、乘加器的精度以及神经网络单元所需的乘加器数量,尽可能地将神经网络单元所需的乘加器整合为下一精度级别的乘加器。简言之,先设置较低精度的乘加器进行神经网络计算,而后再随分配到的参数元素的增多,通过并行度提升的方式逐步提高乘加器的精度,使得神经网络的计算结果更加精准。
如图7所示,为本发明另一实施例涉及的并行竞争神经网络芯片的优化装置的结构示意图。主控单元可以根据功能再细分为识别率统计单元、败者判定单元和败者资源重分配单元,以构建3个神经网络单元进行训练为例,可重构神经网络0、1、2分别根据自身对应的参数配置信息构建出神经网络单元,识别率统计单元分别统计三者的计算结果,并进行比较,将识别率最低的神经网络单元确定为败者,败者资源重分配单元对败者网络的资源进行拆分,存储于缓存单元中,并由败者资源重分配单元重新分配至胜者的神经网络中。
为了便于说明,对本发明涉及的乘法器的并行度提升方式做进一步说明,加法器的并行度提升同理可得。如图5所示,以乘法器的最大精度为32bitx32bit为例,对于一个32bitx32bit的乘法器而言,其既可以划分为4个8bit子乘法器,也可以划分为2个16bit子乘法器。主控单元包括低位补零单元、基4编码单元、位移单元和累加单元,缓存单元包括中间缓存单元、补零缓存单元、编码缓存单元。主控单元实现乘法器并行度提升的具体流程如下:
(1)根据精度等级将32bit乘数a和b分别拆分为4个8bit,并将乘数暂存于中间缓存单元。在乘法器的精度全开32bit的情况下,拆分方法为缓存1存放32到25bit,缓存2存放24到17bit,缓存3存放16到9bit,缓存4存放8到1bit;在精度等级为16bit精度的情况下,拆分方法为缓存1存放32到25bit,缓存2存放24到17bit,缓存3存放8个零,缓存4存放8个零;在功耗等级为最小精度8bit的情况下,拆分方法为缓存1存放32到25bit。
(2)读取中间缓存单元的值对低位进行1bit补零后再存入补零缓存单元中;
(3)基4编码单元负责对每个9bit补零后的乘数进行基4编码,然后将编码结果存到编码缓存单元,booth乘法器基4编码为经典算法,此处不再赘述。
(4)根据a的4个编码值和b的8bit值进行查表运算,得到查表结果送往位移单元;
(5)位移单元负责根据原拆分乘数的位置对运算结果进行位移,位移单元1将结果向左位移48bit,位移单元2将结果向左位移32bit,位移单元3将结果向左位移16bit,位移单元4将结果向左位移0bit,然后将位移后的结果送往累加单元;
(7)累加单元负责将4个位移单元的结果进行累加后输出为乘法结果。
请参阅图6,为本发明一实施例涉及的并行竞争神经网络芯片的优化方法的流程图。所述方法应用于并行竞争神经网络芯片的优化装置,所述装置包括缓存单元、多个可重构网络矩阵单元、取数单元、主控单元;每个可重构网络矩阵单元均与取数单元连接,取数单元与缓存单元连接;主控单元与各个可重构网络矩阵单元连接;所述缓存单元用于存储参数元素;所述方法包括以下步骤:
首先进入步骤S601主控单元配置各个神经网络单元对应的初始参数配置信息,所述初始参数配置信息包括神经网络单元所需的各个参数元素最小数量;
而后进入步骤S602取数单元根据初始参数配置信息从缓存单元中获取相应数量的参数元素,可重构网络矩阵单元根据各个参数元素构建出相应的神经网络单元;
而后进入步骤S603主控单元配置参数优化信息,并根据均分规则将缓存单元中剩余的参数元素平均配置至各个神经网络单元;
而后进入步骤S604神经网络单元接收主控单元发送的测试数据,进行神经网络训练,并将神经网络训练的结果发送至主控单元;
而后进入步骤S605主控单元根据各个神经网络单元的训练结果,确定当前训练结果最差的神经网络单元,并对该神经网络单元进行拆分,将拆分得到的参数元素存储至缓存单元中,以及根据均分规则将当前缓存单元中的所有参数元素重新配置至剩余的神经网络单元中;
而后进入步骤S606判断剩余的神经网络单元数量是否不大于预设数量值,若是则进入步骤S607神经网络训练完成;否则重新进入步骤S604。
在某些实施例中,主控单元根据各个神经网络单元的训练结果,确定训练结果最差的神经网络单元包括:主控单元在各个神经网络单元的识别率均达到预设识别率后,将识别率最低的神经网络单元确定为训练结果最差的神经网络单元;所述识别率为神经网络单元对测试数据的计算结果与真实信息之间的匹配程度,每一测试数据对应一真实信息。
在某些实施例中,所述方法包括:主控单元在至少存在一个神经网络单元的识别率达不到预设识别率时,判断各个神经网络单元的训练次数是否均达到预设训练次数,若是统计当前各个神经网络单元的识别率,将识别率最低的神经网络单元确定为训练结果最差的神经网络单元。
在某些实施例中,所述参数元素包括乘加器,所述方法包括:主控单元在根据均分规则将当前缓存单元中的乘加器重新配置至剩余的神经网络单元中之后,对各个神经网络单元的乘加器进行并行度提升;所述并行度提升具体包括:根据当前乘加器的数量、乘加器的精度以及神经网络单元所需的乘加器数量,尽可能地将神经网络单元所需的乘加器整合为下一精度级别的乘加器。
在某些实施例中,所述装置包括WIFI通信单元和配置存储单元,所述主控单元与配置存储单元连接,所述主控单元还通过WIFI通信单元与互联网连接;所述方法包括:主控单元接收任务请求,并根据任务请求类型从配置存储单元中获取该类型对应的初始参数配置信息,以及在配置存储单元中未存储有任务请求类型对应的初始参数配置信息时,通过WIFI通信单元从互联网中搜索任务请求类型对应的神经网络单元的初始参数配置信息,并将搜索得到的初始参数配置信息存储于配置存储单元中。
上述技术方案并行竞争神经网络芯片的优化方法和装置,所述装置包括缓存单元、多个可重构网络矩阵单元、取数单元、主控单元。所述方法包括以下步骤:可重构网络矩阵单元根据主控单元发送的初始参数配置信息,获取缓存单元中的各个参数元素,构建出相应的神经网络单元;神经网络单元进行神经网络训练,主控单元根据神经网络单元的训练结果不断地淘汰训练结果最差的神经网络单元,并将淘汰的神经网络的电路资源(即参数元素)重新分配给未淘汰的神经网络,直至剩余的神经网络单元数量不大于预设数量值,剩余的神经网络单元具有最优的电路资源,可以高效地进行神经网络计算,提高识别效率。另外,由于剩余的神经网络单元数量不大于预设数量值,相较于在终端上构建多个神经网络单元的方式,有效减轻了神经网络单元对硬件资源的占用,满足了终端用户设备的应用需求。
需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。

Claims (10)

1.一种并行竞争神经网络芯片的优化装置,其特征在于,所述装置包括缓存单元、多个可重构网络矩阵单元、取数单元、主控单元;每个可重构网络矩阵单元均与取数单元连接,取数单元与缓存单元连接;主控单元与各个可重构网络矩阵单元连接;所述缓存单元用于存储参数元素;
所述参数元素包括乘加器;
所述主控单元用于配置各个神经网络单元对应的初始参数配置信息,所述初始参数配置信息包括神经网络单元所需的各个参数元素最小数量;
所述取数单元用于根据初始参数配置信息从缓存单元中获取相应数量的参数元素,所述可重构网络矩阵单元用于根据各个参数元素构建出相应的神经网络单元;
所述主控单元还用于配置参数优化信息,并根据均分规则将缓存单元中剩余的参数元素平均配置至各个神经网络单元;
所述神经网络单元用于接收主控单元发送的测试数据,进行神经网络训练,并将神经网络训练的结果发送至主控单元;所述主控单元用于根据各个神经网络单元的训练结果,确定当前训练结果最差的神经网络单元,并对该神经网络单元进行拆分,将拆分得到的参数元素存储至缓存单元中,以及用于根据均分规则将当前缓存单元中的所有参数元素重新配置至剩余的神经网络单元中;所述训练结果最差的神经网络单元为识别率最低的神经网络单元;所述识别率为神经网络单元对测试数据的计算结果与真实信息之间的匹配程度,每一测试数据对应一真实信息;
所述神经网络单元还用于再次接收主控单元发送的测试数据,进行神经网络训练,并将再次神经网络训练的结果发送至主控单元;所述主控单元用于根据各个神经网络单元的再次得到的训练结果,确定当前训练结果最差的神经网络单元,并对该神经网络单元进行拆分,将拆分得到的参数元素存储至缓存单元中,以及用于根据均分规则将当前缓存单元中的所有参数元素重新配置至剩余的神经网络单元中;重复上述步骤,直至剩余的神经网络单元数量不大于预设数量值。
2.如权利要求1所述的并行竞争神经网络芯片的优化装置,其特征在于,主控单元用于根据各个神经网络单元的训练结果,确定训练结果最差的神经网络单元包括:
主控单元用于在各个神经网络单元的识别率均达到预设识别率后,将识别率最低的神经网络单元确定为训练结果最差的神经网络单元。
3.如权利要求2所述的并行竞争神经网络芯片的优化装置,其特征在于,所述主控单元用于在至少存在一个神经网络单元的识别率达不到预设识别率时,判断各个神经网络单元的训练次数是否均达到预设训练次数,若是统计当前各个神经网络单元的识别率,将识别率最低的神经网络单元确定为训练结果最差的神经网络单元。
4.如权利要求1所述的并行竞争神经网络芯片的优化装置,其特征在于,主控单元还用于在根据均分规则将当前缓存单元中的乘加器重新配置至剩余的神经网络单元中之后,对各个神经网络单元的乘加器进行并行度提升;所述并行度提升具体包括:根据当前乘加器的数量、乘加器的精度以及神经网络单元所需的乘加器数量,将神经网络单元所需的乘加器整合为下一精度级别的乘加器。
5.如权利要求1所述的并行竞争神经网络芯片的优化装置,其特征在于,所述装置包括WIFI通信单元和配置存储单元,所述主控单元与配置存储单元连接,所述主控单元还通过WIFI通信单元与互联网连接;
所述主控单元还用于接收任务请求,并根据任务请求类型从配置存储单元中获取该类型对应的初始参数配置信息,以及在配置存储单元中未存储有任务请求类型对应的初始参数配置信息时,通过WIFI通信单元从互联网中搜索任务请求类型对应的神经网络单元的初始参数配置信息,并将搜索得到的初始参数配置信息存储于配置存储单元中。
6.一种并行竞争神经网络芯片的优化方法,其特征在于,所述方法应用于并行竞争神经网络芯片的优化装置,所述装置包括缓存单元、多个可重构网络矩阵单元、取数单元、主控单元;每个可重构网络矩阵单元均与取数单元连接,取数单元与缓存单元连接;主控单元与各个可重构网络矩阵单元连接;所述缓存单元用于存储参数元素;所述参数元素包括乘加器;
所述方法包括以下步骤:
主控单元配置各个神经网络单元对应的初始参数配置信息,所述初始参数配置信息包括神经网络单元所需的各个参数元素最小数量;
取数单元根据初始参数配置信息从缓存单元中获取相应数量的参数元素,可重构网络矩阵单元根据各个参数元素构建出相应的神经网络单元;
主控单元配置参数优化信息,并根据均分规则将缓存单元中剩余的参数元素平均配置至各个神经网络单元;
神经网络单元接收主控单元发送的测试数据,进行神经网络训练,并将神经网络训练的结果发送至主控单元;主控单元根据各个神经网络单元的训练结果,确定当前训练结果最差的神经网络单元,并对该神经网络单元进行拆分,将拆分得到的参数元素存储至缓存单元中,以及根据均分规则将当前缓存单元中的所有参数元素重新配置至剩余的神经网络单元中;
所述训练结果最差的神经网络单元为识别率最低的神经网络单元;所述识别率为神经网络单元对测试数据的计算结果与真实信息之间的匹配程度,每一测试数据对应一真实信息;
神经网络单元再次接收主控单元发送的测试数据,进行神经网络训练,并将再次神经网络训练的结果发送至主控单元;主控单元根据各个神经网络单元的再次得到的训练结果,确定当前训练结果最差的神经网络单元,并对该神经网络单元进行拆分,将拆分得到的参数元素存储至缓存单元中,以及根据均分规则将当前缓存单元中的所有参数元素重新配置至剩余的神经网络单元中;重复上述步骤,直至剩余的神经网络单元数量不大于预设数量值。
7.如权利要求6所述的并行竞争神经网络芯片的优化方法,其特征在于,主控单元根据各个神经网络单元的训练结果,确定训练结果最差的神经网络单元包括:
主控单元在各个神经网络单元的识别率均达到预设识别率后,将识别率最低的神经网络单元确定为训练结果最差的神经网络单元。
8.如权利要求7所述的并行竞争神经网络芯片的优化方法,其特征在于,所述方法包括:
主控单元在至少存在一个神经网络单元的识别率达不到预设识别率时,判断各个神经网络单元的训练次数是否均达到预设训练次数,若是统计当前各个神经网络单元的识别率,将识别率最低的神经网络单元确定为训练结果最差的神经网络单元。
9.如权利要求6所述的并行竞争神经网络芯片的优化方法,其特征在于,所述方法包括:
主控单元在根据均分规则将当前缓存单元中的乘加器重新配置至剩余的神经网络单元中之后,对各个神经网络单元的乘加器进行并行度提升;所述并行度提升具体包括:根据当前乘加器的数量、乘加器的精度以及神经网络单元所需的乘加器数量,将神经网络单元所需的乘加器整合为下一精度级别的乘加器。
10.如权利要求6所述的并行竞争神经网络芯片的优化方法,其特征在于,所述装置包括WIFI通信单元和配置存储单元,所述主控单元与配置存储单元连接,所述主控单元还通过WIFI通信单元与互联网连接;所述方法包括:
主控单元接收任务请求,并根据任务请求类型从配置存储单元中获取该类型对应的初始参数配置信息,以及在配置存储单元中未存储有任务请求类型对应的初始参数配置信息时,通过WIFI通信单元从互联网中搜索任务请求类型对应的神经网络单元的初始参数配置信息,并将搜索得到的初始参数配置信息存储于配置存储单元中。
CN201810015066.6A 2018-01-08 2018-01-08 一种并行竞争神经网络芯片的优化方法和装置 Active CN108288090B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810015066.6A CN108288090B (zh) 2018-01-08 2018-01-08 一种并行竞争神经网络芯片的优化方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810015066.6A CN108288090B (zh) 2018-01-08 2018-01-08 一种并行竞争神经网络芯片的优化方法和装置

Publications (2)

Publication Number Publication Date
CN108288090A CN108288090A (zh) 2018-07-17
CN108288090B true CN108288090B (zh) 2020-06-19

Family

ID=62835040

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810015066.6A Active CN108288090B (zh) 2018-01-08 2018-01-08 一种并行竞争神经网络芯片的优化方法和装置

Country Status (1)

Country Link
CN (1) CN108288090B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662765A (zh) * 2012-04-28 2012-09-12 中国科学技术大学 一种运行效率指导的可重构多核处理器的资源分配方法
CN104331331A (zh) * 2014-11-02 2015-02-04 中国科学技术大学 任务数目和性能感知的可重构多核处理器的资源分配方法
CN107169560A (zh) * 2017-04-19 2017-09-15 清华大学 一种自适应可重构的深度卷积神经网络计算方法和装置
CN107463990A (zh) * 2016-06-02 2017-12-12 国家计算机网络与信息安全管理中心 一种卷积神经网络的fpga并行加速方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014085975A1 (zh) * 2012-12-04 2014-06-12 中国科学院半导体研究所 可动态重构的多级并行单指令多数据阵列处理系统
US10489703B2 (en) * 2015-05-20 2019-11-26 Nec Corporation Memory efficiency for convolutional neural networks operating on graphics processing units
CN106709565A (zh) * 2016-11-16 2017-05-24 广州视源电子科技股份有限公司 一种神经网络的优化方法及装置
CN107341549A (zh) * 2017-07-26 2017-11-10 成都快眼科技有限公司 一种基于多通道竞争卷积神经网络参数优化方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662765A (zh) * 2012-04-28 2012-09-12 中国科学技术大学 一种运行效率指导的可重构多核处理器的资源分配方法
CN104331331A (zh) * 2014-11-02 2015-02-04 中国科学技术大学 任务数目和性能感知的可重构多核处理器的资源分配方法
CN107463990A (zh) * 2016-06-02 2017-12-12 国家计算机网络与信息安全管理中心 一种卷积神经网络的fpga并行加速方法
CN107169560A (zh) * 2017-04-19 2017-09-15 清华大学 一种自适应可重构的深度卷积神经网络计算方法和装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A high performance FPGA-based accelerator for large-scale convolutional neural networks.;Huimin Li et al.;《2016 26th International Conference on Field Programmable Logic and Applications (FPL)》;20160929;第1-9页 *
卷积神经网络在图形处理GPU芯片上的优化;沈恬,胡飞.;《集成电路应用》;20170630;第34卷(第6期);第18-22页 *
神经网络芯片研究进展;吴成东 等;《电器传动》;19980630(第6期);第52-55页 *

Also Published As

Publication number Publication date
CN108288090A (zh) 2018-07-17

Similar Documents

Publication Publication Date Title
US20180197084A1 (en) Convolutional neural network system having binary parameter and operation method thereof
CN107783840B (zh) 一种分布式多层深度学习资源分配方法和装置
CN109543140B (zh) 一种卷积神经网络加速器
US11462003B2 (en) Flexible accelerator for sparse tensors in convolutional neural networks
CN109409510B (zh) 神经元电路、芯片、系统及其方法、存储介质
CN110069341B (zh) 边缘计算中结合功能按需配置的有依赖关系任务的调度方法
CN109542512B (zh) 一种数据处理方法、装置和存储介质
CN112766467B (zh) 基于卷积神经网络模型的图像识别方法
CN107800572B (zh) 一种基于神经网络升级设备的方法和装置
CN112785597A (zh) 识别图像的方法和系统
Eshratifar et al. Towards collaborative intelligence friendly architectures for deep learning
US11797830B2 (en) Flexible accelerator for sparse tensors in convolutional neural networks
US20210049459A1 (en) Systems and methods to execute efficiently a plurality of machine learning processes
CN110569984B (zh) 配置信息生成方法、装置、设备及存储介质
CN110519370A (zh) 一种基于设施选址问题的边缘计算资源分配方法
CN114327857A (zh) 操作数据处理方法、装置、计算机设备和存储介质
CN115860079A (zh) 神经网络加速装置、方法、芯片、电子设备及存储介质
CN111831359A (zh) 权重精度配置方法、装置、设备及存储介质
CN111261170A (zh) 基于声纹库的声纹识别方法、主控节点及计算节点
CN108288090B (zh) 一种并行竞争神经网络芯片的优化方法和装置
CN111158893A (zh) 应用于雾计算网络的任务卸载方法、系统、设备及介质
CN113761017A (zh) 相似性搜索方法和装置
CN113159269A (zh) 终端模型处理方法、装置及设备
CN114700957B (zh) 模型低算力需求的机器人控制方法及装置
CN117014057A (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