CN106991077A - 一种矩阵计算装置 - Google Patents

一种矩阵计算装置 Download PDF

Info

Publication number
CN106991077A
CN106991077A CN201610037535.5A CN201610037535A CN106991077A CN 106991077 A CN106991077 A CN 106991077A CN 201610037535 A CN201610037535 A CN 201610037535A CN 106991077 A CN106991077 A CN 106991077A
Authority
CN
China
Prior art keywords
matrix
unit
matrix operation
operation command
instruction
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.)
Pending
Application number
CN201610037535.5A
Other languages
English (en)
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.)
Beijing Zhongke Cambrian Technology Co Ltd
Original Assignee
Nanjing Aixi Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Aixi Information Technology Co Ltd filed Critical Nanjing Aixi Information Technology Co Ltd
Priority to CN201710907069.6A priority Critical patent/CN107704433A/zh
Priority to CN201610037535.5A priority patent/CN106991077A/zh
Priority to PCT/CN2016/078546 priority patent/WO2017124647A1/zh
Priority to KR1020187015436A priority patent/KR102123633B1/ko
Priority to EP21154586.8A priority patent/EP3832499B1/en
Priority to EP16885911.4A priority patent/EP3407202A4/en
Publication of CN106991077A publication Critical patent/CN106991077A/zh
Priority to US16/039,803 priority patent/US10762164B2/en
Priority to US16/942,482 priority patent/US11734383B2/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)

Abstract

本发明提供了一种矩阵计算装置,包括存储单元、寄存器单元和矩阵运算单元,存储单元中存储有矩阵,寄存器单元中存储有矩阵存储的地址矩阵运算单元根据矩阵运算指令在寄存器单元中获取矩阵地址,然后,根据该矩阵地址在存储单元中获取相应的矩阵,接着,根据获取的矩阵进行矩阵运算,得到矩阵运算结果。本发明将参与计算的矩阵数据暂存在高速暂存存储器上,使得矩阵运算过程中可以更加灵活有效地支持不同宽度的数据,提升包含大量矩阵计算任务的执行性能。

Description

