CN108510064A - 包括多个核心处理模块的人工神经网络的处理系统及方法 - Google Patents

包括多个核心处理模块的人工神经网络的处理系统及方法 Download PDF

Info

Publication number
CN108510064A
CN108510064A CN201810249506.4A CN201810249506A CN108510064A CN 108510064 A CN108510064 A CN 108510064A CN 201810249506 A CN201810249506 A CN 201810249506A CN 108510064 A CN108510064 A CN 108510064A
Authority
CN
China
Prior art keywords
processing module
processing
neural network
input
core
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
Application number
CN201810249506.4A
Other languages
English (en)
Other versions
CN108510064B (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.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201810249506.4A priority Critical patent/CN108510064B/zh
Publication of CN108510064A publication Critical patent/CN108510064A/zh
Application granted granted Critical
Publication of CN108510064B publication Critical patent/CN108510064B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/786Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) using a single memory module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • 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

Abstract

本公开提供了一种包括多个核心处理模块的人工神经网络的处理系统及方法,其中,所述人工神经网络的处理系统,包括:多核心处理模块,其包括多个核心处理模块;其中,该多个核心处理模块共同复用输入神经元和/或权值。本公开包括多个核心处理模块的人工神经网络的处理系统及方法,其在神经网络处理系统中引入多核设计,从而提升神经网络处理系统的运算速度,使得神经网络处理系统性能更高,更加高效。

Description

