CN111930668A - 运算装置、方法、多核智能处理器及多核异构智能处理器 - Google Patents

运算装置、方法、多核智能处理器及多核异构智能处理器 Download PDF

Info

Publication number
CN111930668A
CN111930668A CN202010770239.2A CN202010770239A CN111930668A CN 111930668 A CN111930668 A CN 111930668A CN 202010770239 A CN202010770239 A CN 202010770239A CN 111930668 A CN111930668 A CN 111930668A
Authority
CN
China
Prior art keywords
data
result
quantization
neuron
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
CN202010770239.2A
Other languages
English (en)
Other versions
CN111930668B (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 CN202010770239.2A priority Critical patent/CN111930668B/zh
Publication of CN111930668A publication Critical patent/CN111930668A/zh
Application granted granted Critical
Publication of CN111930668B publication Critical patent/CN111930668B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting
    • 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/061Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit
    • 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)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • Software Systems (AREA)
  • Mathematical Optimization (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Pure & Applied Mathematics (AREA)
  • Neurology (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Nonlinear Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System (AREA)
  • Complex Calculations (AREA)

Abstract

本公开提供了一种运算装置、方法、多核智能处理器及异构多核智能处理器,包括:存储单元、控制器单元和运算单元;所述存储单元,用于存储待运算数据;所述控制器单元,用于接收运算指令,并解析所述运算指令得到所述运算指令对应的待运算数据的地址和运算操作;所述运算单元,用于访问所述待运算数据的地址,获取所述待运算数据,基于所述待运算数据执行所述运算操作,得到运算结果,以及,对所述运算结果进行有限值量化,得到输出结果。可提高运算速度,降低功耗。

Description

运算装置、方法、多核智能处理器及多核异构智能处理器
技术领域
本公开涉及数据处理技术领域,尤其涉及一种运算装置、方法、多核智能处理器及异构多核智能处理器。
背景技术
数据处理是神经网络中进行的必要步骤,而神经网络运算中通常存在大量的数据,现有运算装置在进行神经网络的数据运算时采用的运算装置速度较慢,运算装置的功耗和能耗开销较大。
发明内容
本公开的主要目的在于提供一种运算装置、方法、多核智能处理器及异构多核智能处理器,可提高运算速度,降低功耗。
为实现上述目的,本公开实施例第一方面提供一种运算装置,包括:
存储单元、控制器单元和运算单元;
所述存储单元,用于存储待运算数据;
所述控制器单元,用于接收运算指令,并解析所述运算指令得到所述运算指令对应的待运算数据的地址和运算操作;
所述运算单元,用于访问所述待运算数据的地址,获取所述待运算数据,基于所述待运算数据执行所述运算操作,得到运算结果,以及,对所述运算结果进行有限值量化,得到输出结果。
可选的,所述待运算数据包括权值数据和进行有限值量化后的神经元数据,所述运算结果包括神经元数据,所述输出结果包括进行有限值量化后的所述神经元数据,所述运算操作包括神经网络运算操作。
可选的,所述运算单元包括量化表存储子单元,用于存储量化表,所述量化表中存储神经元数据进行有限值量化前后的映射关系。
可选的,所述运算单元还包括:
运算子单元和量化子单元;
所述运算子单元,用于基于所述神经元数据和权值数据执行神经网络运算,得到所述神经元数据;
所述量化子单元,用于根据所述量化表存储子单元中存储的神经元数据进行有限值量化前后的映射关系,查找所述神经元数据进行有限值量化后的数据,得到所述输出结果。
可选的,所述运算子单元包括:
向量变换器,用于对神经元数据进行向量变换,得到变换后的向量数据;
寄存器,用于存储中间结果,所述中间结果包括部分和数据或加法结果数据;
向量加法器,用于将输入的权值数据与所述部分和数据对应相加,得到所述加法结果数据;
向量乘法器,用于将所述加法结果数据和第一数据对应相乘,得到乘法结果数据;
累加子单元,用于对所述乘法结果数据进行累加,得到所述运算结果;
第一选择器,用于根据所述变换后的向量数据,从所述寄存器中选择所述部分和数据,并将所述部分和数据发送给向量加法器;
第二选择器,用于当满足预设条件时,从所述寄存器中选择所述加法结果数据发送给所述向量乘法器。
可选的,所述运算操作还包括数据复用操作;
所述数据复用操作,用于按照预设规则复用所述神经元数据和/或权值数据。
可选的,当所述运算操作包括数据复用操作时,所述第一选择器,具体用于根据所述变换后的向量数据落在的有限值量化种类的具体类别,以及当前的运算操作循环的位置,选择所述中间结果。
可选的,所述累加单元为加法树。
可选的,所述预设条件包括所述向量加法器的加法次数达到预设次数。
可选的,所述预设次数为所述运算操作指定的次数。
可选的,所述第一数据为所述量化表存储子单元中所述神经元数据进行有限值量化后的数据。
可选的,所述控制器单元,还用于接收并解析写量化表指令,得到写量化表操作;
所述量化表存储子单元,用于执行所述写量化表操作,写入并存储所述神经元数据进行有限值量化前后的映射关系。
本公开实施例第二方面提供一种运算方法,所述运算方法由运算装置执行,所述运算装置包括:存储单元、控制器单元和运算单元,所述存储单元包括待运算数据,所述运算方法包括:
所述控制器单元接收运算指令,并解析所述运算指令得到所述运算指令对应的待运算数据的地址和运算操作;
所述运算单元访问所述待运算数据的地址,获取所述待运算数据,基于所述待运算数据执行所述运算操作,得到运算结果,以及,对所述运算结果进行有限值量化,得到输出结果。
本公开实施例第三方面提供了一种多核智能处理器,所述多核智能处理器中至少一个处理核包括如本公开实施例第一方面所述的运算装置。
本公开实施例第四方面提供了一种异构多核智能处理器,包括:
通用处理器,和/或,至少一个如本公开实施例第一方面所述的多核智能处理器;
所述通用处理器,用于生成程序指令;
所述多核智能处理器,用于接收所述程序指令,以根据所述程序指令完成运算。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开一实施例提供的运算装置的结构示意图;
图2为本公开一实施例提供的运算子单元的结构示意图;
图3为本公开一实施例提供的运算装置的结构示意图;
图4为本公开一实施例提供的运算方法的流程示意图;
图5为本公开一实施例提供的异构多核智能处理器的结构示意图;
图6为本公开一实施例提供的异构多核智能处理器的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开的说明书和权利要求书及所述附图中的术语″第一″、″第二″、″第三″和″第四″等是用于区别不同对象,而不是用于描述特定顺序。此外,术语”包括″和″具有″以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本公开的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
请参阅图1,图1为本公开一实施例提供的运算装置的结构示意图,该计算装置包括存储单元101、控制器单元102和运算单元103。其中,存储单元101与运算单元103连接,控制器102与运算单元103连接,控制器102与存储单元101连接。
所述存储单元101,用于存储待运算数据;
所述控制器单元102,用于接收运算指令,并解析所述运算指令得到所述运算指令对应的待运算数据的地址和运算操作;
所述运算单元103,用于访问所述待运算数据的地址,获取所述待运算数据,基于所述待运算数据执行所述运算操作,得到运算结果,以及,对所述运算结果进行有限值量化,得到输出结果。
上述存储单元101除了存储待运算数据之外,还可以用于存储运算指令和输出结果。其中,待运算数据即运算单元103的输入数据,在神经网络算法大多的运算中,待运算数据包括至少一个输入神经元数据和至少一个权值数据。更多的,针对数据种类的不同,可以将不同种类的数据存储在不同的存储子单元内。示例性的,针对神经元数据,可以将其存储在向量存储子单元内,针对权值数据可以将其存储在矩阵存储子单元内,针对运算指令,可以将其存储在指令存储子单元内。以上仅为一种示意性划分示例,本公开对此并不做出限制。
上述控制器单元102中的运算指令包括操作码和操作域,其中,操作码用于指示该运算指令的功能,控制器单元102通过识别该操作码确认进行运算操作,操作域用于指示该运算操作的数据信息,其中数据信息可以是立即数或寄存器号,例如要获取一个待运算数据时,根据寄存器号可以在相应的寄存器中获取待运算数据的数据地址等相关信息,再根据该相关信息在存储单元101中获取待运算数据。示例性的,上述控制器单元102中由运算指令解析得到的运算操作可以包括神经元数据复用操作、权值数据复用操作、写量化表操作等。获取到的待运算数据,例如神经元数据和/或权值数据,又如写量化表时待写入信息的片上地址和片下地址等。
上述运算单元103中,有限值量化是指将神经元数据量化为有限种情况,这种有限值量化可以降低神经元数据存储的位宽,降低神经网络计算时的开销。本公开提供的运算单元103可以适配于该有限值量化。对于输出的运算结果进行有限值量化。需要说明的是,该运算单元103为定制的硬件电路。
在一种可选方案中,上述运算单元103可以从预置的数据输入缓存中获取待运算数据,该待运算数据具体可以通过数据输入单元输入。该数据输入单元具体可以为一个或多个数据I/O接口或I/O引脚。在一种可选方案中,上述该数据输入单元获取待运算数据的方式具体还可以通过DMA(Direct Memory Access,直接存储器访问)得到。以从片下空间传递数据到片上空间为例,根据指令获取片下数据地址和传输数据大小,DMA接收到来自片下数据地址的指定传输数据大小的待运算数据,并将其复制到指令指定的片上存储空间中,即数据输入缓存的指定位置中。这里,数据输入缓存可以是存储单元101,也可以是其一部分,也可以是另一块存储空间,在此不做限定。
在一种可选方案中,上述运算单元103可以将输出结果暂时存储于预置的数据缓存单元,然后通过数据输出单元将数据输出。该数据输出单元具体可以为一个或多个数据I/0接口或I/O引脚。在一种可选方案中,上述通过数据输出单元输出数据还可以通过DMA(Direct Memory Access,直接存储器访问)进行。以从片上空间传递数据到片下空间为例,根据指令获取片上数据地址和传输数据大小,DMA接收到来自片上数据地址(即数据输出缓存中的指定位置)的指定传输数据大小的待运算数据,并将其复制到指令指定的片下存储空间中。这里,数据输出缓存可以是存储单元101,也可以是其一部分,也可以是另一块存储空间,在此不做限定。
在本公开其中一个实施例中,待运算数据包括权值数据和进行有限值量化后的神经元数据,所述运算结果包括神经元数据,所述输出结果包括进行有限值量化后的神经元数据,所述运算操作包括神经网络运算操作。其中,该进行有限值量化后的神经元数据是该运算指令的计算结果。以下,以神经网络运算为例进行示意性说明,但应理解的是,本公开不局限于神经网络运算。
在一可选的实施例中,所述运算单元103包括量化表存储子单元1031,用于存储量化表,所述量化表中存储神经元数据进行有限值量化前后的映射关系。其中,该量化表存储子单元1031可以存储神经网络中神经元数据进行有限值量化前后的映射关系。
所述运算单元103还包括:运算子单元1032和量化子单元1033。
所述运算子单元1032,用于基于所述神经元数据和权值数据执行神经网络运算,得到所述神经元数据;所述量化子单元1033,用于根据所述量化表存储子单元中存储的神经元数据进行有限值量化前后的映射关系,查找所述神经元数据进行有限值量化后的数据,得到所述输出结果。
可理解的,查找所述神经元数据进行有限值量化后的数据,其神经元数据为神经网络中当前层的输出神经元数据,该输出神经元数据也即与该当前层相邻的下一层的输入神经元数据。
在上述实施例中,在运算单元103完成神经网络运算得到神经元数据之后,可以通过内置于运算单元103内部的量化表存储子单元,查找该神经元数据进行有限值量化后的数据,将该进行有限值量化后的数据通过数据输出单元输出。使得本公开的运算装置可以适配于有限值量化。
在一可选的实施例中,请参阅图2,所述运算子单元1032包括:
向量变换器201,用于对神经元数据进行向量变换,得到变换后的向量数据;
寄存器202,用于存储中间结果,所述中间结果包括部分和数据或加法结果数据;
向量加法器203,用于将输入的权值数据与所述部分和数据对应相加,得到所述加法结果数据;
向量乘法器204,用于将所述加法结果数据和第一数据对应相乘,得到乘法结果数据;
累加子单元205,用于对所述乘法结果数据进行累加,得到所述运算结果。
第一选择器206,用于根据所述变换后的向量数据,从所述寄存器202中选择所述部分和数据,并将所述部分和数据发送给向量加法器203;
第二选择器207,用于当满足预设条件时,从所述寄存器202中选择所述加法结果数据发送给所述向量乘法器204。
其中,向量变换器201对神经元数据进行向量变换包括对神经元数据进行向量元素的位置替换等向量操作。
其中,请参阅图3,在运算单元103内部,存储单元101与向量变换器201和向量加法单元203连接,向量变换器201与第一选择器206连接,向量加法器203与寄存器202连接,寄存器202与第一选择器206连接,第一选择器206与向量加法器203连接,寄存器202还与第二选择器207连接,第二选择器207连接向量乘法器204,向量乘法器204连接累加子单元205,累加子单元205连接量化子单元1033,量化表存储子单元1031连接向量乘法器204和量化子单元1033。
在一可选的实施例中,运算操作还包括数据复用操作,所述数据复用操作,用于按照预设规则复用所述神经元数据和/或权值数据。
以下以神经元数据进行有限值量化包括M种情况,对本公开提供的运算子单元的执行流程进行说明。待运算数据中进行有限值量化后的M个神经元数据会经过向量变换器得到变换后的神经元的M个向量数据,第一选择器206根据每个向量数据从寄存器202中对应选择1组部分和数据,并将每个部分和数据发送给向量加法器203,同时在每次发送部分和数据时待运算数据中的权值数据也发送给向量加法器203,向量加法器203将每个部分和数据分别与该权值数据进行相加,得到M个加法结果数据,然后该M个加法结果数据写回到寄存器202中已取出的M个部分和数据的位置。此时向量加法器203的加法次数达到运算操作指定的次数,第二选择器207从寄存器202中选择该M个加法结果数据发送给向量乘法器204,向量乘法器204将每个加法结果数据分别与第一数据对应相乘,得到M个乘法结果数据,再将M个乘法结果数据发送到累加子单元205进行累加,得到一个运算结果,该运算结果即为有限值量化后的神经元数据与权值数据进行乘运算得到的神经元数据。
可选的,第一选择器206具体用于根据变换后的向量数据落在的有限值量化种类的具体类别,以及当前的运算操作循环的位置,选择所述部分和数据。具体的,令M为神经元数据进行有限值量化后的种类,RT为复用操作的复用次数,则寄存器202中存储M*RT个中间结果,第一选择器206根据当前进行有限值量化后的神经元数据落在的M种量化的具体类别,以及当前的复用操作循环的位置,从M*RT个中间结果中选择RT个数据发送到向量加法器203。可理解的,当复用次数RT为1时,则寄存器202中存储有M个中间结果,第一选择器206根据神经元数据落在的M种量化的具体类别,以及当前的复用操作循环的位置,从M个中间结果中选择1个部分和数据发送到向量加法器203。
可选的,累加子单元205为加法树,可以用于提高累加效率。
可选的,第二选择器207,用于当满足预设条件时,从所述寄存器202中选择所述加法结果数据发送给所述向量乘法器204。该预设条件包括向量加法器203的加法次数达到预设次数。进一步的,该预设次数为所述运算操作指定的次数。具体的,该运算操作指定的次数为一个循环计算的次数,其与神经网络中卷积层或者全连接层的计算规模有关。
可选的,所述第一数据为所述量化表存储子单元中所述神经元数据进行有限值量化后的数据。可理解的,神经元数据进行有限值量化后会产生至少一个可能的结果数据,该第一数据可以是该至少一个可能的结果数据中的一个,也可以是该至少一个可能的结果数据中部分或者所有可能的结果数据,本公开对此不做限定。
可选的,所述控制器单元102,还用于接收并解析写量化表指令,得到写量化表操作;所述量化表存储子单元,用于执行所述写量化表操作,写入并存储所述神经元数据进行有限值量化前后的映射关系。
可理解的,上述写量化表指令同样包括操作码和操作域,其中,操作码用于指示写量化表指令的功能,即写入神经元数据进行有限值量化前后的映射关系至量化表存储子单元1031。控制器单元102通过识别该操作码确认进行写量化表操作,操作域用于指示写量化表操作的数据信息,其中数据信息可以是神经元数据、进行有限值量化后的神经元数据、神经元数据进行有限值量化前后的映射关系的参数的立即数或寄存器号。
可理解的,神经元数据进行有限值量化前后的映射关系包括神经元数据、映射关系参数和进行有限值量化后的神经元数据。写入并存储神经元数据进行有限值量化前后的映射关系可以将神经元数据和进行有限值量化后的神经元数据以组的形式进行存储,例如,I1、I2为神经元数据,I1进行有限值量化后的神经元数据为Ia,I2进行有限值量化后的神经元数据为Ib,则将其以I1-Ia,I2-Ib的形式等等,将映射关系参数单独存储;也可以将神经元数据、映射关系参数和进行有限值量化后的神经元数据以组的形式进行存储。以映射关系参数为T(x)或G(x)为例,例如,I1-T(x)-Ia、I2-T(x)-Ib,或,I1-G(x)-Ia,I2-G(x)-Ib。可理解的,在同一训练完毕的神经网络中,神经元数据可以采用同一映射关系参数进行有限值量化。其中,本公开不对映射关系参数的类型、个数以及形式进行限定,该映射关系参数可以是一个或多个数值系数、也可以是一个或多个映射函数、亦可以为其组合形式。例如,映射关系参数可以为上述示例的T(x)或者G(x),也可以是映射关系参数包括exp(x)函数、预设函数T(x)和可选常数L,组成一个形式为G(x)=exp(1/上*T(x))的映射关系。
请参阅图4,本公开实施例还提供了一种运算方法,该运算方法由图1所示的运算装置执行,所述运算装置包括:存储单元、控制器单元和运算单元,所述存储单元包括待运算数据,所述方法包括如下步骤:
S401、控制器单元接收运算指令,并解析所述运算指令得到所述运算指令对应的待运算数据的地址和运算操作;
S402、运算单元访问所述待运算数据的地址,获取所述待运算数据,基于所述待运算数据执行所述运算操作,得到运算结果,以及,对所述运算结果进行有限值量化,得到输出结果。
在本公开其中一个实施例中,该待运算数据包括权值数据和进行有限值量化后的神经元数据,所述运算结果包括神经元数据,所述输出结果包括进行有限值量化后的所述神经元数据,所述运算操作包括神经网络运算操作。
在本公开其中一个实施例中,所述运算单元包括量化表存储子单元,量化表存储子单元存储量化表,所述量化表中存储神经元数据进行有限值量化前后的映射关系。
在本公开其中一个实施例中,所述运算单元中的运算子单元基于所述神经元数据和权值数据执行神经网络运算,得到所述神经元数据;所述运算单元中的量化子单元根据所述量化表存储子单元中存储的神经元数据进行有限值量化前后的映射关系,查找所述神经元数据进行有限值量化后的数据,得到所述输出结果。
在本公开其中一个实施例中,所述运算子单元中的向量变换器对神经元数据进行向量变换,得到变换后的向量数据;所述运算子单元中的寄存器存储中间结果,所述中间结果包括部分和数据或加法结果数据;所述运算子单元中的向量加法器将输入的权值数据与所述部分和数据对应相加,得到所述加法结果数据;所述运算子单元中的向量乘法器将所述加法结果数据和第一数据对应相乘,得到乘法结果数据;所述运算子单元中的累加子单元对所述乘法结果数据进行累加,得到所述运算结果;所述运算子单元中的第一选择器根据所述变换后的向量数据,从所述寄存器中选择所述部分和数据,并将所述部分和数据发送给向量加法器;所述运算子单元中的第二选择器,用于当满足预设条件时,从所述寄存器中选择所述加法结果数据发送给所述向量乘法器。
在本公开其中一个实施例中,所述运算操作还包括数据复用操作;所述数据复用操作按照预设规则复用所述神经元数据和/或权值数据。
在本公开其中一个实施例中,当所述运算操作包括数据复用操作时,所述第一选择器根据所述变换后的向量数据落在的有限值量化种类的具体类别,以及当前的运算操作循环的位置,选择所述中间结果。
在本公开其中一个实施例中,累加子单元为加法树。
在本公开其中一个实施例中,所述预设条件包括所述向量加法器的加法次数达到预设次数。
在本公开其中一个实施例中,所述预设次数为所述运算操作指定的次数。
在本公开其中一个实施例中,所述第一数据为所述量化表存储子单元中所述神经元数据进行有限值量化后的数据。
在本公开其中一个实施例中,所述控制器单元接收并解析写量化表指令,得到写量化表操作;
所述运算单元中的量化表存储子单元执行所述写量化表操作,写入并存储所述神经元数据进行有限值量化前后的映射关系。
本公开其中一个实施例提供了一种多核智能处理器,所述多核智能处理器中至少一个处理核包括如图1至图3所示的运算装置。在一些实施例中,当多个处理核共同处理同一任务时,共同复用神经元数据和/或权值。
本公开还提供了一种异构多核智能处理器,该异构多核智能处理器包括通用处理器,和/或,至少一个如图5或图6所示的多核智能处理器;所述通用处理器,用于生成程序指令;所述多核智能处理器,用于接收所述程序指令,以根据所述程序指令完成运算。
本公开其中一个实施例提供的异构多核智能处理器包括:存储器、缓存器和异构内核;其中,所述存储器,用于存储神经网络运算的待运算数据(以下简称数据)和运算指令(以下简称指令);所述缓存器,通过存储器总线与所述存储器连接;所述异构内核,通过缓存器总线与所述缓存器连接,通过缓存器读取神经网络运算的数据和指令,完成神经网络运算,并将运算结果送回到缓存器,控制缓存器将运算结果写回到存储器。
其中,所述异构内核指包括至少两种不同类型的内核,也即两种不同结构的内核。
在一些实施例中,所述异构内核包括:多个运算内核,其具有至少两种不同类型的运算内核,用于执行神经网络运算或神经网络层运算;以及一个或多个逻辑控制内核,用于根据神经网络运算的数据,决定由所述专用内核和/或所述通用内核执行神经网络运算或神经网络层运算。
进一步的,所述多个运算内核包括m个通用内核和n个专用内核;其中,所述专用内核专用于执行指定神经网络/神经网络层运算,所述通用内核用于执行任意神经网络/神经网络层运算。可选的,所述通用内核可以为cpu,所述专用内核可以为npu。所述专用内核的结构可以相同,也可不同。
在一些实施例中,还可以包括缓存器。所述缓存器包括共享缓存器和/或非共享缓存器;其中,所述一共享缓存器通过缓存器总线与所述异构内核中的至少两个内核对应连接;所述一非共享缓存器通过缓存器总线与所述异构内核中的一内核对应连接。所述缓存器可以为高速暂存存储器、高速缓存存储器等任意结构,本公开对此不做限制。
具体而言,所述缓存器可以仅包括一个或多个共享缓存器,每一个共享缓存器与异构内核中的多个内核(逻辑控制内核、专用内核或通用内核)连接。所述缓存器也可以仅包括一个或多个非共享缓存器,每一个非共享缓存器与异构内核中的一个内核(逻辑控制内核、专用内核或通用内核)连接。所述缓存器也可以同时包括一个或多个共享缓存器、以及一个或多个非共享缓存器,其中,每一个共享缓存器与异构内核中的多个内核(逻辑控制内核、专用内核或通用内核)连接,每一个非共享缓存器与异构内核中的一个内核(逻辑控制内核、专用内核或通用内核)连接。
在一些实施例中,所述逻辑控制内核通过缓存器总线与所述缓存器连接,通过缓存器读取神经网络运算的数据,并根据神经网络运算的数据中的神经网络模型的类型和参数,决定由专用内核和/或通用内核作为目标内核来执行神经网络运算和/或神经网络层运算。其中,可以在内核之间加入通路,所述逻辑控制内核可通过控制总线直接向所述向目标内核发送信号,也可经所述缓存器存储器向所述向目标内核发送信号,从而控制目标内核执行神经网络运算和/或神经网络层运算。
本公开的一个实施例提出了一种异构多核智能处理器,参见图5,包括:存储器11、非共享缓存器12和异构内核13。
存储器11,用于存储神经网络运算的数据和指令,数据包括权值、输入神经元数据、输出神经元数据、偏置、梯度以及神经网络模型的类型和参数等。当然,所述输出神经元数据也可以不存储在存储器;运算指令包括神经网络运算对应的各种指令,例如数据复用指令,写操作表指令等。存储器11中存储的数据和指令可以通过非共享缓存器12传送到异构内核13中。
非共享缓存器12,包括多个缓存器121,每一缓存器121均通过存储器总线与存储器11连接,通过缓存器总线与异构内核13连接,实现异构内核13与非共享缓存器12之间、非共享缓存器12与存储器11之间的数据交换。当异构内核13所需的神经网络运算数据或指令未存储在非共享缓存器12中时,非共享缓存器12先通过存储器总线从存储器11中读取所需的数据或指令,然后将其通过缓存器总线送入到异构内核13中。
异构内核13用以从非共享缓存器12中读取神经网络运算的指令和数据,完成神经网络运算,并将运算结果送回到非高速共享缓存12,控制非共享缓存器12将运算结果写回到存储器11。
逻辑控制内核131从非共享缓存器12中读入神经网络运算数据和指令,根据数据中的神经网络模型的类型和参数,判断是否存在支持该神经网络运算且能完成该神经网络运算规模的专用内核133,如果存在,则交由对应的专用内核133完成该神经网络运算,如果不存在,则交由通用内核132完成该神经网络运算。为了确定专用内核的位置及其是否空闲,可以使用为每类内核(支持同一层的专用内核属于一类,通用内核属于一类)设置一张表(称为专用/通用内核信息表),表中记录同类内核的编号(或地址)以及其当前是否空闲,初始均为空闲,之后空闲状态的更改有逻辑控制内核与内核间的直接或间接通信来维护,表中的内核编号可以在此网络处理器初始化时进行一遍扫描得到,这样即可支持动态可配置的异构内核(即可以随时更改异构内核中的专用处理器类型及数目,更改之后就会扫描更新内核信息表);可选的,也可以不支持异构内核的动态配置,这时就只需要把表中的内核编号固定即可,不需要多次扫描更新;可选的,如果每类专用内核的编号总是连续的,可以记录一个基址,然后用连续的若干比特位即可表示这些专用内核,用比特0或1即可表示其是否处于空闲状态。为了判断出网络模型的类型和参数,可以在逻辑控制内核中设置一个译码器,根据指令判断出网络层的类型,并可以判断出是通用内核的指令还是专用内核的指令,参数、数据地址等也可以从指令中解析出来;可选的,还可以规定数据包含一个数据头,其中包含各网络层的编号及其规模,以及对应计算数据及指令的地址等,并设一个专门的解析器(软件或硬件均可)来解析这些信息;可选的,将解析出的信息存储到指定区域。为了根据解析出来的网络层编号及规模决定使用哪个内核,可以在逻辑控制内核中设置一个内容寻址存储器CAM(content addressable memory),其中的内容可以实现为可配置的,这就需要逻辑控制内核提供一些指令来配置/写这个CAM,CAM中的内容有网络层编号,各个维度所能支持的最大规模,以及支持该层的专用内核信息表的地址和通用内核信息表地址,此方案下,用解析出来的层编号来找到对应表项,并比较规模限制;若满足则取专用内核信息表的地址,去其中寻找一个空闲的专用内核,根据其编号发送控制信号,为其分配计算任务;如果在CAM中没有找到对应层,或超出了规模限制,或专用内核信息表中无空闲内核,则取通用内核信息表中寻找一个空闲的通用内核,根据其编号发送控制信号,为其分配计算任务;如果在两张表中均为找到空闲的内核,则将此任务添加到一个等待队列中,并添加一些必要的信息,一旦有一个可计算此任务的空闲内核,则将其分配给它进行计算。
当然,确定专用内核的位置及其是否空闲可以有多种方式,上述确定专用内核的位置及其是否空闲的方式仅是作为示例说明。每一专用内核133可以独立完成一种神经网络运算,例如脉冲神经网络(SNN)运算等指定的神经网络运算,并将运算结果写回到其对应连接的缓存器121中,控制该缓存器121将运算结果写回到存储器11。
通用内核132可以独立完成超过专用内核所能支持的运算规模的或者所有专用内核133都不支持的神经网络运算,并将运算结果写回到其对应连接的缓存器121中,控制该缓存器121将运算结果写回到存储器11。
本公开的一个实施例提出了一种异构多核智能处理器,参见图6,包括:存储器21、共享缓存器22和异构内核23。
存储器21,用于存储神经网络运算的数据和指令,数据包括偏置、权值、输入数据、输出数据、和神经网络模型的类型和参数,指令包括神经网络运算对应的各种指令。存储器中存储的数据和指令通过共享缓存器22传送到异构内核23中。
共享缓存器22,通过存储器总线与存储器21相连,通过共享缓存器总线与异构内核23进行连接,实现异构内核23与共享缓存器22之间、共享缓存器22与存储器21之间的数据交换。
当异构内核23所需的神经网络运算数据或指令未存储在共享缓存器22中时,共享缓存器22先通过存储器总线从存储器21中读取所需的数据或指令,然后将其通过缓存器总线送入到异构内核23中。
异构内核23,包括一逻辑控制内核231、多个通用内核232以及多个专用内核233,逻辑控制内核231、通用内核232以及专用内核233均通过缓存器总线与共享缓存器22连接。
异构内核23用以从共享缓存器22中读取神经网络运算数据和指令,完成神经网络运算,并将运算结果送回到高速共享缓存22,控制共享缓存器22将运算结果写回到存储器21。
另外当逻辑控制内核231与通用内核232之间、逻辑控制内核231与专用内核233之间、通用内核232之间以及专用内核233之间需要进行数据传输时,发送数据的内核可以将数据通过共享缓存器总线先传输到共享缓存器22,然后再将数据传输到接收数据的内核,而不需要经过存储器21。
对于神经网络运算来说,其神经网络模型一般包括多个神经网络层,每个神经网络层利用上一神经网络层的运算结果进行相应的运算,其运算结果输出给下一神经网络层,最后一个神经网络层的运算结果作为整个神经网络运算的结果。在本实施例异构多核智能处理器中,通用内核232和专用内核23均可以执行一个神经网络层的运算,利用逻辑控制内核231、通用内核232以及专用内核233共同完成神经网络运算,以下为了描述方便,将神经网络层简称为层。
其中,每一专用内核233可以独立执行一层运算,例如神经网络层的卷积运算、全连接层、拼接运算、对位加/乘运算、Relu运算、池化运算、Batch Norm运算等,且神经网络运算层的规模不能过大,即不能超出对应的专用内核的所能支持的神经网络运算层的规模,也就是说专用内核运算对层的神经元和突触的数量有限制,在层运算结束后,将运算结果写回到共享缓存器22中。
通用内核232用于执行超过专用内核23所能支持的运算规模的或者所有专用内核都不支持的层运算,并将运算结果写回到共享缓存器22中,控制共享缓存器22将运算结果写回到存储器21。
进一步地,专用内核233和通用内核232将运算结果写回到存储器21后,逻辑控制内核231会向执行下一层运算的专用内核或通用内核发送开始运算信号,通知执行下一层运算的专用内核或通用内核开始运算。
更进一步的,专用内核233和通用内核232在接收到执行上一层运算的专用内核或通用内核发送的开始运算信号,且当前无正在进行的层运算时开始运算,若当前正在进行层运算,则将当前层运算完成,并将运算结果写回到共享缓存器22中后开始运算。
逻辑控制内核231从共享缓存器22中读入神经网络运算数据,针对其中的神经网络模型的类型和参数,对神经网络模型的每个层进行解析,对于每一层,判断是否存在支持该层运算且能完成该层运算规模的专用内核23,,如果存在,则将该层的运算交由对应的专用内核233运算,如果不存在,则将该层的运算交由通用内核232进行运算。逻辑控制内核231还设置通用内核232和专用内核233进行层运算所需的数据和指令的对应地址,通用内核232和专用内核233读取对应地址的数据和指令,执行层运算。
对于执行第一层运算的专用内核233和通用内核232,逻辑控制内核231会在运算开始时对该专用内核233或通用内核232发送开始运算信号,而在神经网络运算结束后,执行最后一层运算的专用内核23或通用内核232会对逻辑控制内核231发送开始运算信号,逻辑控制内核231在接收到开始运算信号后,控制共享缓存器22将运算结果写回到存储器21中。
需要说明的是,本公开中对逻辑控制内核的数量、专用内核的数量、通用内核的数量、共享或非共享缓存器的数量、存储器的数量均不作限制,可根据神经网络运算的具体要求适当调整。
在上述实施例中,采用异构内核进行神经网络运算,可以根据实际神经网络的类型和规模选用不同的内核进行运算,充分利用硬件实际的运算能力,降低成本,减少功耗开销。不同的内核进行不同层的运算,不同层之间并行运算,可以充分利用神经网络的并行性,提高了神经网络运算的效率。
在一些实施例里,电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本公开所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器((RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指示相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROMD、随机存取器(英文:Random Access Memory,简称:RAMD、磁盘或光盘等。
需要说明的是,本公开提供的所有单元或者模块都可以为硬件电路,示例性的,运算子单元可以为运算电路,量化子单元可以为量化电路等等,以该运算电路为例,该运算电路可以包括向量变换电路、寄存电路、加法电路、乘法电路、累加电路、第一选择电路、第二选择电路。其中,向量变换电路,用于对神经元数据进行向量变换,得到变换后的向量数据;寄存电路,用于存储中间结果,所述中间结果包括部分和数据;加法电路,用于将输入的权值数据与所述中间结果对应相加,得到加法结果数据;乘法电路,用于将所述部分和数据和第一数据对应相乘,得到乘法结果数据;累加电路,用于乘法结果数据进行累加,得到所述运算结果。第一选择电路,用于根据所述变换后的向量数据,从所述寄存器中选择所述中间结果,并将所述中间结果发送给向量加法器;第二选择电路,用于当满足预设条件时,从所述寄存器中选择所述部分和数据和发送给所述向量乘法器。
以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上上述,本说明书内容不应理解为对本发明的限制。

Claims (16)

1.一种运算装置,其特征在于,包括:
存储单元、控制器单元和运算单元;
所述存储单元,用于存储待运算数据;
所述控制器单元,用于接收运算指令,并解析所述运算指令得到所述运算指令对应的待运算数据的地址和运算操作;
所述运算单元,用于访问所述待运算数据的地址,获取所述待运算数据,基于所述待运算数据执行所述运算操作,得到运算结果,以及,对所述运算结果进行有限值量化,得到输出结果。
2.根据权利要求1所述的运算装置,其特征在于,所述待运算数据包括权值数据和进行有限值量化后的神经元数据,所述运算结果包括神经元数据,所述输出结果包括进行有限值量化后的所述神经元数据,所述运算操作包括神经网络运算操作。
3.根据权利要求2所述的运算装置,其特征在于,所述运算单元包括量化表存储子单元,用于存储量化表,所述量化表中存储神经元数据进行有限值量化前后的映射关系。
4.根据权利要求3所述的运算装置,其特征在于,所述运算单元还包括:
运算子单元和量化子单元;
所述运算子单元,用于基于所述神经元数据和权值数据执行神经网络运算,得到所述神经元数据;
所述量化子单元,用于根据所述量化表存储子单元中存储的神经元数据进行有限值量化前后的映射关系,查找所述神经元数据进行有限值量化后的数据,得到所述输出结果。
5.根据权利要求4所述的运算装置,其特征在于,所述运算子单元包括:
向量变换器,用于对神经元数据进行向量变换,得到变换后的向量数据;
寄存器,用于存储中间结果,所述中间结果包括部分和数据或加法结果数据;
向量加法器,用于将输入的权值数据与所述部分和数据对应相加,得到所述加法结果数据;
向量乘法器,用于将所述加法结果数据和第一数据对应相乘,得到乘法结果数据;
累加子单元,用于对所述乘法结果数据进行累加,得到所述运算结果;
第一选择器,用于根据所述变换后的向量数据,从所述寄存器中选择所述部分和数据,并将所述部分和数据发送给向量加法器;
第二选择器,用于当满足预设条件时,从所述寄存器中选择所述加法结果数据发送给所述向量乘法器。
6.根据权利要求2所述的运算装置,其特征在于,所述运算操作还包括数据复用操作;
所述数据复用操作,用于按照预设规则复用所述神经元数据和/或权值数据。
7.根据权利要求6所述的运算装置,其特征在于,当所述运算操作包括数据复用操作时,所述第一选择器,具体用于根据所述变换后的向量数据落在的有限值量化种类的具体类别,以及当前的运算操作循环的位置,选择所述中间结果。
8.根据权利要求5至7任意一项所述的运算装置,其特征在于,所述累加单元为加法树。
9.根据权利要求5至7任意一项所述的运算装置,其特征在于,所述预设条件包括所述向量加法器的加法次数达到预设次数。
10.根据权利要求5至7任意一项所述的运算装置,其特征在于,所述预设次数为所述运算操作指定的次数。
11.根据权利要求5至7任意一项所述的运算装置,其特征在于,所述第一数据为所述量化表存储子单元中所述神经元数据进行有限值量化后的数据。
12.根据权利要求3所述的运算装置,其特征在于,所述控制器单元,还用于接收并解析写量化表指令,得到写量化表操作;
所述量化表存储子单元,用于执行所述写量化表操作,写入并存储所述神经元数据进行有限值量化前后的映射关系。
13.一种运算方法,所述运算方法由运算装置执行,其特征在于,所述运算装置包括:存储单元、控制器单元和运算单元,所述存储单元包括待运算数据,所述运算方法包括:
所述控制器单元接收运算指令,并解析所述运算指令得到所述运算指令对应的待运算数据的地址和运算操作;
所述运算单元访问所述待运算数据的地址,获取所述待运算数据,基于所述待运算数据执行所述运算操作,得到运算结果,以及,对所述运算结果进行有限值量化,得到输出结果。
14.一种多核智能处理器,其特征在于,所述多核智能处理器中至少一个处理核包括如权利要求1至12任一项所述的运算装置。
15.根据权利要求14所述的多核智能处理器,其特征在于,当多个智能处理核共同处理同一任务时,共同神经元数据和/或权值。
16.一种异构多核智能处理器,特征在于,包括:通用处理器,和/或,至少一个如权利要求14或15所述的多核智能处理器;
所述通用处理器,用于生成程序指令;
所述多核智能处理器,用于接收所述程序指令,以根据所述程序指令完成运算。
CN202010770239.2A 2020-08-03 2020-08-03 运算装置、方法、多核智能处理器及多核异构智能处理器 Active CN111930668B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010770239.2A CN111930668B (zh) 2020-08-03 2020-08-03 运算装置、方法、多核智能处理器及多核异构智能处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010770239.2A CN111930668B (zh) 2020-08-03 2020-08-03 运算装置、方法、多核智能处理器及多核异构智能处理器

Publications (2)

Publication Number Publication Date
CN111930668A true CN111930668A (zh) 2020-11-13
CN111930668B CN111930668B (zh) 2023-09-26

Family

ID=73306662

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010770239.2A Active CN111930668B (zh) 2020-08-03 2020-08-03 运算装置、方法、多核智能处理器及多核异构智能处理器

Country Status (1)

Country Link
CN (1) CN111930668B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112596881A (zh) * 2020-12-25 2021-04-02 清华大学 存储部件及人工智能处理器
CN114968362A (zh) * 2022-06-10 2022-08-30 清华大学 异构融合计算指令集以及使用方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751373A (zh) * 2008-11-28 2010-06-23 上海芯豪微电子有限公司 基于单一指令集微处理器运算单元的可配置多核/众核系统
WO2013121085A2 (en) * 2012-02-17 2013-08-22 Nokia Corporation Method, apparatus, and computer program product for inter-core communication in multi-core processors
CN108694441A (zh) * 2017-04-07 2018-10-23 上海寒武纪信息科技有限公司 一种网络处理器和网络运算方法
CN109359736A (zh) * 2017-04-06 2019-02-19 上海寒武纪信息科技有限公司 网络处理器和网络运算方法
CN110363291A (zh) * 2018-03-26 2019-10-22 上海寒武纪信息科技有限公司 神经网络的运算方法、装置、计算机设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751373A (zh) * 2008-11-28 2010-06-23 上海芯豪微电子有限公司 基于单一指令集微处理器运算单元的可配置多核/众核系统
WO2013121085A2 (en) * 2012-02-17 2013-08-22 Nokia Corporation Method, apparatus, and computer program product for inter-core communication in multi-core processors
CN109359736A (zh) * 2017-04-06 2019-02-19 上海寒武纪信息科技有限公司 网络处理器和网络运算方法
CN108694441A (zh) * 2017-04-07 2018-10-23 上海寒武纪信息科技有限公司 一种网络处理器和网络运算方法
CN110363291A (zh) * 2018-03-26 2019-10-22 上海寒武纪信息科技有限公司 神经网络的运算方法、装置、计算机设备和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘仲,田希: "面向多核向量处理器的矩阵乘法向量化方法", 计算机学报, vol. 41, no. 10, pages 2251 - 2264 *
张家杰等: "基于扩展寄存器与片上网络的运算阵列设计", 计算机工程, vol. 39, no. 7, pages 7 - 10 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112596881A (zh) * 2020-12-25 2021-04-02 清华大学 存储部件及人工智能处理器
CN114968362A (zh) * 2022-06-10 2022-08-30 清华大学 异构融合计算指令集以及使用方法
CN114968362B (zh) * 2022-06-10 2024-04-23 清华大学 异构融合计算指令集以及使用方法

Also Published As

Publication number Publication date
CN111930668B (zh) 2023-09-26

Similar Documents

Publication Publication Date Title
CN111176727B (zh) 计算装置以及计算方法
EP3620992B1 (en) Neural network processor and neural network computation method
US20200089535A1 (en) Data sharing system and data sharing method therefor
CN110298443B (zh) 神经网络运算装置及方法
CN110163357B (zh) 一种计算装置及方法
CN108121688B (zh) 一种计算方法及相关产品
CN108694441B (zh) 一种网络处理器和网络运算方法
CN107957976A (zh) 一种计算方法及相关产品
CN111626413A (zh) 一种计算装置及方法
CN111930668A (zh) 运算装置、方法、多核智能处理器及多核异构智能处理器
CN112416433A (zh) 一种数据处理装置、数据处理方法及相关产品
CN108108190A (zh) 一种计算方法及相关产品
CN107943756B (zh) 一种计算方法及相关产品
CN107957977A (zh) 一种计算方法及相关产品
CN111930669A (zh) 多核异构智能处理器及运算方法
CN111079925B (zh) 运算方法、装置及相关产品
CN111078284B (zh) 运算方法、系统及相关产品
CN111079924B (zh) 运算方法、系统及相关产品
CN111930671B (zh) 异构智能处理器、处理方法及电子设备
CN111078282B (zh) 运算方法、装置及相关产品
CN111400341B (zh) 标量查找指令处理方法、装置及相关产品
CN111930672A (zh) 异构智能处理器及电子设备
CN113032298A (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