一种矩阵计算装置
技术领域
本发明涉及一种矩阵运算装置,用于根据矩阵运算指令执行矩阵运算,能够很好地解决当前计算机领域越来越多的算法包含大量矩阵运算的问题。
背景技术
当前计算机领域有越来越多的算法涉及到矩阵运算,以人工神经网络算法为例,多种神经网络算法中都含有大量的矩阵运算。在神经网络中,输出神经元的运算表达式为y=f(wx+b),其中w是矩阵,x、b是矩阵,计算输出矩阵y的过程为矩阵w与矩阵x相乘,加上矩阵b,然后对得到的矩阵进行激活函数运算(即对矩阵中的每个元素进行激活函数运算)。因此,矩阵运算成为目前各种计算装置在设计之初都需要考虑的一个重要问题。
在现有技术中,一种进行矩阵运算的已知方案是使用通用处理器,该方法通过通用寄存器堆和通用功能部件来执行通用指令,从而执行矩阵运算。然而,该方法的缺点之一是单个通用处理器多用于标量计算,在进行矩阵运算时运算性能较低。而使用多个通用处理器并行执行时,通用处理器之间的相互通讯又有可能成为性能瓶颈。
在另一种现有技术中,使用图形处理器(GPU)来进行矩阵计算,其中,通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来进行矩阵运算。然而,上述方案中,GPU片上缓存太小,在进行大规模矩阵运算时需要不断进行片外数据搬运,片外带宽成为了主要性能瓶颈。
在另一种现有技术中,使用专门定制的矩阵运算装置来进行矩阵计算,其中,使用定制的寄存器堆和定制的处理单元进行矩阵运算。然而,目前已有的专用矩阵运算装置受限于寄存器堆,不能够灵活地支持不同长度的矩阵运算。
综上所述,现有的不管是片上多核通用处理器、片间互联通用处理器(单核或多核)、还是片间互联图形处理器都无法进行高效的矩阵运算,并且这些现有技术在处理矩阵运算问题时存在着代码量大,受限于片间通讯,片上缓存不够,支持的矩阵规模不够灵活等问题。
发明内容
(一)要解决的技术问题
本发明的目的在于,提供一种矩阵运算装置,解决现有技术中存在的受限于片间通讯、片上缓存不够、支持的矩阵长度不够灵活等问题。
(二)技术方案
本发明提供一种矩阵运算装置,用于根据矩阵运算指令执行矩阵运算,包括:
存储单元,用于存储矩阵;
寄存器单元,用于存储矩阵地址,其中,矩阵地址为矩阵在存储单元中存储的地址;
矩阵运算单元,用于获取矩阵运算指令,根据矩阵运算指令在寄存器单元中获取矩阵地址,然后,根据该矩阵地址在存储单元中获取相应的矩阵,接着,根据获取的矩阵进行矩阵运算,得到矩阵运算结果。
(三)有益效果
本发明提供的矩阵运算装置,将参与计算的矩阵数据暂存在高速暂存存储器上(Scratchpad Memory),使得矩阵运算过程中可以更加灵活有效地支持不同宽度的数据,提升包含大量矩阵计算任务的执行性能,本发明采用的指令具有精简的格式,使得指令集使用方便、支持的矩阵长度灵活。
附图说明
图1是本发明提供的矩阵运算装置的结构示意图。
图2是本发明提供的指令集的格式示意图。
图3是本发明实施例提供的矩阵运算装置的结构示意图。
图4是本发明实施例提供的矩阵运算装置执行矩阵点积指令的流程图。
图5为本发明实施例提供的矩阵运算装置进行幂乘法求解不可规约矩阵最大特征值对应特征向量的流程图。
图6为本发明实施例提供的矩阵运算单元的结构示意图。
具体实施方式
本发明提供一种矩阵计算装置,包括存储单元、寄存器单元和矩阵运算单元,存储单元中存储有矩阵,寄存器单元中存储有矩阵存储的地址矩阵运算单元根据矩阵运算指令在寄存器单元中获取矩阵地址,然后,根据该矩阵地址在存储单元中获取相应的矩阵,接着,根据获取的矩阵进行矩阵运算,得到矩阵运算结果。本发明将参与计算的矩阵数据暂存在高速暂存存储器上,使得矩阵运算过程中可以更加灵活有效地支持不同宽度的数据,提升包含大量矩阵计算任务的执行性能。
图1是本发明提供的矩阵运算装置的结构示意图,如图1所示,矩阵运算装置包括:
存储单元,用于存储矩阵,在一种实施方式中,该存储单元可以是高速暂存存储器,能够支持不同大小的矩阵数据;本发明将必要的计算数据暂存在高速暂存存储器上(Scratchpad Memory),使本运算装置在进行矩阵运算过程中可以更加灵活有效地支持不同宽度的数据。
寄存器单元,用于存储矩阵地址,其中,矩阵地址为矩阵在存储单元中存储的地址;在一种实施方式中,寄存器单元可以是标量寄存器堆,提供运算过程中所需的标量寄存器,标量寄存器不只存放矩阵地址,还存放有标量数据。当涉及到矩阵与标量的运算时,矩阵运算单元不仅要从寄存器单元中获取矩阵地址,还要从寄存器单元中获取相应的标量。
矩阵运算单元,用于获取矩阵运算指令,根据矩阵运算指令在所述寄存器单元中获取矩阵地址,然后,根据该矩阵地址在存储单元中获取相应的矩阵,接着,根据获取的矩阵进行矩阵运算,得到矩阵运算结果,并将矩阵运算结果存储于存储单元中。矩阵运算单元包含包括矩阵加法部件、矩阵乘法部件、大小比较部件、非线性运算部件和矩阵标量乘法部件,并且,矩阵运算单元为多流水级结构,其中,矩阵加法部件和矩阵乘法部件处于第一流水级,大小比较部件处于第二流水级,非线性运算部件和矩阵标量乘法部件处于第三流水级。这些单元处于不同的流水级,当连续串行的多条矩阵运算指令的先后次序与相应单元所在流水级顺序一致时,可以更加高效地实现这一连串矩阵运算指令所要求的操作。矩阵运算单元负责装置的所有矩阵运算,包括但不限于矩阵加法操作、矩阵加标量操作、矩阵减法操作、矩阵减标量操作、矩阵乘法操作、矩阵乘标量操作、矩阵除法(对位相除)操作、矩阵与操作和矩阵或操作,矩阵运算指令被送往该运算单元执行。
根据本发明的一种实施方式,矩阵运算装置还包括:指令缓存单元,用于存储待执行的矩阵运算指令。指令在执行过程中,同时也被缓存在指令缓存单元中,当一条指令执行完之后,如果该指令同时也是指令缓存单元中未被提交指令中最早的一条指令,该指令将背提交,一旦提交,该条指令进行的操作对装置状态的改变将无法撤销。在一种实施方式中,指令缓存单元可以是重排序缓存。
根据本发明的一种实施方式,矩阵运算装置还包括:指令处理单元,用于从指令缓存单元获取矩阵运算指令,并对该矩阵运算指令进行处理后,提供给所述矩阵运算单元。其中,指令处理单元包括:
取指模块,用于从指令缓存单元中获取矩阵运算指令;
译码模块,用于对获取的矩阵运算指令进行译码;
指令队列,用于对译码后的矩阵运算指令进行顺序存储,考虑到不同指令在包含的寄存器上有可能存在依赖关系,用于缓存译码后的指令,当依赖关系被满足之后发射指令。
根据本发明的一种实施方式,矩阵运算装置还包括:依赖关系处理单元,用于在矩阵运算单元获取矩阵运算指令前,判断该矩阵运算指令与前一矩阵运算指令是否访问相同的矩阵,若是,将该矩阵运算指令存储在一存储队列中,待前一矩阵运算指令执行完毕后,将存储队列中的该矩阵运算指令提供给所述矩阵运算单元;否则,直接将该矩阵运算指令提供给所述矩阵运算单元。具体地,矩阵运算指令访问高速暂存存储器时,前后指令可能会访问同一块存储空间,为了保证指令执行结果的正确性,当前指令如果被检测到与之前的指令的数据存在依赖关系,该指令必须在存储队列内等待至依赖关系被消除。
根据本发明的一种实施方式,矩阵运算装置还包括:输入输出单元,用于将矩阵存储于存储单元,或者,从存储单元中获取矩阵运算结果。其中,输入输出单元可直接存储单元,负责从内存中读取矩阵数据或写入矩阵数据。
根据本发明的一种实施方式,用于本发明装置的指令集采用Load/Store结构,矩阵运算单元不会对内存中的数据进行操作。本指令集采用精简指令集架构,指令集只提供最基本的矩阵运算操作,复杂的矩阵运算都由这些简单指令通过组合进行模拟,使得可以在高时钟频率下单周期执行指令。另外,本指令集同时采用定长指令,使得本发明提出的矩阵运算装置在上一条指令的译码阶段对下一条指令进行取指。
图2是本发明提供的指令集的格式示意图,如图2所示,矩阵运算指令包括一操作码和至少一操作域,其中,操作码用于指示该矩阵运算指令的功能,矩阵运算单元通过识别该操作码可进行不同的矩阵运算,操作域用于指示该矩阵运算指令的数据信息,其中,数据信息可以是立即数或寄存器号,例如,要获取一个矩阵时,根据寄存器号可以在相应的寄存器中获取矩阵起始地址和矩阵长度,再根据矩阵起始地址和矩阵长度在存储单元中获取相应地址存放的矩阵。
指令集包含有不同功能的矩阵运算指令:
矩阵乘向量指令(MMV),根据该指令,装置从高速暂存存储器的指定地址取出指定大小的矩阵数据和向量数据,在矩阵运算单元中进行矩阵乘向量的乘法运算,并将计算结果写回至高速暂存存储器的指定地址;值得说明的是,向量可以作为特殊形式的矩阵(只有一行元素的矩阵)存储于高速暂存存储器中。
向量乘矩阵指令(VMM),根据该指令,装置从高速暂存存储器的指定地址取出制定长度的向量数据和矩阵数据,在矩阵运算单元中进行向量乘矩阵的乘法运算,并将计算结果写回至高速暂存存储器的指定地址;值得说明的是,向量可以作为特殊形式的矩阵(只有一行元素的矩阵)存储于高速暂存存储器中。
矩阵乘标量指令(VMS),根据该指令,装置从高速暂存存储器的指定地址取出指定大小的矩阵数据,从标量寄存器堆的指定地址中取出指定大小的矩阵数据,在矩阵运算单元中进行标量乘矩阵的乘法运算,并将计算结果写回至高速暂存存储器的指定地址,需要说明的是,标量寄存器堆不仅存储有矩阵的地址,还存储有标量数据。
张量运算指令(TENS),根据该指令,装置从高速暂存存储器的两个指定地址取出分别取出指定大小的两块矩阵数据,在矩阵运算单元中对两矩阵数据进行张量运算,并将计算结果写回至高速暂存存储器的指定地址。
矩阵加法指令(MA),根据该指令,装置从高速暂存存储器的两个指定地址取出分别取出指定大小的两块矩阵数据,在矩阵运算单元中对两矩阵进行加法运算,并将计算结果写回至高速暂存存储器的指定地址。
矩阵减法指令(MS),根据该指令,装置从高速暂存存储器的两个指定地址取出分别取出指定大小的两块矩阵数据,在矩阵运算单元中对两矩阵进行减法运算,并将计算结果写回至高速暂存存储器的指定地址。
矩阵检索指令(MR),根据该指令,装置从高速暂存存储器的指定地址取出指定大小的向量数据,从高速暂存存储器的指定地址取出指定大小的矩阵数据,在矩阵运算单元中,该向量是索引向量,输出的向量中的第i个元素是以索引向量的第i个元素作为索引,在矩阵的第i列中找到的数,该输出向量写回至高速暂存存储器的指定地址。
矩阵加载指令(ML),根据该指令,装置从指定外部源地址载入指定大小的数据至高速暂存存储器的指定地址。
矩阵存储指令(MS),根据该指令,装置将高速暂存存储器的指定地址的指定大小的矩阵数据存至外部目的地址处。
矩阵搬运指令(MMOVE)。根据该指令,装置将高速暂存存储器的指定地址的指定大小的矩阵数据存至高速暂存存储器的另一指定地址处。
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
图3是本发明实施例提供的矩阵运算装置的结构示意图,如图3所示,装置包括取指模块、译码模块、指令队列、标量寄存器堆、依赖关系处理单元、存储队列、重排序缓存、矩阵运算单元、高速暂存器、IO内存存取模块;
取指模块,该模块负责从指令序列中取出下一条将要执行的指令,并将该指令传给译码模块;
译码模块,该模块负责对指令进行译码,并将译码后指令传给指令队列;
指令队列,考虑到不同指令在包含的标量寄存器上有可能存在依赖关系,用于缓存译码后的指令,当依赖关系被满足之后发射指令;
标量寄存器堆,提供装置在运算过程中所需的标量寄存器;
依赖关系处理单元,该模块处理处理指令与前一条指令可能存在的存储依赖关系。矩阵运算指令会访问高速暂存存储器,前后指令可能会访问同一块存储空间。为了保证指令执行结果的正确性,当前指令如果被检测到与之前的指令的数据存在依赖关系,该指令必须在存储队列内等待至依赖关系被消除。
存储队列,该模块是一个有序队列,与之前指令在数据上有依赖关系的指令被存储在该队列内直至存储关系被消除;
重排序缓存,指令在执行过程中,同时也被缓存在给模块中,当一条指令执行完之后,如果该指令同时也是重排序缓存中未被提交指令中最早的一条指令,该指令将背提交。一旦提交,该条指令进行的操作对装置状态的改变将无法撤销;
矩阵运算单元,该模块负责装置的所有矩阵运算,包括但不限于矩阵加法操作、矩阵加标量操作、矩阵减法操作、矩阵减标量操作、矩阵乘法操作、矩阵乘标量操作、矩阵除法(对位相除)操作、矩阵与操作和矩阵或操作,矩阵运算指令被送往该运算单元执行;
高速暂存器,该模块是矩阵数据专用的暂存存储装置,能够支持不同大小的矩阵数据;
IO内存存取模块,该模块用于直接访问高速暂存存储器,负责从高速暂存存储器中读取数据或写入数据。
图4是本发明实施例提供的矩阵运算装置执行矩阵乘向量指令的流程图,如图4所示,执行矩阵乘向量指令的过程包括:
S1,取指模块取出该条矩阵乘向量指令,并将该指令送往译码模块。
S2,译码模块对指令译码,并将指令送往指令队列。
S3,在指令队列中,该矩阵乘向量指令需要从标量寄存器堆中获取指令中五个操作域所对应的标量寄存器里的数据,包括输入向量地址、输入向量长度、输入矩阵地址、输出向量地址、输出向量长度。
S4,在取得需要的标量数据后,该指令被送往依赖关系处理单元。依赖关系处理单元分析该指令与前面的尚未执行结束的指令在数据上是否存在依赖关系。该条指令需要在存储队列中等待至其与前面的未执行结束的指令在数据上不再存在依赖关系为止。
S5,依赖关系不存在后,该条矩阵乘向量指令被送往矩阵运算单元。矩阵运算单元根据所需数据的地址和长度从高速暂存器中取出需要的矩阵和向量数据,然后在矩阵运算单元中完成乘法运算。
S6,运算完成后,将结果写回至高速暂存存储器的指定地址,同时重排序缓存中的该指令被提交。
图5为本发明实施例提供的矩阵运算装置进行幂乘法求解不可规约矩阵最大特征值对应特征向量的流程图,如图5所示,包括:
step1:设置任意2-范数为1的起始向量x;
step2:通过IO指令将起始向量x和待求解矩阵A分别存至装置内向量专用高速暂存存储器和矩阵专用高速暂存存储器的指定地址处;
step3:执行矩阵乘向量指令(MMV),从高速暂存存储器中将A和x读出,在矩阵运算单元中将矩阵A与向量x相乘,将得到的向量归一化之后与x比较,当差值仍大于阈值时,把x赋成该矩阵,返回step2;
step4:得到的向量即不可规约矩阵A的最大特征值对应的特征向量,将输出向量存至指定地址,通过IO指令存至片外地址空间。
图6为本发明实施例提供的矩阵运算单元的结构示意图,如图6所示,矩阵运算单元包含包括矩阵加法部件、矩阵乘法部件、矩阵标量乘法部件和非线性运算部件等,另外,矩阵运算单元为多流水级结构,其中,矩阵乘法部件和矩阵标量乘法部件处于流水级1,矩阵加法部件处于流水级2,非线性运算部件处于流水级3。这些单元处于不同的流水级,当连续串行的多条矩阵运算指令的先后次序与相应单元所在流水级顺序一致时,可以更加高效地实现这一连串矩阵运算指令所要求的操作。
综上所述,本发明提供矩阵运算装置,并配合相应的精简指令集架构,能够很好地解决当前计算机领域越来越多的算法包含大量矩阵运算的问题,相比于已有的传统解决方案,本发明可以具有指令集精简、使用方便、支持的矩阵规模灵活、片上缓存充足等优点。本发明可以用于多种包含大量矩阵运算的计算任务,包括目前表现十分出色的人工神经网络算法的反相训练和正向预测,以及传统的如求解不可规约矩阵最大特征值的幂乘法的数值计算方法。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种矩阵运算装置,用于根据矩阵运算指令执行矩阵运算,其特征在于,包括:
存储单元,用于存储矩阵;
寄存器单元,用于存储矩阵地址,其中,所述矩阵地址为矩阵在所述存储单元中存储的地址;
矩阵运算单元,用于获取矩阵运算指令,根据矩阵运算指令在所述寄存器单元中获取矩阵地址,然后,根据该矩阵地址在存储单元中获取相应的矩阵,接着,根据获取的矩阵进行矩阵运算,得到矩阵运算结果。
2.根据权利要求1所述的矩阵运算装置,其特征在于,还包括:
指令缓存单元,用于存储待执行的矩阵运算指令。
3.根据权利要求2所述的矩阵运算装置,其特征在于,还包括:
指令处理单元,用于从所述指令缓存单元获取矩阵运算指令,并对该矩阵运算指令进行处理后,提供给所述矩阵运算单元。
4.根据权利要求3所述的矩阵运算装置,其特征在于,所述指令处理单元包括:
取指模块,用于从所述指令缓存单元中获取矩阵运算指令;
译码模块,用于对获取的矩阵运算指令进行译码;
指令队列,用于对译码后的矩阵运算指令进行顺序存储。
5.根据权利要求1所述的矩阵运算装置,其特征在于,还包括:
依赖关系处理单元,用于在所述矩阵运算单元获取矩阵运算指令前,判断该矩阵运算指令与前一矩阵运算指令是否访问相同的矩阵,若是,则等待前一矩阵运算指令执行完毕后,将该矩阵运算指令提供给所述矩阵运算单元;否则,直接将该矩阵运算指令提供给所述矩阵运算单元。
6.根据权利要求5所述的矩阵运算装置,其特征在于,当该矩阵运算指令与前一矩阵运算指令访问相同的矩阵时,所述依赖关系处理单元将该矩阵运算指令存储在一存储队列中,待前一矩阵运算指令执行完毕后,将存储队列中的该矩阵运算指令提供给所述矩阵运算单元。
7.根据权利要求1所述的矩阵运算装置,其特征在于,所述存储单元还用于存储所述矩阵运算结果。
8.根据权利要求6所述的矩阵运算装置,其特征在于,还包括:
输入输出单元,用于将矩阵存储于所述存储单元,或者,从所述存储单元中获取矩阵运算结果。
9.根据权利要求6所述的矩阵运算装置,其特征在于,所述存储单元为高速暂存存储器。
10.根据权利要求1所述的矩阵运算装置,其特征在于,所述矩阵运算指令包括一操作码和至少一操作域,其中,所述操作码用于指示该矩阵运算指令的功能,操作域用于指示该矩阵运算指令的数据信息。
11.根据权利要求1所述的矩阵运算装置,其特征在于,所述矩阵运算单元包含包括矩阵加法部件、矩阵乘法部件、矩阵标量乘法部件和非线性运算部件。
12.根据权利要求11所述的矩阵运算装置,其特征在于,所述矩阵运算单元为多流水级结构,其中,所述矩阵乘法部件和矩阵标量乘法部件处于第一流水级,矩阵加法部件处于第二流水级,非线性运算部件处于第三流水级。
CN201610037535.5A 2016-01-20 2016-01-20 一种矩阵计算装置 Pending CN106991077A (zh)