包括多个核心处理模块的人工神经网络的处理系统及方法
本公开是2016年4月18日所提出的申请号为201610240416.X、发明名称为《一种神经网络的处理方法、系统》的发明专利申请的分案申请。
技术领域
本公开涉及计算机技术领域,尤其涉及一种人工神经网络的处理系统及方法。
背景技术
在大数据时代,越来越多的设备需要对于真实世界的实时输入进行越来越复杂的处理,如工业机器人、自动驾驶无人汽车以及移动设备等等。这些任务大多数偏向于机器学习领域,其中大部分运算为向量运算或者矩阵运算,具有极高的并行度。相较于传统通用的GPU/CPU加速方案,硬件ASIC加速器是目前最受欢迎的加速方案,一方面可以提供极高的并行度可以实现极高的性能,另外一方面具有极高的能效性。
常见的神经网络算法中,包括最为流行的多层感知神经网络(Multi-LayerPerceptron,MLP)、卷积神经网络(Convolutional Neural Network,CNN)和深度神经网络(Deep Neural Network,DNN),通常包含多层神经元而每层神经元常常通过特定方式进行组织,如卷积神经网络中按照特征图(Feature Map)进行组织。每个输出特征图的处理常常独立于彼此。
神经网络的绝大部分运算为输入神经元到输出神经元的处理,少量运算为不需要输出神经元参与的运算,如非线性运算。神经网络中每层的运算速度深切的影响了神经网络加速器的性能。神经网络加速器中,提升这些运算的并行度,也即加速器的吞吐量,为提升神经网络加速器的性能的主要手段。现有技术中,执行输入神经元到输出神经元的处理的模块通常为单核设计,难以满足神经网络加速器的性能要求。
综上可知,现有技术在实际使用上显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本公开的目的在于提供一种神经网络的处理系统及方法,其在神经网络处理系统中引入多核设计,从而提升神经网络处理系统的运算速度,使得神经网络处理系统性能更高,更加高效。
根据本公开的一个方面,提供了一种人工神经网络的处理系统,包括:多核心处理模块,其包括多个核心处理模块;其中,该多个核心处理模块共同复用输入神经元和/或权值。
在一些实施例中,所述神经网络的处理系统进行处理时,将同一输入神经元分别发送至所述多个核心处理模块,将不同的输入权值分配至不同的核心处理模块,所述多个核心处理模块分别将所述输入神经元和输入权值进行向量内积操作后得到不同的输出神经元。
在一些实施例中,所述多个核心处理模块共同处理同一特征图时,共同复用权值。
在一些实施例中,所述多核心处理模块用于执行神经网络运算中的向量乘加操作。
在一些实施例中,所述的处理系统还包括:至少一片上存储介质,用于存储由神经网络处理系统外部传来的数据或用于存储处理过程中产生的数据;以及至少一ALU模块,用于从所述多核心处理模块或所述片上存储介质获取输入数据执行所述多核心处理模块无法完成的非线性运算;其中,所述多个核心处理模块共享所述片上存储介质以及ALU模块,或者所述多个核心处理模块具有独立的所述片上存储介质以及ALU模块。
在一些实施例中,所述的处理系统还包括:至少一片内地址索引模块,用于执行运算时根据输入的索引映射至正确的存储地址。
在一些实施例中,所述处理过程中产生的数据包括处理结果或中间结算结果。
在一些实施例中,所述神经网络根据多核处理模式进行神经网络划分,包括:从输入神经元划分、输出神经元划分和权值连接划分。
在一些实施例中,所述神经网络的处理系统在执行二维或者多维运算时,将输入特征图分别发送至所述多个核心处理模块,所述多个核心处理模块分别处理一层输出特征图;或所述神经网络的处理系统在执行二维或者多维运算时,将输入特征图分别发送至所述多个核心处理模块,所述多个核心处理模块分别处理同一输出特征图的不同区域;或所述神经网络的处理系统在执行一维运算时,将同一输入分别发送至所述多个核心处理模块,所述多个核心处理模块分别处理不同的输出神经元,所述多个核心处理模块均分别完成当前输出神经元的处理后,所述多核心处理模块再执行新的输入的处理。
在一些实施例中,所述多个核心处理模块均分别完成当前输出特征图的处理后,所述多核心处理模块再执行新的输出特征图处理。
在一些实施例中,所述多核心处理模块的多个核心处理模块之间为同构设计或异构设计。
根据本公开的另一个方面,提供了一种人工神经网络的处理方法,包括:将同一输入神经元分别发送至多个核心处理模块,将不同的输入权值分配至不同的核心处理模块;以及多个核心处理模块分别将输入神经元和输入权值进行向量内积操作后得到不同的输出神经元。
在一些实施例中,所述的处理方法还包括:将输入数据发送至多个核心处理模块,多个核心处理模块执行神经网络运算中的向量乘加操作;以及将输入数据发送至ALU模块,ALU模块根据所述多个核心处理模块的处理结果或者获取的输入数据执行所述多个核心处理模块无法完成的非线性运算。
在一些实施例中,在将输入数据发送至多个核心处理模块或ALU模块之前,还包括:片内地址索引模块根据输入的索引映射至正确的存储地址;根据所述存储地址从片上存储介质中获取输入数据;在多个核心处理模块执行向量乘加操作及ALU模块执行非线性运算之后,还包括:将处理过程中产生的数据缓存至所述片上存储介质。
根据本公开的另一个方面,提供了一种神经网络的处理系统,包括:
至少一片上存储介质、用于存储由神经网络处理系统外部传来的数据或用于存储处理过程中产生的数据;
至少一片内地址索引模块、用于执行运算时根据输入的索引映射至正确的存储地址;
由多个核心处理模块组成的多核心处理模块,用于执行神经网络运算中的向量乘加操作;
至少一ALU模块,用于从所述多核心处理模块或所述片上存储介质获取输入数据执行所述多核心处理模块无法完成的非线性运算,
其中,所述多个核心处理模块共享所述片上存储介质以及ALU模块,或者所述多个核心处理模块具有独立的所述片上存储介质以及ALU模块。
根据本公开的处理系统,所述处理过程中产生的数据包括处理结果或中间结算结果。
根据本公开的处理系统,所述神经网络处理系统进行处理时,将同一输入神经元分别发送至所述多个核心处理模块,将不同的输入权值分配至不同的核心处理模块,所述多个核心处理模块分别将所述输入神经元和输入权值进行向量内积操作后得到不同的输出神经元。
根据本公开的处理系统,所述神经网络处理系统在执行二维或者多维运算时,将输入特征图分别发送至所述多个核心处理模块,所述多个核心处理模块分别处理一层输出特征图。
根据本公开的处理系统,所述神经网络处理系统在执行二维或者多维运算时,将输入特征图分别发送至所述多个核心处理模块,所述多个核心处理模块分别处理同一输出特征图的不同区域。
根据本公开的处理系统,所述多个核心处理模块均分别完成当前输出特征图的处理后,所述多核心处理模块再执行新的输出特征图处理。
根据本公开的处理系统,所述神经网络处理系统在执行一维运算时,将同一输入分别发送至所述多个核心处理模块,所述多个核心处理模块分别处理不同的输出神经元,所述多个核心处理模块均分别完成当前输出神经元的处理后,所述多核心处理模块再执行新的输入的处理。
根据本公开的处理系统,所述多核心处理模块的多个核心处理模块之间为同构设计或异构设计。
根据本公开的另一个方面,提供了一种神经网络的处理方法,所述方法包括:
片内地址索引模块根据输入的索引映射至正确的存储地址;
根据所述存储地址从片上存储介质中获取输入数据;
将所述输入数据发送至多核心处理模块或所述ALU模块;
所述多核心处理模块执行神经网络运算中的向量乘加操作,所述ALU模块根据所述多核心处理模块的处理结果或者从所述从片上存储介质中获取的输入数据执行所述多核心处理模块无法完成的非线性运算;
将处理过程中产生的数据缓存至所述片上存储介质。
根据本公开的处理方法,所述方法还包括:将同一输入神经元分别发送至所述多个核心处理模块,将不同的输入权值分配至不同的核心处理模块,所述多个核心处理模块分别将所述输入神经元和输入权值进行向量内积操作后得到不同的输出神经元。
本公开针对神经网络处理系统的核心处理部分通过提升片上核心处理模块的数目从而提升神经网络算法中的核心运算部分处理速度,使得加速器获得更高的性能。核心处理指的是神经网络算法中占据大部分处理时间的向量乘加操作。从而本公开能够提升神经网络处理系统的运算速度,使得神经网络处理系统性能更高,更加高效。
附图说明
图1是本公开神经网络的处理系统的一种实施例的结构框图;
图2是本公开神经网络的处理系统的另一实施例的结构框图;
图3是本公开一种实施例中神经网络划分的示意图;
图4是本公开另一实施例中神经网络划分的示意图;
图5是本公开又一实施例中神经网络划分的示意图;
图6是本公开神经网络的处理方法的流程图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开作进一步的详细说明。
需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号。附图中未绘示或描述的实现方式,为所属技术领域中普通技术人员所知的形式。另外,虽然本文可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应的值。此外,以下实施例中提到的方向用语,例如“上”、“下”、“前”、“后”、“左”、“右”等,仅是参考附图的方向。因此,使用的方向用语是用来说明并非用来限制本公开。
如图1所示,本公开提供了一种神经网络的处理系统100,包括至少一片上存储介质10、至少一片内地址索引模块20、多核心处理模块30以及至少一ALU(Arithmetic LogicUnit,算数逻辑单元)模块40。多核心处理模块30包括多个核心处理模块31。其中片内地址索引模块20与片上存储介质10连接,片内地址索引模块20、多核心处理模块30以及ALU模块40分别相互连接。多核心处理模块30用于执行神经网络运算中的向量乘加操作,ALU模块40用于从多核心处理模块30或片上存储介质10获取输入数据执行多核心处理模块30无法完成的非线性运算,在本实施例中,多个核心处理模块31共享片上存储介质10以及ALU模块40。
片上存储介质10,用于存储神经网络处理系统外部传来的数据或用于存储处理过程中产生的数据。该处理过程中产生的数据包括处理过程中产生的处理结果或中间结果。这些结果可能来自加速器的片内核心运算模块,也可能来自其他运算部件,如本公开中ALU模块40。该片上存储介质10可以是静态随机存储器(Static Random Access Memory,SRAM),动态随机存储器(Dynamic Random Access Memory,DRAM),增强动态随机存取存储器(Enhanced Dynamic Random Access Memory,e-DRAM),寄存器堆(Register file,RF)等常见存储介质,也可以是新型的存储器件,如非易失存储器(Non-Volatile Memory,NVM)或者3D存储器件等等。
片内地址索引模块20,用于在执行运算时候根据输入的索引映射至正确的存储地址以将正确的数据送至多核心处理模块30进行处理。从而使得数据和片上存储介质可以正确的交互。这里的地址映射过程包括直接映射,算术变换等。该索引模块可以通过硬件电路(包括但不限于FPGA、CGRA、专用集成电路ASIC、模拟电路和忆阻器等)实现。
多核心处理模块30包括多个核心处理模块31,用于执行神经网络运算中的向量乘加操作。具体的,多核心处理模块30完成神经网络算法中的大部分运算,均为线性运算,即乘加操作。每个核心处理模块31的结构可以多种,例如一维PE(processing element,处理单元)实现方式,二维PE或者多维实现方式。单个核心处理模块31本身不局限于特定实施原则,包括不同的实现方法,如systolic方案,矩阵向量乘加操作符。且多核心处理模块30的多个核心处理模块31之间可以为同构设计或异构设计。该处理模块可以通过硬件电路(包括但不限于FPGA、CGRA、专用集成电路ASIC、模拟电路和忆阻器等)实现。
ALU模块40,用于从多核心处理模块30或片上存储介质获取输入数据执行核心处理模块无法完成的非线性运算。该模块可以通过硬件电路(包括但不限于FPGA、CGRA、专用集成电路ASIC、模拟电路和忆阻器等)实现。在本公开中,多核心处理模块30、ALU模块40与片上存储介质10的数据通路包括但不局限于H-TREE,或者FAT-TREE等互联技术。
在本公开中,多个核心处理模块31共同复用部分输入以减少带宽需求,所述神经网络的处理系统100进行处理时,将同一输入神经元分别发送至多核心处理模块30的多个核心处理模块31,而将不同的输入权值分配至不同的核心处理模块31,多个核心处理模块31分别将输入神经元和输入权值进行向量内积(乘加和)操作后得到不同的输出神经元。不同的输出神经元对应不同的权值,也即对于处理不同的输出神经元,输入神经元是相同的,权值则不同。在本公开中,权值大部分情况下不可被多个核心复用,然而在某些情况下,如多个核心共同处理同一个特征图时,权值也可以被复用。
本公开针对神经网络处理系统的核心处理部分通过提升片上核心处理模块的数目从而提升神经网络算法中的核心运算部分处理速度,使得加速器获得更高的性能。核心处理指的是神经网络算法中占据大部分处理时间的向量乘加操作。从而本公开能够提升神经网络处理系统的运算速度,使得神经网络处理系统性能更高,更加高效。
图2是本公开一种神经网络的处理系统的另一实施例的结构框图,其与图1中神经网络的处理系统的区别是,图1中神经网络的处理系统是采用松耦合设计,而图2中神经网络的处理系统采用紧耦合设计。在图2中,神经网络的处理系统200包括多个片上存储介质201,多个片内地址索引模块202,多个核心处理模块203以及多个ALU模块204,其中每个核心处理模块203具有单独的输入接口和输入结构,其中ALU模块204也被划分可以存在于每个核心中。
在图1中,多个核心处理模块31只完成特定的核心操作,本身不具有更多的功能,多核处理核心共享片上存储介质10和ALU模块40。与之相比,在图2的紧耦合设计中,每个核心处理模块203具有自己独立的片上存储介质201和ALU模块204。在图1所示的松耦合设计中多个核心可以协同处理,更易实现更高的性能需求,然而每个核缺少灵活性;在如图2所示的紧耦合设计中每个核心具有一定的灵活性,然而由于每个核的独立性也使得多核协同的复杂度更高,使得控制的复杂度增加。松耦合多适用多核同构的设计,紧耦合则多使用于多核异构的设计。
在本公开中,神经网络可以根据多核处理模式设计进行神经网络的划分,其中包括从输入神经元进行划分,输出神经元划分和权值连接进行划分。神经网络的划分是对于神经网络处理模式的分解,并不是将神经网络划分成为独立的子网,也即划分是算法层面的划分,是软件或者编译器完成的操作,其目的是将处理划分成为可以在多个核心处理的多个部分。
图3是本公开一种实施例中神经网络划分的示意图;图4是本公开另一实施例中神经网络划分的示意图;图5是本公开又一实施例中神经网络划分的示意图。
在神经网络的处理中,卷积层是按照特征图进行组织,也即输入是多个图,输出是多个图。在图3中,对于二维或者多维运算,从输出角度可按照每个核处理一层输出特征图进行神经网络划分。图3中包括输入特征图1、输入特征图2、核心处理模块1、核心处理模块2、输出特征图1、输入特征图2,每个特征图为二维矩阵。在进行处理时,将输入特征图1、2分别发送至核心处理模块1、2,核心处理模块1处理输出特征图1,核心处理模块处理输出特征图2,核心处理模块1和核心处理模块2分别处理一层输出特征图。也即,在进行二维或多维处理时,将输入特征图分别发送至多个核心处理模块,多个核心处理模块分别处理一层输出特征图。多个核心处理模块均分别完成当前输出特征图的处理后,多核心处理模块再执行新的输出特征图处理,也即只有当所有的核完成当前的输出特征图处理后才会进行新的特征图处理。
在实际应用中,输入特征图、核心处理模块、输出处理模块均可以有多个。下面以2个核(核#1、核#2)、4个输出特征图(输出特征图#1、#2、#3、#4)、4个输入特征图(输入特征图#1、#2、#3、#4)为例说明多核心处理模块的处理方式:处理开始后,核#1负责处理输出特征图#1,核#2负责处理输出特征图#2,输入特征图#1被送入核#1和核#2(也即共享输入特征图#1),同时相应的权值也被送入核#1和核#2进行处理;当输入特征图#1处理完成后,输入特征图#2被从片上存储读取,送入核#1和核#2进行处理(同样读取权值);当核#1和核#2完成输出特征图#1和#2的处理后,核#1和核#2则开始处理输出特征图#3和#4,也即重复以上的操作过程。
如图4所示,对于二维或者多维运算,从输出角度也可按照每个核处理一层输出特征图进行神经网络划分。不同的核负责处理同一特征图的不同区域,而输入相应的则被送至每一个核中,权值则根据相应的连接进行读取,这里权值有可能存在复用,如卷积神经网中的卷积层。只有当所有的核完成当前的输出特征图处理后才会进行新的特征图处理。在图4中,输入特征图1、和输入特征图2均送入核心处理模块1和核心处理模块2,核心处理模块1负责处理输出特征图1的区域1和输出特征图2的区域1,核心处理模块2负责处理输出特征图1的区域2和输出特征图2的区域2。从而,在执行二维或者多维运算时,将输入特征图分别发送至多个核心处理模块,多个核心处理模块分别处理同一输出特征图的不同区域,多个核心处理模块均分别完成当前输出特征图的处理后,多核心处理模块再执行新的输出特征图处理。
如图5所示,对于一维运算,从输出角度按照每个核心处理模块处理输出的一部分进行神经网络划分。每个核负责处理不同的神经元,这里的划分方式则可以多种多样,并不局限于图5所示的划分方法。输入被送至每一个核心处理模块中,权值则根据相应的连接进行读取,只有当所有的核心处理模块完成当前的输出特征图处理后才会进行新的特征图处理。也即神经网络处理系统在执行一维运算时,将同一输入分别发送至多个核心处理模块,多个核心处理模块分别处理不同的输出神经元,多个核心处理模块均分别完成当前输出神经元的处理后,再执行新的输入的处理。
神经网络划分包括从输入神经元进行划分,输出神经元划分和权值连接进行划分。本公开按照输出神经元进行划分,输出神经元需要多个甚至全部输入神经元参与处理,而输出神经元的处理多数情况下彼此独立。按照输出神经元划分可以复用输入神经元,降低带宽需求,从而使得加速器更加高效。
图6是本公开一种神经网络的处理方法的流程图,该方法包括:
步骤S601,片内地址索引模块根据输入的索引映射至正确的存储地址;
步骤S602,根据存储地址从片上存储介质中获取输入数据;
步骤S603,将输入数据发送至多核心处理模块或所述ALU模块;
步骤S604,多核心处理模块执行神经网络运算中的向量乘加操作,ALU模块根据多核心处理模块的处理结果或者从片上存储介质中获取的输入数据执行多核心处理模块无法完成的非线性运算;
步骤S605,将处理过程中产生的数据缓存至片上存储介质。
优选的是,所述方法还包括:将同一输入神经元分别发送至多个核心处理模块,将不同的输入权值分配至不同的核心处理模块,多个核心处理模块分别将输入神经元和输入权值进行向量内积操作后得到不同的输出神经元。
综上所述,本公开针对神经网络处理系统的核心处理部分通过提升片上核心处理模块的数目从而提升神经网络算法中的核心运算部分处理速度,使得加速器获得更高的性能。核心处理指的是神经网络算法中占据大部分处理时间的向量乘加操作。从而本公开能够提升神经网络处理系统的运算速度,使得神经网络处理系统性能更高,更加高效。
以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (14)

1.一种人工神经网络的处理系统,包括:多核心处理模块,其包括多个核心处理模块;其中,该多个核心处理模块共同复用输入神经元和/或权值。
2.根据权利要求1所述的处理系统,其中,所述神经网络的处理系统进行处理时,将同一输入神经元分别发送至所述多个核心处理模块,将不同的输入权值分配至不同的核心处理模块,所述多个核心处理模块分别将所述输入神经元和输入权值进行向量内积操作后得到不同的输出神经元。
3.根据权利要求1所述的处理系统,其中,所述多个核心处理模块共同处理同一特征图时,共同复用权值。
4.根据权利要求1至3中任一项所述的处理系统,其中,所述多核心处理模块用于执行神经网络运算中的向量乘加操作。
5.根据权利要求1至4中任一项所述的处理系统,还包括:
至少一片上存储介质,用于存储由神经网络处理系统外部传来的数据或用于存储处理过程中产生的数据;以及
至少一ALU模块,用于从所述多核心处理模块或所述片上存储介质获取输入数据执行所述多核心处理模块无法完成的非线性运算;
其中,所述多个核心处理模块共享所述片上存储介质以及ALU模块,或者所述多个核心处理模块具有独立的所述片上存储介质以及ALU模块。
6.根据权利要求5所述的处理系统,还包括:
至少一片内地址索引模块,用于执行运算时根据输入的索引映射至正确的存储地址。
7.根据权利要求5或6所述的处理系统,其中,所述处理过程中产生的数据包括处理结果或中间结算结果。
8.根据权利要求1至7中任一项所述的处理系统,其中,所述神经网络根据多核处理模式进行神经网络划分,包括:从输入神经元划分、输出神经元划分和权值连接划分。
9.根据权利要求8所述的处理系统,其中,
所述神经网络的处理系统在执行二维或者多维运算时,将输入特征图分别发送至所述多个核心处理模块,所述多个核心处理模块分别处理一层输出特征图;或
所述神经网络的处理系统在执行二维或者多维运算时,将输入特征图分别发送至所述多个核心处理模块,所述多个核心处理模块分别处理同一输出特征图的不同区域;或
所述神经网络的处理系统在执行一维运算时,将同一输入分别发送至所述多个核心处理模块,所述多个核心处理模块分别处理不同的输出神经元,所述多个核心处理模块均分别完成当前输出神经元的处理后,所述多核心处理模块再执行新的输入的处理。
10.根据权利要求9所述的处理系统,其中,所述多个核心处理模块均分别完成当前输出特征图的处理后,所述多核心处理模块再执行新的输出特征图处理。
11.根据权利要求1至10中任一项所述的处理系统,其中,所述多核心处理模块的多个核心处理模块之间为同构设计或异构设计。
12.一种人工神经网络的处理方法,包括:
将同一输入神经元分别发送至多个核心处理模块,将不同的输入权值分配至不同的核心处理模块;以及
多个核心处理模块分别将输入神经元和输入权值进行向量内积操作后得到不同的输出神经元。
13.根据权利要求12所述的处理方法,还包括:
将输入数据发送至多个核心处理模块,多个核心处理模块执行神经网络运算中的向量乘加操作;以及
将输入数据发送至ALU模块,ALU模块根据所述多个核心处理模块的处理结果或者获取的输入数据执行所述多个核心处理模块无法完成的非线性运算。
14.根据权利要求12所述的处理方法,其中,
在将输入数据发送至多个核心处理模块或ALU模块之前,还包括:
片内地址索引模块根据输入的索引映射至正确的存储地址;
根据所述存储地址从片上存储介质中获取输入数据;
在多个核心处理模块执行向量乘加操作及ALU模块执行非线性运算之后,还包括:
将处理过程中产生的数据缓存至所述片上存储介质。
CN201810249506.4A 2016-04-18 2016-04-18 包括多个核心处理模块的人工神经网络的处理系统及方法 Active CN108510064B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810249506.4A CN108510064B (zh) 2016-04-18 2016-04-18 包括多个核心处理模块的人工神经网络的处理系统及方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810249506.4A CN108510064B (zh) 2016-04-18 2016-04-18 包括多个核心处理模块的人工神经网络的处理系统及方法
CN201610240416.XA CN105930902B (zh) 2016-04-18 2016-04-18 一种神经网络的处理方法、系统

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201610240416.XA Division CN105930902B (zh) 2016-04-18 2016-04-18 一种神经网络的处理方法、系统

Publications (2)

Publication Number Publication Date
CN108510064A true CN108510064A (zh) 2018-09-07
CN108510064B CN108510064B (zh) 2021-12-10

Family

ID=56838374

Family Applications (4)

Application Number Title Priority Date Filing Date
CN201810249510.0A Active CN108416437B (zh) 2016-04-18 2016-04-18 用于乘加运算的人工神经网络的处理系统及方法
CN201810249470.XA Active CN108416436B (zh) 2016-04-18 2016-04-18 使用多核心处理模块进行神经网络划分的方法及其系统
CN201810249506.4A Active CN108510064B (zh) 2016-04-18 2016-04-18 包括多个核心处理模块的人工神经网络的处理系统及方法
CN201610240416.XA Active CN105930902B (zh) 2016-04-18 2016-04-18 一种神经网络的处理方法、系统

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN201810249510.0A Active CN108416437B (zh) 2016-04-18 2016-04-18 用于乘加运算的人工神经网络的处理系统及方法
CN201810249470.XA Active CN108416436B (zh) 2016-04-18 2016-04-18 使用多核心处理模块进行神经网络划分的方法及其系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201610240416.XA Active CN105930902B (zh) 2016-04-18 2016-04-18 一种神经网络的处理方法、系统

Country Status (3)

Country Link
US (1) US11580367B2 (zh)
CN (4) CN108416437B (zh)
WO (1) WO2017181562A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020063940A1 (zh) * 2018-09-29 2020-04-02 上海寒武纪信息科技有限公司 计算装置及相关产品
CN111339027A (zh) * 2020-02-25 2020-06-26 中国科学院苏州纳米技术与纳米仿生研究所 可重构的人工智能核心与异构多核芯片的自动设计方法

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018058452A1 (zh) * 2016-09-29 2018-04-05 北京中科寒武纪科技有限公司 一种执行人工神经网络运算的装置和方法
JP2018060268A (ja) * 2016-10-03 2018-04-12 株式会社日立製作所 認識装置および学習システム
US10261786B2 (en) 2017-03-09 2019-04-16 Google Llc Vector processing unit
CN107086910B (zh) 2017-03-24 2018-08-10 中国科学院计算技术研究所 一种针对神经网络处理的权重加解密方法和系统
US11544545B2 (en) 2017-04-04 2023-01-03 Hailo Technologies Ltd. Structured activation based sparsity in an artificial neural network
US11551028B2 (en) 2017-04-04 2023-01-10 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network
US10387298B2 (en) 2017-04-04 2019-08-20 Hailo Technologies Ltd Artificial neural network incorporating emphasis and focus techniques
US11615297B2 (en) 2017-04-04 2023-03-28 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network compiler
US11238334B2 (en) 2017-04-04 2022-02-01 Hailo Technologies Ltd. System and method of input alignment for efficient vector operations in an artificial neural network
CN109344965A (zh) * 2017-04-06 2019-02-15 上海寒武纪信息科技有限公司 运算装置和方法
US11551067B2 (en) 2017-04-06 2023-01-10 Shanghai Cambricon Information Technology Co., Ltd Neural network processor and neural network computation method
CN108694441B (zh) * 2017-04-07 2022-08-09 上海寒武纪信息科技有限公司 一种网络处理器和网络运算方法
CN108734288B (zh) * 2017-04-21 2021-01-29 上海寒武纪信息科技有限公司 一种运算方法及装置
CN107301456B (zh) * 2017-05-26 2020-05-12 中国人民解放军国防科学技术大学 基于向量处理器的深度神经网络多核加速实现方法
GB2568776B (en) 2017-08-11 2020-10-28 Google Llc Neural network accelerator with parameters resident on chip
EP3654208A1 (en) 2017-08-31 2020-05-20 Cambricon Technologies Corporation Limited Chip device and related products
CN109937410B (zh) * 2017-10-25 2021-02-23 华为技术有限公司 核心调度方法和终端
CN109522254B (zh) 2017-10-30 2022-04-12 上海寒武纪信息科技有限公司 运算装置及方法
WO2019114842A1 (zh) 2017-12-14 2019-06-20 北京中科寒武纪科技有限公司 一种集成电路芯片装置
CN109993292B (zh) * 2017-12-30 2020-08-04 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN108764466B (zh) * 2018-03-07 2022-02-11 东南大学 基于现场可编程门阵列的卷积神经网络硬件及其加速方法
CN108509373A (zh) * 2018-03-19 2018-09-07 复旦大学 一种面向SoC软件研发的全系统模拟平台
CN109409510B (zh) * 2018-09-14 2022-12-23 深圳市中科元物芯科技有限公司 神经元电路、芯片、系统及其方法、存储介质
CN111078624B (zh) * 2018-10-18 2022-03-25 上海寒武纪信息科技有限公司 片上网络处理系统和片上网络数据处理方法
CN109542837B (zh) * 2018-11-30 2023-03-24 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
CN110705703B (zh) * 2019-10-16 2022-05-27 北京航空航天大学 基于脉动阵列的稀疏神经网络处理器
KR20210077348A (ko) * 2019-12-17 2021-06-25 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그 동작 방법
CN111695685B (zh) * 2020-05-12 2023-09-26 中国科学院计算技术研究所 一种面向图神经网络应用的片上存储系统及方法
US20210357730A1 (en) * 2020-05-12 2021-11-18 Alibaba Group Holding Limited Multi-size convolutional layer background
CN111767246B (zh) * 2020-06-09 2024-03-05 上海寒武纪信息科技有限公司 数据处理方法、相关设备及计算机可读介质
US11874900B2 (en) 2020-09-29 2024-01-16 Hailo Technologies Ltd. Cluster interlayer safety mechanism in an artificial neural network processor
US11263077B1 (en) 2020-09-29 2022-03-01 Hailo Technologies Ltd. Neural network intermediate results safety mechanism in an artificial neural network processor
US11237894B1 (en) 2020-09-29 2022-02-01 Hailo Technologies Ltd. Layer control unit instruction addressing safety mechanism in an artificial neural network processor
US11811421B2 (en) 2020-09-29 2023-11-07 Hailo Technologies Ltd. Weights safety mechanism in an artificial neural network processor
US11221929B1 (en) 2020-09-29 2022-01-11 Hailo Technologies Ltd. Data stream fault detection mechanism in an artificial neural network processor
US20220188492A1 (en) * 2020-12-10 2022-06-16 Memryx Incorporated Chiplet based artificial intelligence accelerators and configuration methods

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101639901A (zh) * 2009-09-03 2010-02-03 王连明 基于多核技术的前馈神经网络硬件实现方法
CN104346622A (zh) * 2013-07-31 2015-02-11 富士通株式会社 卷积神经网络分类器及其分类方法和训练方法
CN105095967A (zh) * 2015-07-16 2015-11-25 清华大学 一种多模态神经形态网络核
CN105488565A (zh) * 2015-11-17 2016-04-13 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
CN105512723B (zh) * 2016-01-20 2018-02-16 南京艾溪信息科技有限公司 一种用于稀疏连接的人工神经网络计算装置和方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974487A (en) * 1997-07-14 1999-10-26 Advanced Micro Devices, Inc. Data transfer network on a chip utilizing a mesh of rings topology
GB9902115D0 (en) * 1999-02-01 1999-03-24 Axeon Limited Neural networks
JP4243277B2 (ja) 2003-08-28 2009-03-25 株式会社日立超エル・エス・アイ・システムズ データ処理装置
US20100158005A1 (en) * 2008-12-23 2010-06-24 Suvhasis Mukhopadhyay System-On-a-Chip and Multi-Chip Systems Supporting Advanced Telecommunication Functions
US8718978B2 (en) * 2011-02-28 2014-05-06 Apple Inc. Performance logging framework
CN102314614B (zh) * 2011-10-24 2013-06-05 北京大学 一种基于类共享多核学习的图像语义分类方法
US9251116B2 (en) * 2011-11-30 2016-02-02 International Business Machines Corporation Direct interthread communication dataport pack/unpack and load/save
US9143325B2 (en) * 2012-12-14 2015-09-22 Microsoft Technology Licensing, Llc Masking with shared random bits
RU2579958C1 (ru) * 2014-12-25 2016-04-10 Федеральное государственное бюджетное образовательное учреждение высшего образования "Донской государственный технический университет" Искусственный нейрон
CN205139973U (zh) * 2015-10-26 2016-04-06 中国人民解放军军械工程学院 基于fpga器件构建的bp神经网络
CN105469143B (zh) * 2015-11-13 2017-12-19 清华大学 基于神经网络动态特征的片上网络资源映射方法
US10445099B2 (en) * 2016-04-19 2019-10-15 Xiaolin Wang Reconfigurable microprocessor hardware architecture

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101639901A (zh) * 2009-09-03 2010-02-03 王连明 基于多核技术的前馈神经网络硬件实现方法
CN104346622A (zh) * 2013-07-31 2015-02-11 富士通株式会社 卷积神经网络分类器及其分类方法和训练方法
CN105095967A (zh) * 2015-07-16 2015-11-25 清华大学 一种多模态神经形态网络核
CN105488565A (zh) * 2015-11-17 2016-04-13 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
CN105512723B (zh) * 2016-01-20 2018-02-16 南京艾溪信息科技有限公司 一种用于稀疏连接的人工神经网络计算装置和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
朱新召 等: "基于多核处理器的多层感知神经网络设计和实现", 《微电子学与计算机》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020063940A1 (zh) * 2018-09-29 2020-04-02 上海寒武纪信息科技有限公司 计算装置及相关产品
CN111339027A (zh) * 2020-02-25 2020-06-26 中国科学院苏州纳米技术与纳米仿生研究所 可重构的人工智能核心与异构多核芯片的自动设计方法
CN111339027B (zh) * 2020-02-25 2023-11-28 中国科学院苏州纳米技术与纳米仿生研究所 可重构的人工智能核心与异构多核芯片的自动设计方法

Also Published As

Publication number Publication date
US20190087716A1 (en) 2019-03-21
CN108416437A (zh) 2018-08-17
CN108416436B (zh) 2021-06-01
CN108416437B (zh) 2021-08-03
CN108416436A (zh) 2018-08-17
CN105930902B (zh) 2018-08-10
US11580367B2 (en) 2023-02-14
WO2017181562A1 (zh) 2017-10-26
CN108510064B (zh) 2021-12-10
CN105930902A (zh) 2016-09-07

Similar Documents

Publication Publication Date Title
CN105930902B (zh) 一种神经网络的处理方法、系统
CN207895435U (zh) 神经网络计算模组
US20190026626A1 (en) Neural network accelerator and operation method thereof
CN107301456B (zh) 基于向量处理器的深度神经网络多核加速实现方法
CN109102065B (zh) 一种基于PSoC的卷积神经网络加速器
CN107844832A (zh) 一种信息处理方法及相关产品
CN107886167A (zh) 神经网络运算装置及方法
CN107704267A (zh) 一种卷积神经网络运算指令及其方法
CN107315571A (zh) 一种用于执行全连接层神经网络正向运算的装置和方法
CN107341547A (zh) 一种用于执行卷积神经网络训练的装置和方法
TW202022644A (zh) 一種運算裝置和運算方法
CN107341542A (zh) 用于执行循环神经网络和lstm运算的装置和方法
CN107341541A (zh) 一种用于执行全连接层神经网络训练的装置和方法
CN107301453A (zh) 支持离散数据表示的人工神经网络正向运算装置和方法
CN109472356A (zh) 一种可重构神经网络算法的加速装置及方法
CN110033086A (zh) 用于神经网络卷积运算的硬件加速器
CN110163360A (zh) 一种计算装置及方法
CN110046705A (zh) 用于卷积神经网络的装置
CN108491924B (zh) 一种面向人工智能计算的神经网络数据串行流水处理装置
CN110276447A (zh) 一种计算装置及方法
CN110059805A (zh) 用于二值阵列张量处理器的方法
CN108320018A (zh) 一种人工神经网络运算的装置及方法
CN109359542A (zh) 基于神经网络的车辆损伤级别的确定方法及终端设备
CN110414672B (zh) 卷积运算方法、装置及系统
CN210721552U (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