Priority Applications (8)

Application Number Priority Date Filing Date Title
CN201710907069.6A CN107704433A (zh) 2016-01-20 2016-01-20 一种矩阵运算指令及其方法
CN201610037535.5A CN106991077A (zh) 2016-01-20 2016-01-20 一种矩阵计算装置
PCT/CN2016/078546 WO2017124647A1 (zh) 2016-01-20 2016-04-06 一种矩阵计算装置
KR1020187015436A KR102123633B1 (ko) 2016-01-20 2016-04-06 행렬 연산 장치 및 방법
EP21154586.8A EP3832499B1 (en) 2016-01-20 2016-04-06 Matrix computing device
EP16885911.4A EP3407202A4 (en) 2016-01-20 2016-04-06 MATRIX CALCULATION DEVICE
US16/039,803 US10762164B2 (en) 2016-01-20 2018-07-19 Vector and matrix computing device
US16/942,482 US11734383B2 (en) 2016-01-20 2020-07-29 Vector and matrix computing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610037535.5A CN106991077A (zh) 2016-01-20 2016-01-20 一种矩阵计算装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201710907069.6A Division CN107704433A (zh) 2016-01-20 2016-01-20 一种矩阵运算指令及其方法

Publications (1)

Publication Number Publication Date
CN106991077A true CN106991077A (zh) 2017-07-28

Family

ID=59361386

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201610037535.5A Pending CN106991077A (zh) 2016-01-20 2016-01-20 一种矩阵计算装置
CN201710907069.6A Pending CN107704433A (zh) 2016-01-20 2016-01-20 一种矩阵运算指令及其方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201710907069.6A Pending CN107704433A (zh) 2016-01-20 2016-01-20 一种矩阵运算指令及其方法

Country Status (4)

Country Link
EP (2) EP3407202A4 (zh)
KR (1) KR102123633B1 (zh)
CN (2) CN106991077A (zh)
WO (1) WO2017124647A1 (zh)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107943756A (zh) * 2017-12-15 2018-04-20 北京中科寒武纪科技有限公司 一种计算方法及相关产品
CN107957976A (zh) * 2017-12-15 2018-04-24 北京中科寒武纪科技有限公司 一种计算方法及相关产品
CN107957975A (zh) * 2017-12-15 2018-04-24 北京中科寒武纪科技有限公司 一种计算方法及相关产品
CN108009126A (zh) * 2017-12-15 2018-05-08 北京中科寒武纪科技有限公司 一种计算方法及相关产品
CN108021393A (zh) * 2017-12-15 2018-05-11 北京中科寒武纪科技有限公司 一种计算方法及相关产品
CN108090028A (zh) * 2017-12-15 2018-05-29 北京中科寒武纪科技有限公司 一种计算方法及相关产品
CN108108190A (zh) * 2017-12-15 2018-06-01 北京中科寒武纪科技有限公司 一种计算方法及相关产品
CN108121688A (zh) * 2017-12-15 2018-06-05 北京中科寒武纪科技有限公司 一种计算方法及相关产品
CN108874444A (zh) * 2017-10-30 2018-11-23 上海寒武纪信息科技有限公司 机器学习处理器及使用处理器执行向量外积指令的方法
CN108960418A (zh) * 2018-08-08 2018-12-07 上海寒武纪信息科技有限公司 神经网络处理装置及其执行矩阵向量乘指令的方法
CN109101273A (zh) * 2018-02-05 2018-12-28 上海寒武纪信息科技有限公司 神经网络处理装置及其执行向量最大值指令的方法
CN109583577A (zh) * 2017-09-29 2019-04-05 上海寒武纪信息科技有限公司 运算装置及方法
CN109754062A (zh) * 2017-11-07 2019-05-14 上海寒武纪信息科技有限公司 卷积扩展指令的执行方法以及相关产品
CN110941789A (zh) * 2018-09-21 2020-03-31 北京地平线机器人技术研发有限公司 张量运算方法和装置
WO2020103883A1 (zh) * 2018-11-20 2020-05-28 华为技术有限公司 执行矩阵乘法运算的方法、电路及soc
CN111930506A (zh) * 2020-08-13 2020-11-13 山东云海国创云计算装备产业创新中心有限公司 一种矩阵调度方法及相关装置
US11086634B2 (en) 2017-07-05 2021-08-10 Shanghai Cambricon Information Technology Co., Ltd. Data processing apparatus and method
US11307864B2 (en) 2017-07-05 2022-04-19 Shanghai Cambricon Information Technology Co., Ltd. Data processing apparatus and method
US11307865B2 (en) 2017-09-06 2022-04-19 Shanghai Cambricon Information Technology Co., Ltd. Data processing apparatus and method
US11990137B2 (en) 2018-09-13 2024-05-21 Shanghai Cambricon Information Technology Co., Ltd. Image retouching method and terminal device

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651205B (zh) * 2016-04-26 2023-11-17 中科寒武纪科技股份有限公司 一种用于执行向量内积运算的装置和方法
CN108037908B (zh) * 2017-12-15 2021-02-09 中科寒武纪科技股份有限公司 一种计算方法及相关产品
CN108108189B (zh) * 2017-12-15 2020-10-30 安徽寒武纪信息科技有限公司 一种计算方法及相关产品
CN111290789B (zh) * 2018-12-06 2022-05-27 上海寒武纪信息科技有限公司 运算方法、装置、计算机设备和存储介质
CN110119807B (zh) * 2018-10-12 2021-11-09 上海寒武纪信息科技有限公司 运算方法、装置、计算机设备和存储介质
CN111381871B (zh) * 2018-12-28 2022-12-09 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
CN111966399B (zh) * 2019-05-20 2024-06-07 上海寒武纪信息科技有限公司 指令处理方法、装置及相关产品
CN112463215B (zh) * 2019-09-09 2024-06-07 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机可读存储介质和计算机设备
CN113836481A (zh) * 2020-06-24 2021-12-24 北京希姆计算科技有限公司 矩阵计算电路、方法、电子设备及计算机可读存储介质
CN113867799A (zh) * 2020-06-30 2021-12-31 上海寒武纪信息科技有限公司 计算装置、集成电路芯片、板卡、电子设备和计算方法
CN112328960B (zh) * 2020-11-02 2023-09-19 中国平安财产保险股份有限公司 数据运算的优化方法、装置、电子设备及存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4888679A (en) * 1988-01-11 1989-12-19 Digital Equipment Corporation Method and apparatus using a cache and main memory for both vector processing and scalar processing by prefetching cache blocks including vector data elements
JPH04365170A (ja) * 1991-06-12 1992-12-17 Mitsubishi Electric Corp ディジタル信号処理用半導体集積回路装置
US5669013A (en) * 1993-10-05 1997-09-16 Fujitsu Limited System for transferring M elements X times and transferring N elements one time for an array that is X*M+N long responsive to vector type instructions
US6282634B1 (en) * 1998-05-27 2001-08-28 Arm Limited Apparatus and method for processing data having a mixed vector/scalar register file
JP2000259609A (ja) * 1999-03-12 2000-09-22 Hitachi Ltd データ処理プロセッサおよびシステム
JP5157484B2 (ja) 2008-01-30 2013-03-06 ヤマハ株式会社 行列演算コプロセッサ
CN101620524B (zh) * 2009-07-03 2011-08-10 中国人民解放军国防科学技术大学 支持矩阵整体读写操作的矩阵寄存器文件
WO2012037472A2 (en) * 2010-09-17 2012-03-22 William Marsh Rice University Gpu-based fast dose calculator for cancer therapy
CN102360344B (zh) * 2011-10-10 2014-03-12 西安交通大学 矩阵处理器及其指令集和嵌入式系统
US9201899B2 (en) * 2011-10-14 2015-12-01 Panasonic Intellectual Property Management Co., Ltd. Transposition operation device, integrated circuit for the same, and transposition method
CN102521535A (zh) * 2011-12-05 2012-06-27 苏州希图视鼎微电子有限公司 通过特定指令集来进行相关运算的信息安全协处理器
CN102750127B (zh) * 2012-06-12 2015-06-24 清华大学 一种协处理器
KR20150005062A (ko) * 2013-07-04 2015-01-14 삼성전자주식회사 미니-코어를 사용하는 프로세서
CN103678257B (zh) * 2013-12-20 2016-09-28 上海交通大学 基于fpga的正定矩阵浮点求逆器及其求逆方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHRISTOPHER H.CHOU ET AL: "VEGAS: Soft Vector Processor with Scratchpad Memory", 《FPGA’11 PROCEEDINGS OF THE 19TH ACM/SIGDA INTERNATIONAL SYMPOSIUM ON FIELD PROGRAMMABLE GATE ARRAYS》 *
朱振元 等: "《数据结构教程 Java语言描述》", 31 December 2007, 西安:西安电子科技大学出版社 *
蒋璞: "《计算机组成原理》", 31 August 2011, 长沙:国防科技大学出版社 *

Cited By (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11086634B2 (en) 2017-07-05 2021-08-10 Shanghai Cambricon Information Technology Co., Ltd. Data processing apparatus and method
US11307864B2 (en) 2017-07-05 2022-04-19 Shanghai Cambricon Information Technology Co., Ltd. Data processing apparatus and method
US11307865B2 (en) 2017-09-06 2022-04-19 Shanghai Cambricon Information Technology Co., Ltd. Data processing apparatus and method
CN109583577B (zh) * 2017-09-29 2021-04-23 上海寒武纪信息科技有限公司 运算装置及方法
CN109583577A (zh) * 2017-09-29 2019-04-05 上海寒武纪信息科技有限公司 运算装置及方法
US11307866B2 (en) 2017-09-29 2022-04-19 Shanghai Cambricon Information Technology Co., Ltd. Data processing apparatus and method
CN111310910B (zh) * 2017-10-30 2023-06-30 上海寒武纪信息科技有限公司 一种计算装置及方法
CN111160548B (zh) * 2017-10-30 2024-01-12 上海寒武纪信息科技有限公司 计算装置以及计算方法
CN108874444A (zh) * 2017-10-30 2018-11-23 上海寒武纪信息科技有限公司 机器学习处理器及使用处理器执行向量外积指令的方法
US11762631B2 (en) 2017-10-30 2023-09-19 Shanghai Cambricon Information Technology Co., Ltd. Information processing method and terminal device
CN109034383A (zh) * 2017-10-30 2018-12-18 上海寒武纪信息科技有限公司 神经网络处理器及使用处理器执行矩阵相乘指令的方法
CN109062606A (zh) * 2017-10-30 2018-12-21 上海寒武纪信息科技有限公司 机器学习处理器及使用处理器执行向量缩放指令的方法
CN109522254B (zh) * 2017-10-30 2022-04-12 上海寒武纪信息科技有限公司 运算装置及方法
CN109062606B (zh) * 2017-10-30 2021-09-21 上海寒武纪信息科技有限公司 机器学习处理器及使用处理器执行向量缩放指令的方法
CN109034383B (zh) * 2017-10-30 2021-09-21 上海寒武纪信息科技有限公司 神经网络处理器及使用处理器执行矩阵相乘指令的方法
CN111160548A (zh) * 2017-10-30 2020-05-15 上海寒武纪信息科技有限公司 计算装置以及计算方法
CN109522254A (zh) * 2017-10-30 2019-03-26 上海寒武纪信息科技有限公司 运算装置及方法
CN109542514A (zh) * 2017-10-30 2019-03-29 上海寒武纪信息科技有限公司 运算指令的实现方法以及相关产品
US11922132B2 (en) 2017-10-30 2024-03-05 Shanghai Cambricon Information Technology Co., Ltd. Information processing method and terminal device
CN109725936A (zh) * 2017-10-30 2019-05-07 上海寒武纪信息科技有限公司 扩展计算指令的实现方法以及相关产品
CN111310910A (zh) * 2017-10-30 2020-06-19 上海寒武纪信息科技有限公司 一种计算装置及方法
CN109754062B (zh) * 2017-11-07 2024-05-14 上海寒武纪信息科技有限公司 卷积扩展指令的执行方法以及相关产品
CN109754062A (zh) * 2017-11-07 2019-05-14 上海寒武纪信息科技有限公司 卷积扩展指令的执行方法以及相关产品
CN108121688B (zh) * 2017-12-15 2020-06-23 中科寒武纪科技股份有限公司 一种计算方法及相关产品
CN108121688A (zh) * 2017-12-15 2018-06-05 北京中科寒武纪科技有限公司 一种计算方法及相关产品
CN107957976A (zh) * 2017-12-15 2018-04-24 北京中科寒武纪科技有限公司 一种计算方法及相关产品
CN107943756A (zh) * 2017-12-15 2018-04-20 北京中科寒武纪科技有限公司 一种计算方法及相关产品
CN108021393B (zh) * 2017-12-15 2020-10-27 安徽寒武纪信息科技有限公司 一种计算方法及相关产品
CN107957975A (zh) * 2017-12-15 2018-04-24 北京中科寒武纪科技有限公司 一种计算方法及相关产品
CN107957976B (zh) * 2017-12-15 2020-12-18 安徽寒武纪信息科技有限公司 一种计算方法及相关产品
CN108090028B (zh) * 2017-12-15 2021-03-23 中科寒武纪科技股份有限公司 一种计算方法及相关产品
CN108108190B (zh) * 2017-12-15 2020-01-24 中科寒武纪科技股份有限公司 一种计算方法及相关产品
CN108009126A (zh) * 2017-12-15 2018-05-08 北京中科寒武纪科技有限公司 一种计算方法及相关产品
CN108021393A (zh) * 2017-12-15 2018-05-11 北京中科寒武纪科技有限公司 一种计算方法及相关产品
CN108090028A (zh) * 2017-12-15 2018-05-29 北京中科寒武纪科技有限公司 一种计算方法及相关产品
CN108108190A (zh) * 2017-12-15 2018-06-01 北京中科寒武纪科技有限公司 一种计算方法及相关产品
CN109101273A (zh) * 2018-02-05 2018-12-28 上海寒武纪信息科技有限公司 神经网络处理装置及其执行向量最大值指令的方法
CN109189474A (zh) * 2018-02-05 2019-01-11 上海寒武纪信息科技有限公司 神经网络处理装置及其执行向量加和指令的方法
CN109117186A (zh) * 2018-02-05 2019-01-01 上海寒武纪信息科技有限公司 神经网络处理装置及其执行向量外积指令的方法
CN109165041B (zh) * 2018-02-05 2023-06-30 上海寒武纪信息科技有限公司 神经网络处理装置及其执行向量范数指令的方法
CN109101273B (zh) * 2018-02-05 2023-08-25 上海寒武纪信息科技有限公司 神经网络处理装置及其执行向量最大值指令的方法
CN109032669B (zh) * 2018-02-05 2023-08-29 上海寒武纪信息科技有限公司 神经网络处理装置及其执行向量最小值指令的方法
CN109189474B (zh) * 2018-02-05 2023-08-29 上海寒武纪信息科技有限公司 神经网络处理装置及其执行向量加和指令的方法
CN109165041A (zh) * 2018-02-05 2019-01-08 上海寒武纪信息科技有限公司 神经网络处理装置及其执行向量范数指令的方法
US11836497B2 (en) 2018-02-05 2023-12-05 Shanghai Cambricon Information Technology Co., Ltd Operation module and method thereof
CN108960418A (zh) * 2018-08-08 2018-12-07 上海寒武纪信息科技有限公司 神经网络处理装置及其执行矩阵向量乘指令的方法
US11996105B2 (en) 2018-09-13 2024-05-28 Shanghai Cambricon Information Technology Co., Ltd. Information processing method and terminal device
US11990137B2 (en) 2018-09-13 2024-05-21 Shanghai Cambricon Information Technology Co., Ltd. Image retouching method and terminal device
CN110941789B (zh) * 2018-09-21 2023-12-15 北京地平线机器人技术研发有限公司 张量运算方法和装置
CN110941789A (zh) * 2018-09-21 2020-03-31 北京地平线机器人技术研发有限公司 张量运算方法和装置
US11860970B2 (en) 2018-11-20 2024-01-02 Huawei Technologies Co., Ltd. Method, circuit, and SOC for performing matrix multiplication operation
US11397791B2 (en) 2018-11-20 2022-07-26 Huawei Technologies Co., Ltd. Method, circuit, and SOC for performing matrix multiplication operation
US11263292B2 (en) 2018-11-20 2022-03-01 Huawei Technologies Co., Ltd. Method, circuit, and SOC for performing matrix multiplication operation
WO2020103883A1 (zh) * 2018-11-20 2020-05-28 华为技术有限公司 执行矩阵乘法运算的方法、电路及soc
CN111930506A (zh) * 2020-08-13 2020-11-13 山东云海国创云计算装备产业创新中心有限公司 一种矩阵调度方法及相关装置

Also Published As

Publication number Publication date
EP3407202A1 (en) 2018-11-28
WO2017124647A1 (zh) 2017-07-27
EP3407202A4 (en) 2019-08-28
EP3832499B1 (en) 2023-07-12
EP3832499C0 (en) 2023-07-12
CN107704433A (zh) 2018-02-16
KR20180100551A (ko) 2018-09-11
KR102123633B1 (ko) 2020-06-16
EP3832499A1 (en) 2021-06-09

Similar Documents

Publication Publication Date Title
CN106991077A (zh) 一种矩阵计算装置
CN106990940A (zh) 一种向量计算装置
CN109522254B (zh) 运算装置及方法
WO2017185389A1 (zh) 一种用于执行矩阵乘运算的装置和方法
CN107315715A (zh) 一种用于执行矩阵加/减运算的装置和方法
CN104915322B (zh) 一种卷积神经网络硬件加速方法
Fang et al. swdnn: A library for accelerating deep learning applications on sunway taihulight
CN107608715A (zh) 用于执行人工神经网络正向运算的装置及方法
CN103617150B (zh) 一种基于gpu的大规模电力系统潮流并行计算的系统及其方法
CN107305538A (zh) 一种子矩阵运算装置及方法
CN106991477A (zh) 一种人工神经网络压缩编码装置和方法
CN107315718A (zh) 一种用于执行向量内积运算的装置和方法
CN107329734A (zh) 一种用于执行卷积神经网络正向运算的装置和方法
CN109426519A (zh) 线内数据检查以进行工作量简化
CN107315717A (zh) 一种用于执行向量四则运算的装置和方法
CN109032668A (zh) 具有高带宽和低功率向量寄存器堆的流处理器
KR20190029515A (ko) 비트폭이 다른 연산 데이터를 지원하는 연산 유닛, 연산 방법 및 연산 장치
CN107315568A (zh) 一种用于执行向量逻辑运算的装置
CN115880132A (zh) 图形处理器、矩阵乘法任务处理方法、装置及存储介质
CN107305486A (zh) 一种神经网络maxout层计算装置
CN107315567A (zh) 一种用于执行向量最大值最小值运算的装置和方法
EP3447690A1 (en) Maxout layer operation apparatus and method
Stepchenkov et al. Recurrent data-flow architecture: features and realization problems
CN206639209U (zh) 一种处理器内核结构
CN107688466A (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
TA01 Transfer of patent application right

Effective date of registration: 20180503

Address after: 100190 room 644, research complex, 6 South Road, Haidian District Science Academy, Beijing.

Applicant after: Beijing Zhongke Cambrian Technology Co., Ltd.

Address before: 210049 18 Xianlin Road, Ma Qun street, Qixia District, Nanjing, Jiangsu.

Applicant before: NANJING AIXI INFORMATION TECHNOLOGY CO., LTD.

TA01 Transfer of patent application right
CB02 Change of applicant information

Address after: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing

Applicant after: Zhongke Cambrian Technology Co., Ltd

Address before: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing

Applicant before: Beijing Zhongke Cambrian Technology Co., Ltd.

CB02 Change of applicant information