CN110647356A - 运算装置及相关产品 - Google Patents

运算装置及相关产品 Download PDF

Info

Publication number
CN110647356A
CN110647356A CN201810680463.5A CN201810680463A CN110647356A CN 110647356 A CN110647356 A CN 110647356A CN 201810680463 A CN201810680463 A CN 201810680463A CN 110647356 A CN110647356 A CN 110647356A
Authority
CN
China
Prior art keywords
instruction
tensor
decomposition
unit
rank selection
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
CN201810680463.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.)
Cambricon Technologies Corp Ltd
Beijing Zhongke Cambrian Technology Co Ltd
Original Assignee
Beijing Zhongke Cambrian 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 Beijing Zhongke Cambrian Technology Co Ltd filed Critical Beijing Zhongke Cambrian Technology Co Ltd
Priority to CN201810680463.5A priority Critical patent/CN110647356A/zh
Publication of CN110647356A publication Critical patent/CN110647356A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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

Abstract

本公开涉及运算装置及相关产品,所述装置包括控制器单元和运算单元,所述控制器单元用于获取张量分解指令;所述运算单元用于:在所述控制器单元的控制下获取待分解张量和所述张量分解指令;根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果。在本公开实施例中,由控制器单元和运算单元组成的张量分解运算装置可以高效、可靠地完成张量分解运算,处理效率高,处理结果准确。

Description

运算装置及相关产品
技术领域
本公开涉及信息处理技术领域,尤其涉及一种运算装置及相关产品。
背景技术
随着信息技术的不断发展,利用各种运算装置完成复杂任务的需求越来越大。例如,利用通用处理器完成机器视觉等复杂任务。传统的运算装置的处理能力受到计算能力、内存容量等方面的限制,在处理复杂任务时,存在处理效率低、结果不准确等各种问题。
发明内容
有鉴于此,本公开提出了一种运算装置及相关产品,用以提高运算装置的处理效率,并提高运算结果的准确率。
根据本公开的一方面,提供了一种张量分解运算装置,所述装置包括控制器单元和运算单元,
所述控制器单元用于获取张量分解指令;
所述运算单元用于:
在所述控制器单元的控制下获取待分解张量和所述张量分解指令;
根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,所述控制器单元包括指令处理单元,所述指令处理单元用于:
解析所述张量分解指令,得到秩选择指令和分解运算指令;
所述运算单元用于在所述控制器单元的控制下获取待分解张量和所述张量分解指令,包括:
所述运算单元用于在所述控制器单元的控制下获取所述待分解张量、所述秩选择指令和所述分解运算指令;
所述运算单元用于根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果,包括:
所述运算单元用于根据所述待分解张量、所述秩选择指令和所述分解运算指令进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,所述运算单元用于根据所述待分解张量、所述秩选择指令和所述分解运算指令进行张量分解运算,得到张量分解结果,包括:
所述运算单元用于:
根据所述待分解张量和所述秩选择指令进行秩选择,得到秩选择结果;
根据所述待分解张量、所述秩选择结果和所述分解运算指令进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,所述运算单元用于根据所述待分解张量和所述秩选择指令进行秩选择,得到秩选择结果,包括:
所述运算单元用于根据所述待分解张量和所述秩选择指令,利用变分贝叶斯矩阵分解进行秩选择,得到秩选择结果。
在一种可能的实现方式中,所述运算单元用于根据所述待分解张量和所述秩选择指令进行秩选择,得到秩选择结果,包括:
所述运算单元用于根据所述待分解张量、所述秩选择指令和选择精度进行秩选择,得到秩选择结果。
在一种可能的实现方式中,所述运算单元用于根据所述待分解张量、所述秩选择结果和所述分解运算指令进行张量分解运算,得到张量分解结果,包括:
所述运算单元用于根据所述待分解张量、所述秩选择结果和所述分解运算指令,利用Tucker-2分解进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,所述控制器单元还包括存储队列单元,所述存储队列单元用于存储指令队列,所述指令处理单元还用于:
将所述秩选择指令和所述分解运算指令存储至所述存储队列单元;
所述运算单元用于在所述控制器单元的控制下获取待分解张量、所述秩选择指令和所述分解运算指令,包括:
所述运算单元用于在所述控制器单元的控制下,在所述存储队列单元中获取所述秩选择指令和所述分解运算指令。
在一种可能的实现方式中,所述控制器单元还包括依赖关系处理单元和指令缓存单元,所述依赖关系处理单元用于:
判断待执行的第二运算指令和正在执行的第一运算指令之间的依赖关系,所述第一运算指令包括秩选择指令或分解运算指令,所述第二运算指令包括秩选择指令或分解运算指令;
当所述第二运算指令依赖于所述第一运算指令的计算结果时,将所述第二运算指令存储到所述指令缓存单元;
在所述运算单元执行完所述第一运算指令后,所述依赖关系处理单元在所述指令缓存单元提取所述第二运算指令后传送至所述运算单元,以使所述运算单元根据所述第一运算指令的计算结果执行所述第二运算指令。
在一种可能的实现方式中,所述装置还包括存储单元,所述控制器单元用于获取张量分解指令,包括:
所述控制器单元用于在所述存
储单元中获取张量分解指令。
在一种可能的实现方式中,所述运算单元包括主处理电路和多个从处理电路,所述主处理电路用于:
根据待分解张量和秩选择指令进行秩选择,得到秩选择结果;
将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标从处理电路,以使所述目标从处理电路根据所述主处理电路发送的所述待分解张量、所述秩选择结果和所述分解运算指令进行张量计算,得到中间结果,所述目标从处理电路包括任一从处理电路;
根据目标从处理电路发送的中间结果得到所述张量分解结果。
在一种可能的实现方式中,所述运算单元还包括分支处理电路,所述主处理电路用于将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标从处理电路,包括:
所述主处理电路用于将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标分支处理电路,所述目标分支处理电路包括任一分支处理电路,
以使所述目标分支处理电路将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标从处理电路。
在一种可能的实现方式中,所述主处理电路包括主处理控制器单元,所述从处理电路包括从处理控制器单元,所述主处理控制器单元用于:
对所述秩选择指令进行译码,得到微秩选择指令;和/或
对所述分解运算指令进行译码,得到微分解运算指令;
所述从处理控制器单元用于:
对所述秩选择指令进行译码,得到微秩选择指令;和/或
对所述分解运算指令进行译码,得到微分解运算指令。根据本公开的一方面,提供了一种神经网络运算装置,所述神经网络运算装置包括上述任一项所述的张量分解运算装置,所述神经网络运算装置用于完成设定的神经网络运算。
根据本公开的一方面,提供了一种组合运算装置,所述组合运算装置包括上述的神经网络运算装置,通用互联接口和其他处理装置;
所述神经网络运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。
根据本公开的一方面,提供了一种神经网络芯片,所述神经网络芯片包括:
上述任一项所述的张量分解运算装置;或
上述的神经网络运算装置;或
上述的组合处理装置。
根据本公开的一方面,提供了一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述的神经网络芯片。
根据本公开的一方面,提供了一种板卡,该板卡包括上述的神经网络芯片封装结构。
根据本公开的一方面,提供了一种电子设备,所述电子设备包括:
上述任一项所述的张量分解运算装置;或
上述的神经网络运算装置;或
上述的组合处理装置;或
上述的神经网络芯片。
根据本公开的一方面,提供了一种张量分解运算方法,所述方法应用于张量分解运算装置,所述张量分解运算装置包括控制器单元和运算单元,所述方法包括:
所述控制器单元获取张量分解指令;
所述运算单元在所述控制器单元的控制下获取待分解张量和所述张量分解指令,
所述运算单元根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,所述控制器单元包括指令处理单元,所述方法还包括:
所述指令处理单元解析所述张量分解指令,得到秩选择指令和分解运算指令;
所述运算单元在所述控制器单元的控制下获取待分解张量和所述张量分解指令,包括:
所述运算单元在所述控制器单元的控制下获取所述待分解张量、所述秩选择指令和所述分解运算指令:
所述运算单元根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果,包括:
所述运算单元根据所述待分解张量、所述秩选择指令和所述分解运算指令进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,所述运算单元根据所述待分解张量、所述秩选择指令和所述分解运算指令进行张量分解运算,得到张量分解结果,包括:
所述运算单元根据所述待分解张量和所述秩选择指令进行秩选择,得到秩选择结果;
所述运算单元根据所述待分解张量、所述秩选择结果和所述分解运算指令进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,所述运算单元根据所述待分解张量和所述秩选择指令进行秩选择,得到秩选择结果,包括:
所述运算单元根据所述待分解张量和所述秩选择指令,利用变分贝叶斯矩阵分解进行秩选择,得到秩选择结果。
在一种可能的实现方式中,所述运算单元根据所述待分解张量和所述秩选择指令进行秩选择,得到秩选择结果,包括:
所述运算单元根据所述待分解张量、所述秩选择指令和选择精度进行秩选择,得到秩选择结果。
在一种可能的实现方式中,所述运算单元根据所述待分解张量、所述秩选择结果和所述分解运算指令进行张量分解运算,得到张量分解结果,包括:
所述运算单元根据所述待分解张量、所述秩选择结果和所述分解运算指令,利用Tucker-2分解进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,所述控制器单元还包括存储队列单元,所述存储队列单元用于存储指令队列,所述方法还包括:
所述指令处理单元将所述秩选择指令和所述分解运算指令存储至所述存储队列单元;
所述运算单元在所述控制器单元的控制下获取待分解张量、所述秩选择指令和所述分解运算指令,包括:
所述运算单元在所述控制器单元的控制下,在所述存储队列单元中获取所述秩选择指令和所述分解运算指令。
在一种可能的实现方式中,所述控制器单元还包括依赖关系处理单元和指令缓存单元,所述方法还包括:
所述依赖关系处理单元判断待执行的第二运算指令和正在执行的第一运算指令之间的依赖关系,所述第一运算指令包括秩选择指令或分解运算指令,所述第二运算指令包括秩选择指令或分解运算指令;
当所述第二运算指令依赖于所述第一运算指令的计算结果时,所述依赖关系处理单元将所述第二运算指令存储到所述指令缓存单元;
在所述运算单元执行完所述第一运算指令后,所述依赖关系处理单元在所述指令缓存单元提取所述第二运算指令后传送至所述运算单元,以使所述运算单元根据所述第一运算指令的计算结果执行所述第二运算指令。
在一种可能的实现方式中,所述装置还包括存储单元,所述控制器单元获取张量分解指令,包括:
所述控制器单元在所述存储单元中获取张量分解指令。
在一种可能的实现方式中,所述运算单元包括主处理电路和多个从处理电路,所述运算单元根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果,包括:
所述主处理电路根据待分解张量和秩选择指令进行秩选择,得到秩选择结果;
所述主处理电路将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标从处理电路,以使所述目标从处理电路根据所述主处理电路发送的所述待分解张量、所述秩选择结果和所述分解运算指令进行张量计算,得到中间结果,所述目标从处理电路包括任一从处理电路;
所述主处理电路根据目标从处理电路发送的中间结果得到所述张量分解结果。
在一种可能的实现方式中,所述运算单元还包括分支处理电路,所述主处理电路将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标从处理电路,包括:
所述主处理电路将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标分支处理电路,所述目标分支处理电路包括任一分支处理电路,
以使所述目标分支处理电路将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标从处理电路。
在一种可能的实现方式中,所述主处理电路包括主处理控制器单元,所述从处理电路包括从处理控制器单元,所述方法还包括:
所述主处理控制器单元对所述秩选择指令进行译码,得到微秩选择指令;和/或
所述主处理控制器单元对所述分解运算指令进行译码,得到微分解运算指令;
所述从处理控制器单元对所述秩选择指令进行译码,得到微秩选择指令;和/或
所述从处理控制器单元对所述分解运算指令进行译码,得到微分解运算指令。在一些实施例中,所述电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
在一些实施例中,所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
在本公开实施例中,所述张量分解运算装置包括控制器单元和运算单元,所述控制器单元用于获取张量分解指令,所述运算单元用于根据待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果。由控制器单元和运算单元组成的张量分解运算装置可以高效、可靠地完成张量分解运算,处理效率高,处理结果准确。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开一实施例的张量分解运算装置的框图;
图2示出根据本公开一实施例的张量分解运算装置的框图;
图3示出根据本公开一实施例的张量分解运算装置的框图;
图4示出根据本公开一实施例的张量分解运算装置的框图;
图5示出根据本公开一实施例的张量分解运算装置的框图;
图6示出根据本公开一实施例的张量分解运算装置中张量分解指令的结构示意图;
图7示出根据本公开一实施例的组合运算装置的框图;
图8示出根据本公开一实施例的张量分解运算方法的流程图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出根据本公开一实施例的张量分解运算装置的框图,如图1所示,所述张量分解运算装置包括控制器单元11和运算单元12,
所述控制器单元11用于获取张量分解指令;
所述运算单元12用于:
在所述控制器单元的控制下获取待分解张量和所述张量分解指令;
根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,张量可以是多维数组,张量可以包括一阶张量(向量)、二阶张量(矩阵)、三阶张量及高阶张量等。张量分解可以包括:将高阶张量进行张量分解得到低阶的张量分解结果,且分解后的低阶的张量分解结果之和可以近似等于分解前的高阶张量。张量分解在机器学习、数据挖掘、信号处理等领域具有广泛的应用。
在一种可能的实现方式中,张量分解运算装置中的所述控制器单元11与所述运算单元12连接。所述控制器单元11可以用于获取待计算的数据、运算模型以及计算指令和/或运算指令。计算指令可以包括一个单独的指令,也可以包括多个运算指令的组合。所述运算模型可以包括机器学习模型和/或非机器学习模型。当控制器单元11获取到的运算模型包括机器学习模型时,获取到的待计算的数据可以包括待分解张量。待分解张量可以包括:神经网络中的输入数据和/或输出数据。
所述计算指令和/或运算指令包括但不限于:正向运算指令或反向运算指令,或其他神经网络运算指令等等,例如卷积运算指令、张量分解指令。本公开具体实施方式并不限制上述计算指令和/或运算指令的具体表现形式。
在一种可能的实现方式中,控制器单元11可以通过输入输出单元获取待计算的数据、机器学习模型以及计算指令。所述输入输出单元可以为一个或多个数据I/O接口或I/O引脚。
在一种可能的实现方式中,所述控制器单元11可以用于解析计算指令得到多个运算指令,并将多个运算指令及待计算的数据发送至运算单元12进行处理。
在一种可能的实现方式中,所述控制器单元11用于获取张量分解指令。其中,张量分解指令可以包括执行不同张量分解算法的张量分解指令。其中,张量分解算法可以包括Tucker分解算法、用奇异值分解(SVD)算法和主成份PCA(Principal ComponentsAnalysis)分解算法。
待分解张量可以包括三阶张量、四阶张量等不同阶数的待分解张量,可以包括应用于各种分解用途的待分解张量。本公开不限定待分解张量的阶数、待分解张量的具体表现形式,以及张量分解指令的具体表现形式。
控制器单元11可以用于神经网络的相关计算。当控制器单元11用于神经网络计算时,张量分解指令可以包括Tucker分解指令。
运算单元12可以用于在所述控制器单元11的控制下获取待分解张量和所述张量分解指令,包括,运算单元12可以获取控制器单元11直接传送的张量分解指令,并根据张量分解指令中携带的待分解张量的获取地址,在相应的存储器中获取待分解张量。运算单元12也可以根据控制器单元11发送的获取指令中的获取地址,在相应的存储器中获取待分解张量和/或张量分解指令。本公开不限定运算单元12获取待分解张量和张量分解指令的具体实现方式。待分解张量可以包括神经网络中的输入数据和/或输出数据。
在一种可能的实现方式中,运算单元12获取到的张量分解指令可以是一个计算指令。运算单元12可以将张量分解指令解析为多个用于张量分解的分解运算指令。运算单元12可以根据待分解张量和解析得到的分解运算指令进行张量分解,得到张量分解结果。
在本实施例中,所述张量分解运算装置包括控制器单元和运算单元,所述控制器单元用于获取张量分解指令,所述运算单元用于根据待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果。由控制器单元和运算单元组成的张量分解运算装置可以高效、可靠地完成张量分解运算,处理效率高,处理结果准确。
图2示出根据本公开一实施例的张量分解运算装置的框图,如图2所示,在所述张量分解运算装置中,所述控制器单元11包括指令处理单元111,所述指令处理单元111用于:
解析所述张量分解指令,得到秩选择指令和分解运算指令;
所述运算单元12用于在所述控制器单元11的控制下获取待分解张量和所述张量分解指令,包括:
所述运算单元12用于在所述控制器单元11的控制下获取所述待分解张量、所述秩选择指令和所述分解运算指令:
所述运算单元12用于根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果,包括:
所述运算单元12用于根据所述待分解张量、所述秩选择指令和所述分解运算指令进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,N阶张量可以被表示成N个向量的外积。可以将张量表示成有限个秩-张量之和。例如,一个m阶张量是由一组具有m个下标的元素组成的一个量,若一个张量可以表示成m个向量的外积,则可以称所述m阶张量为秩-1张量。若一个张量可以表示成若干个秩-1张量的线性组合,且所需要的秩-1张量的数量至少为r,则所述张量的秩为r。
在一种可能的实现方式中,在张量分解中,可以对张量进行秩选择后得到秩选择结果,再根据秩选择结果和张量分解运算指令,完成张量分解运算。张量分解指令可以包括秩选择指令和分解运算指令。控制器单元11可以包括指令处理单元111,指令处理单元111可以用于解析张量分解指令,得到秩选择指令和分解运算指令。根据指令处理单元111解析得到的秩选择指令和分解运算指令,运算单元12可以用于根据所述待分解张量、所述秩选择指令和所述分解运算指令进行张量分解运算,得到张量分解结果。
可以根据需求确定秩选择指令和分解运算指令。可以在一种张量分解算法中选择相应的秩选择指令和分解运算指令。还可以在不同的张量分解算法中分别选择秩选择指令和分解运算指令,并通过选中的秩选择指令和分解运算指令的组合实现对应的张量分解算法。也就是说,本公开不限制秩选择指令和分解运算指令的具体表现形式。
在一种可能的实现方式中,所述张量分解运算装置中的所述运算单元12用于根据待分解张量、所述秩选择指令和所述分解运算指令进行张量分解运算,得到张量分解结果,包括:
所述运算单元12用于:
根据所述待分解张量和所述秩选择指令进行秩选择,得到秩选择结果;
根据所述待分解张量、所述秩选择结果和所述分解运算指令进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,张量X的秩可以定义为用秩-张量之和来表示X所需要的秩-张量的最小个数。求解张量的秩选择结果,可以从预设值开始尝试,直到计算得到一个较好的秩-张量的秩选择结果为止。也可以根据张量分解的应用背景和先验经验,预先设定张量的秩选择结果。
当运算单元12在控制器单元11的控制下,获取到秩选择指令和分解运算指令时,运算单元12根据待分解张量和秩选择指令进行秩选择后,可以得到秩选择结果,再根据所述待分解张量、所述秩选择结果和所述分解运算指令进行张量分解运算,得到张量分解结果。
在本实施例中,控制器单元中的指令处理单元可以用于解析张量分解指令,得到秩选择指令和分解运算指令。根据指令处理单元解析得到的秩选择指令和分解运算指令,运算单元可以进行更加高效和更有针对性的张量分解。
在一种可能的实现方式中,所述运算单元12用于根据所述待分解张量和所述秩选择指令进行秩选择,得到秩选择结果,包括:
所述运算单元12用于根据所述待分解张量和所述秩选择指令,利用变分贝叶斯矩阵分解进行秩选择,得到秩选择结果。
在一种可能的实现方式中,在机器学习中,通常需要近似求解不可观测变量的后验概率分布。由于求解过程的复杂性,很难根据贝叶斯理论求得后验概率分布的公式精确解。可以利用变分贝叶斯矩阵分解得到一个近似后验概率分布。变分贝叶斯矩阵分解可以是一种矩阵分解模型。
张量分解中的秩选择结果可以是一个后验概率分布,可以利用变分贝叶斯矩阵分解(variational Bayesian matrix factorization,VBMF)进行求解。运算单元12可以利用变分贝叶斯矩阵分解进行秩选择后得到秩选择结果。
在本实施例中,利用变分贝叶斯矩阵分解进行秩选择后,可以得到更加精确的秩选择结果。
在一种可能的实现方式中,所述运算单元12用于根据所述待分解张量和所述秩选择指令进行秩选择,得到秩选择结果,包括:
所述运算单元12用于根据所述待分解张量、所述秩选择指令和选择精度进行秩选择,得到秩选择结果。
在一种可能的实现方式中,控制器单元11可以用于在获取待分解张量和张量分解指令的同时,同时获取选择精度。运算单元12可以用于在控制器单元11的控制下,获取待分解张量和张量分解指令的同时获取选择精度。
也可以将选择精度存储在控制器单元11或运算单元12中。可以根据需求设定选择精度。本公开对运算单元12获取选择精度的具体实现方式不做限定。
运算单元12可以用于根据所述待分解张量、所述秩选择指令和选择精度进行秩选择,得到秩选择结果。选择精度越高,运算单元12用于得到秩选择结果的系统开销(包括访存开销、时延开销和能耗开销)越大。
在本实施例中,可以通过调整选择精度得到不同精度的秩选择结果,以符合不同的秩选择需求。
在一种可能的实现方式中,所述运算单元12用于根据所述待分解张量、所述秩选择结果和所述分解运算指令进行张量分解运算,得到张量分解结果,包括:
所述运算单元12用于根据所述待分解张量、所述秩选择结果和所述分解运算指令,利用Tucker-2分解进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,以大小为D×D×S×T的4维张量κ进行张量分解为例,可以以公式(1)对张量κ进行Tucker-2分解:
Figure BDA0001710217930000121
其中,C为核心张量(core tensor),是一个大小为D×D×R3×R4的4维张量。U(3)为第一因子矩阵,大小为S×R3。U(4)为第二因子矩阵,大小为T×R4
在本实施例中,运算单元12用于利用Tucker-2分解进行张量分解运算,可以使得到的张量分解结果更加精准。
在一种可能的实现方式中,所述控制器单元11还包括存储队列单元113,所述存储队列单元113用于存储指令队列,所述指令处理单元111还用于:
将所述秩选择指令和所述分解运算指令存储至所述存储队列单元113;
所述运算单元12用于在所述控制器单元的控制下获取待分解张量、所述秩选择指令和所述分解运算指令,包括:
所述运算单元12用于在所述控制器单元11的控制下,在所述存储队列单元113中获取所述秩选择指令和所述分解运算指令。
在一种可能的实现方式中,存储队列单元113用于存储指令队列,指令队列中可以包括按照队列的先进先出顺序待执行的多个运算指令或计算指令。
指令处理单元111用于解析得到秩选择指令和分解运算指令后,还用于将秩选择指令和分解运算指令存储至存储队列单元113的指令队列中。运算单元12用于在控制器单元11的控制下,在存储队列单元113中按照指令队列中指令执行的先后顺序,获取秩选择指令和分解运算指令。
在本实施例中,控制器单元还包括存储队列单元,秩选择指令和分解运算指令存储在存储队列单元中的指令队列中,可以提高张量分解运算装置的整体处理效率。
在一种可能的实现方式中,所述控制器单元11还包括依赖关系处理单元112和指令缓存单元110,所述依赖关系处理单元112用于:
判断待执行的第二运算指令和正在执行的第一运算指令之间的依赖关系,所述第一运算指令包括秩选择指令或分解运算指令,所述第二运算指令包括秩选择指令或分解运算指令;
当所述第二运算指令依赖于所述第一运算指令的计算结果时,将所述第二运算指令存储到所述指令缓存单元110;
在所述运算单元执行完所述第一运算指令后,所述依赖关系处理单元112在所述指令缓存单元110提取所述第二运算指令后传送至所述运算单元12,以使所述运算单元12根据所述第一运算指令的计算结果执行所述第二运算指令。
在一种可能的实现方式中,待执行的第二运算指令包括存储队列单元113存储的指令队列中排在第一位的、马上发射的指令。正在执行的第一运算指令包括存储队列单元113存储的指令队列中已经发射的,正在运算单元12中执行的指令。第一运算指令可以包括秩选择指令或分解运算指令。第二运算指令可以包括秩选择指令或分解运算指令。
存储队列单元113中可以包括多个秩选择指令和多个分解运算指令。例如,存储队列单元113中包括10个秩选择指令和10个分解运算指令,其中,10个秩选择指令分别为秩选择指令1、秩选择指令2……秩选择指令10,10个分解运算指令分别为分解运算指令1、分解运算指令2……分解运算指令10。当第一运算指令为秩选择指令1,第二运算指令为分解运算指令1时,依赖关系处理单元112判断分解运算指令1依赖于秩选择指令1的计算结果,则依赖关系处理单元112将分解运算指令1存储到指令缓存单元110。在运算单元12执行完秩选择指令1后,依赖关系处理单元112在指令缓存单元110提取分解运算指令1后传送至运算单元12,以使运算单元12根据秩选择指令1的计算结果执行分解运算指令1。
当第一运算指令为分解运算指令1,第二运算指令为秩选择指令2时,依赖关系处理单元112判断秩选择指令2依赖于分解运算指令1的计算结果,则依赖关系处理单元112将秩选择指令2存储到指令缓存单元110。在运算单元12执行完分解运算指令1后,依赖关系处理单元112在指令缓存单元110提取秩选择指令2后传送至运算单元12,以使运算单元12根据分解运算指令1的计算结果执行秩选择指令2。
在一种可能的实现方式中,确定第一运算指令和第二运算指令之间是否存在依赖关系,可以包括:
依据第一运算指令提取第一运算指令中所需数据的第一存储地址区间,依据第二运算指令提取第二运算指令中所需数据的第二存储地址区间;
当第二存储地址区间与第一存储地址区间具有重叠的区域时,第一运算指令与所述第二运算指令具有依赖关系;
当第二存储地址区间与所述第一存储地址区间不具有重叠的区域时,第一运算指令与第二运算指令不具有依赖关系。
在本实施例中,控制器单元还包括依赖关系处理单元和指令缓存单元。依赖关系处理单元和指令缓存单元可以使得秩选择指令和分解运算指令能够按照正确的顺序传送至运算单元,以使运算单元可以根据秩选择指令的执行结果执行分解运算指令,从而提高运算单元的运算效率。
在一种可能的实现方式中,所述装置还包括存储单元10,所述控制器单元11用于获取张量分解指令,包括:
所述控制器单元11用于在所述存储单元10中获取张量分解指令。
在一种可能的实现方式中,存储单元10可以包括寄存器101和/或缓存102中的任意一个或组合。其中缓存102可以用于存储计算指令和或运算指令。寄存器101可以用于存储待计算的数据、机器学习模型以及计算指令和/或运算指令。缓存102可以为高速暂存缓存。
在一种可能的实现方式中,运算单元12可以在控制器单元11的控制下,在存储单元10中获取待分解张量和张量分解指令。
在一个可能的实现方式中,存储单元10还可以包括数据I/O单元103。数据I/O单元103可以与外部设备或其他部件连接,完成数据的输入或输出。
在本实施例中,存储单元可以包括寄存器和/或缓存。寄存器和/或缓存可以提高张量分解运算的计算效率,降低功耗。
图3示出根据本公开一实施例的张量分解运算装置的框图,如图3所示,在所述张量分解运算装置中,所述运算单元12包括主处理电路121和多个从处理电路122,所述主处理电路121用于:
根据待分解张量和秩选择指令进行秩选择,得到秩选择结果;
将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标从处理电路,以使所述目标从处理电路根据所述主处理电路121发送的所述待分解张量、所述秩选择结果和所述分解运算指令进行张量计算,得到中间结果,所述目标从处理电路包括任一从处理电路122。
根据目标从处理电路发送的中间结果得到所述张量分解结果。
在一种可能的实现方式中,主处理电路121可以用于对待分解张量执行预处理,包括对带分解张量进行数据类型的转换,和/或进行数据结构的转换。主处理电路121可以向各从处理电路122传送待分解张量、秩选择结果和分解运算指令中的其中一种或任意组合。
从处理电路122可以根据主处理电路121发送的待分解张量、秩选择结果和分解运算指令,执行张量分解运算,得到张量分解的中间结果,并将中间结果传送至主处理电路121。
主处理电路121可以对从处理电路122传送的中间结果进行处理后,得到张量分解结果。
在一种可能的实现方式中,可以一次对多个同尺寸的张量(张量队列)进行分解。可以在对队列中第一个待分解张量在主处理电路121中进行秩选择后,当分解运算指令发送后,主处理电路121可以将分解运算指令、秩选择结果和一个待分解张量发送给一个目标从处理电路。由目标从处理电路对该待分解张量进行分解。主处理电路121可以将多个待分解张量同时发送给多个目标从处理电路进行并行计算。
在本实施例中,运算单元包括主处理电路和从处理电路,可以通过多个从处理电路对多个待分解张量进行并行计算,提高运算单元的运算效率。
图4示出根据本公开一实施例的张量分解运算装置的框图,如图4所示,在所述张量分解运算装置中,所述多个从处理电路122呈矩阵式分布。
在一种可能的实现方式中,多个从处理电路122可以成矩阵式分布,例如,多个从处理电路122可以成M×N的矩阵式分布。其中,M为矩阵的行数,N为矩阵的列数。
各从处理电路122与相邻的其它从处理电路122连接。主处理电路121可以与各从处理电路122连接,也可以与从各处理电路122中位于矩阵边缘的从处理电路122连接。主处理电路121可以与从处理电路122双向连接。也可以单项连接。各从处理电路122之间可以双向连接,也可以单项连接。
如图4所示,主处理电路121与位于M×N矩阵中的第一行、第M行、第一列以及第N列的从处理电路122连接。且主处理电路121与各从处理电路122,以及各从处理电路122之间,均为单向连接。
在如图4所示的运算单元12的结构中,主处理电路121可以向所有的从处理电路122进行广播,从处理电路122可以根据接收到的广播消息,确定自身接收的待分解张量、秩选择结果和分解运算指令,或确定自身需要获取的待分解张量、秩选择结果和分解运算指令的获取地址。
在一种可能的实现方式中,可以根据需求,主处理电路121确定部分从处理电路122处于工作状态。
在本实施例中,多个从处理电路122呈矩阵式分布的运算单元结构,可以利用从处理电路的分支效应,提高运算单元的张量分解运算效率,以及提高张量分解结果的准确率。
图5示出根据本公开一实施例的张量分解运算装置的框图,如图5所示,在所述张量分解运算装置中,所述运算单元12还包括分支处理电路123,所述主处理电路121用于将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标从处理电路,包括:
所述主处理电路121用于将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标分支处理电路,所述目标分支处理电路包括任一分支处理电路123,
以使所述目标分支处理电路将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标从处理电路。
在一种可能的实现方式中,主处理电路121可以与多个分支处理电路123连接。各分支处理电路123分别连接至一个或多个从处理电路122。各分支处理电路123与从处理电路122之间的连接方式可以相同,也可以不同。
分支处理电路123可以不对主处理电路121发送的相关数据进行处理,只转发主处理电路121的相关数据,也可以对主处理电路121发送的相关数据进行处理后,再转发至从处理电路122。
主处理电路121可以将待分解张量、秩选择结果和分解运算指令传送至相应的分支处理电路123,再由分支处理电路123将待分解张量、秩选择结果和分解运算指令传送至相应的从处理电路122进行张量分解运算。
从处理电路122得到张量分解运算的中间结果后,将中间结果传送至分支处理电路123。中间结果可以由分支处理电路123进行处理后转发至主处理电路121,也可以由分支处理电路123直接转发至主处理电路121。
可以根据需求,确定部分分支处理电路123处于工作状态。
在本实施例中,分支处理电路可以使得主处理电路能够将张量分解任务更加合理的分配至不同的从处理电路。张量分解运算装置的处理效率更高,张量处理运算的实现方式也更加灵活。
在一种可能的实现方式中,所述主处理电路121包括主处理控制器单元,所述主处理控制器单元用于:
对所述秩选择指令进行译码,得到微秩选择指令;和/或
对所述分解运算指令进行译码,得到微分解运算指令。
在一种可能的实现方式中,将运算指令进行译码后,可以得到多个微运算指令。秩选择指令和分解运算指令可以是一个运算指令,也可以是多个运算指令的组合。
主处理电路121中的主处理控制器单元,可以用于秩选择指令和/或分解运算指令进行译码,得到相应的微运算指令,包括微秩选择指令和微分解运算指令。微运算指令可以能被进一步解码为各部件、各单元或各处理电路的控制信号。
在本实施例中,主处理电路中的主处理控制器单元可以提高主处理电路的处理能力,提高张量分解运算装置的整体运算能力和处理效率。
在一种可能的实现方式中,所述从处理电路122包括从处理控制器单元,所述从处理控制器单元用于:
对所述秩选择指令进行译码,得到微秩选择指令;和/或
对所述分解运算指令进行译码,得到微分解运算指令。
在一种可能的实现方式中,从处理电路122中的从处理控制器单元,可以用于秩选择指令和/或分解运算指令进行译码,得到相应的微运算指令,包括微秩选择指令和微分解运算指令。微运算指令可以能被进一步解码为各部件、各单元或各处理电路的控制信号。
在本实施例中,从处理电路中的从处理控制器单元可以提高从处理电路的处理能力,提高张量分解运算装置的整体运算能力和处理效率。
在一种可能的实现方式中,所述张量分解指令包括操作域和操作码,所述操作码包括张量分解指令的操作码,所述操作域包括存储张量分解指令的起始地址和张量分解指令的长度。
在一种可能的实现方式中,张量分解指令可以包括一个操作码和一个或多个操作域。其中,操作域可以是寄存器或立即数。
当操作域为寄存器时,寄存器可以为片外存储器,也可以为片内存储器。寄存器用于存储数据,可以用于存储n维数据,n为大于等于1的整数。例如,n=1时,为1维数据,即向量,如n=2时,为2维数据,即矩阵,如n=3或3以上时,为多维张量。
图6示出根据本公开一实施例的张量分解运算装置中张量分解指令的结构示意图,计算指令或运算指令可以为神经网络中的计算指令或运算指令,如图6所示,操作码可以包括计算、输入/输出等。当操作码为计算时,可以根据寄存器0中的输入数据的起始地址,结合在寄存器1中获取的输入数据的长度,得到完整的输入数据用于神经网络的计算。或者可以根据寄存器0中的权值的起始地址,结合在寄存器1中获取的权值长度,可以得到完整的权值用于神经网络的计算。
当计算指令和运算指令为张量分解指令、秩选择指令或分解运算指令时,可以根据需求确定不同的寄存器存储各指令所需待分解张量的起始地址和长度。如图6所示,可以根据寄存器0中的秩选择指令起始地址,结合在寄存器1中获取的秩选择指令长度,得到完整的秩选择指令。
在本实施例中,张量分解指令可以包括操作码和操作域。利用操作码和操作域可以灵活的设置张量分解指令的存储方式。
在一种可能的实现方式中,本公开还提供机器学习运算装置,神经网络运算装置包括一个或多个本公开中的张量分解运算装置。一个机器学习运算装置可以用于从其他机器学习运算处理装置或非机器学习运算处理中获取待运算数据和控制信息,执行指定的机器学习运算,并将执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当机器学习运算装置包含一个以上张量分解运算装置时,张量分解运算装置间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持多个张量分解的并行运算。此时,多个张量分解装置可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以有各自的内存。。此外,多个张量分解装置的互联方式可以是任意互联拓扑。
该神经网络运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
图7示出根据本公开一实施例的组合处理装置的框图,如图7所示,所述组合处理装置,包括上述的神经网络运算装置,通用互联接口,和其他处理装置。
神经网络运算装置与其他处理装置进行交互,共同完成用户指定的操作。其他处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处理装置作为神经网络运算装置与外部数据和控制的接口,包括数据搬运,完成对本神经网络运算装置的开启、停止等基本控制;其他处理装置也可以和神经网络运算装置协作共同完成运算任务。通用互联接口,用于在所述神经网络运算装置与其他处理装置间传输数据和控制指令。该神经网络运算装置从其他处理装置中获取所需的输入数据,写入神经网络运算装置片上的存储装置;可以从其他处理装置中获取控制指令,写入神经网络运算装置片上的控制缓存;也可以读取神经网络运算装置的存储模块中的数据并传输给其他处理装置。
组合处理装置还可以包括存储装置,存储装置分别与所述神经网络运算装置和所述其他处理装置连接。存储装置用于保存在所述神经网络运算装置和所述其他处理装置的数据,尤其适用于所需要运算的数据在本神经网络运算装置或其他处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一种可能的实现方式中,本公开还提供神经网络芯片,其包括了上述神经网络运算装置或组合处理装置。
在一种可能的实现方式中,本公开还提供芯片封装结构,其包括了上述芯片。
在一种可能的实现方式中,本公开还提供板卡,其包括了上述芯片封装结构。
在一种可能的实现方式中,本公开还提供电子设备,其包括了上述板卡。
电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本公开所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。
图8示出根据本公开一实施例的张量分解运算方法的流程图,如图8所示,所述方法应用于张量分解运算装置,所述张量分解运算装置包括控制器单元和运算单元,所述方法包括:
步骤S10,所述控制器单元获取张量分解指令。
步骤S20,所述运算单元在所述控制器单元的控制下获取待分解张量和所述张量分解指令。
步骤S30,所述运算单元根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,所述控制器单元包括指令处理单元,所述方法还包括:
所述指令处理单元解析所述张量分解指令,得到秩选择指令和分解运算指令;
所述运算单元在所述控制器单元的控制下获取待分解张量和所述张量分解指令,包括:
所述运算单元在所述控制器单元的控制下获取所述待分解张量、所述秩选择指令和所述分解运算指令:
所述运算单元根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果,包括:
所述运算单元根据所述待分解张量、所述秩选择指令和所述分解运算指令进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,所述运算单元根据所述待分解张量、所述秩选择指令和所述分解运算指令进行张量分解运算,得到张量分解结果,包括:
所述运算单元根据所述待分解张量和所述秩选择指令进行秩选择,得到秩选择结果;
所述运算单元根据所述待分解张量、所述秩选择结果和所述分解运算指令进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,所述运算单元根据所述待分解张量和所述秩选择指令进行秩选择,得到秩选择结果,包括:
所述运算单元根据所述待分解张量和所述秩选择指令,利用变分贝叶斯矩阵分解进行秩选择,得到秩选择结果。
在一种可能的实现方式中,所述运算单元根据所述待分解张量和所述秩选择指令进行秩选择,得到秩选择结果,包括:
所述运算单元根据所述待分解张量、所述秩选择指令和选择精度进行秩选择,得到秩选择结果。
在一种可能的实现方式中,所述运算单元根据所述待分解张量、所述秩选择结果和所述分解运算指令进行张量分解运算,得到张量分解结果,包括:
所述运算单元根据所述待分解张量、所述秩选择结果和所述分解运算指令,利用Tucker-2分解进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,所述控制器单元还包括存储队列单元,所述存储队列单元用于存储指令队列,所述方法还包括:
所述指令处理单元将所述秩选择指令和所述分解运算指令存储至所述存储队列单元;
所述运算单元在所述控制器单元的控制下获取待分解张量、所述秩选择指令和所述分解运算指令,包括:
所述运算单元在所述控制器单元的控制下,在所述存储队列单元中获取所述秩选择指令和所述分解运算指令。
在一种可能的实现方式中,所述控制器单元还包括依赖关系处理单元和指令缓存单元,所述方法还包括:
所述依赖关系处理单元判断待执行的第二运算指令和正在执行的第一运算指令之间的依赖关系,所述第一运算指令包括秩选择指令或分解运算指令,所述第二运算指令包括秩选择指令或分解运算指令;
当所述第二运算指令依赖于所述第一运算指令的计算结果时,所述依赖关系处理单元将所述第二运算指令存储到所述指令缓存单元;
在所述运算单元执行完所述第一运算指令后,所述依赖关系处理单元在所述指令缓存单元提取所述第二运算指令后传送至所述运算单元,以使所述运算单元根据所述第一运算指令的计算结果执行所述第二运算指令。
在一种可能的实现方式中,所述装置还包括存储单元,所述控制器单元获取张量分解指令,包括:
所述控制器单元在所述存储单元中获取张量分解指令。
在一种可能的实现方式中,所述运算单元包括主处理电路和多个从处理电路,所述运算单元根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果,包括:
所述主处理电路根据待分解张量和秩选择指令进行秩选择,得到秩选择结果;
所述主处理电路将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标从处理电路,以使所述目标从处理电路根据所述主处理电路发送的所述待分解张量、所述秩选择结果和所述分解运算指令进行张量计算,得到中间结果,所述目标从处理电路包括任一从处理电路;
所述主处理电路根据目标从处理电路发送的中间结果得到所述张量分解结果。
在一种可能的实现方式中,所述运算单元还包括分支处理电路,所述主处理电路将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标从处理电路,包括:
所述主处理电路将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标分支处理电路,所述目标分支处理电路包括任一分支处理电路,
以使所述目标分支处理电路将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标从处理电路。
在一种可能的实现方式中,所述主处理电路包括主处理控制器单元,所述从处理电路包括从处理控制器单元,所述方法还包括:
所述主处理控制器单元对所述秩选择指令进行译码,得到微秩选择指令;和/或
所述主处理控制器单元对所述分解运算指令进行译码,得到微分解运算指令;
所述从处理控制器单元对所述秩选择指令进行译码,得到微秩选择指令;和/或
所述从处理控制器单元对所述分解运算指令进行译码,得到微分解运算指令。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (28)

1.一种张量分解运算装置,其特征在于,所述装置包括控制器单元和运算单元,
所述控制器单元用于获取张量分解指令;
所述运算单元用于:
在所述控制器单元的控制下获取待分解张量和所述张量分解指令;
根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果。
2.根据权利要求1所述的装置,其特征在于,所述控制器单元包括指令处理单元,所述指令处理单元用于:
解析所述张量分解指令,得到秩选择指令和分解运算指令;
所述运算单元用于在所述控制器单元的控制下获取待分解张量和所述张量分解指令,包括:
所述运算单元用于在所述控制器单元的控制下获取所述待分解张量、所述秩选择指令和所述分解运算指令;
所述运算单元用于根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果,包括:
所述运算单元用于根据所述待分解张量、所述秩选择指令和所述分解运算指令进行张量分解运算,得到张量分解结果。
3.根据权利要求2所述的装置,其特征在于,所述运算单元用于根据所述待分解张量、所述秩选择指令和所述分解运算指令进行张量分解运算,得到张量分解结果,包括:
所述运算单元用于:
根据所述待分解张量和所述秩选择指令进行秩选择,得到秩选择结果;
根据所述待分解张量、所述秩选择结果和所述分解运算指令进行张量分解运算,得到张量分解结果。
4.根据权利要求3所述的装置,其特征在于,所述运算单元用于根据所述待分解张量和所述秩选择指令进行秩选择,得到秩选择结果,包括:
所述运算单元用于根据所述待分解张量和所述秩选择指令,利用变分贝叶斯矩阵分解进行秩选择,得到秩选择结果。
5.根据权利要求3所述的装置,其特征在于,所述运算单元用于根据所述待分解张量和所述秩选择指令进行秩选择,得到秩选择结果,包括:
所述运算单元用于根据所述待分解张量、所述秩选择指令和选择精度进行秩选择,得到秩选择结果。
6.根据权利要求3所述的装置,其特征在于,所述运算单元用于根据所述待分解张量、所述秩选择结果和所述分解运算指令进行张量分解运算,得到张量分解结果,包括:
所述运算单元用于根据所述待分解张量、所述秩选择结果和所述分解运算指令,利用Tucker-2分解进行张量分解运算,得到张量分解结果。
7.根据权利要求2所述的装置,其特征在于,所述控制器单元还包括存储队列单元,所述存储队列单元用于存储指令队列,所述指令处理单元还用于:
将所述秩选择指令和所述分解运算指令存储至所述存储队列单元;
所述运算单元用于在所述控制器单元的控制下获取待分解张量、所述秩选择指令和所述分解运算指令,包括:
所述运算单元用于在所述控制器单元的控制下,在所述存储队列单元中获取所述秩选择指令和所述分解运算指令。
8.根据权利要求2所述的装置,其特征在于,所述控制器单元还包括依赖关系处理单元和指令缓存单元,所述依赖关系处理单元用于:
判断待执行的第二运算指令和正在执行的第一运算指令之间的依赖关系,所述第一运算指令包括秩选择指令或分解运算指令,所述第二运算指令包括秩选择指令或分解运算指令;
当所述第二运算指令依赖于所述第一运算指令的计算结果时,将所述第二运算指令存储到所述指令缓存单元;
在所述运算单元执行完所述第一运算指令后,所述依赖关系处理单元在所述指令缓存单元提取所述第二运算指令后传送至所述运算单元,以使所述运算单元根据所述第一运算指令的计算结果执行所述第二运算指令。
9.根据权利要求1所述的装置,其特征在于,所述装置还包括存储单元,所述控制器单元用于获取张量分解指令,包括:
所述控制器单元用于在所述存储单元中获取张量分解指令。
10.根据权利要求2所述的装置,其特征在于,所述运算单元包括主处理电路和多个从处理电路,所述主处理电路用于:
根据待分解张量和秩选择指令进行秩选择,得到秩选择结果;
将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标从处理电路,以使所述目标从处理电路根据所述主处理电路发送的所述待分解张量、所述秩选择结果和所述分解运算指令进行张量计算,得到中间结果,所述目标从处理电路包括任一从处理电路;
根据目标从处理电路发送的中间结果得到所述张量分解结果。
11.根据权利要求10所述的装置,其特征在于,所述运算单元还包括分支处理电路,所述主处理电路用于将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标从处理电路,包括:
所述主处理电路用于将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标分支处理电路,所述目标分支处理电路包括任一分支处理电路,
以使所述目标分支处理电路将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标从处理电路。
12.根据权利要求10所述的装置,其特征在于,所述主处理电路包括主处理控制器单元,所述从处理电路包括从处理控制器单元,所述主处理控制器单元用于:
对所述秩选择指令进行译码,得到微秩选择指令;和/或
对所述分解运算指令进行译码,得到微分解运算指令;
所述从处理控制器单元用于:
对所述秩选择指令进行译码,得到微秩选择指令;和/或
对所述分解运算指令进行译码,得到微分解运算指令。
13.一种神经网络运算装置,其特征在于,所述神经网络运算装置包括一个或多个如权利要求1-12任一项所述的张量分解运算装置,所述神经网络运算装置用于完成设定的神经网络运算。
14.一种组合运算装置,其特征在于,所述组合运算装置包括一个或多个如权利要求13任一项所述的神经网络运算装置,通用互联接口和其他处理装置;
所述神经网络运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。
15.一种神经网络芯片,其特征在于,所述神经网络芯片包括:
如权利要求1-12任一项所述的张量分解运算装置;或
如权利要求13所述的神经网络运算装置;或
如权利要求14所述的组合处理装置。
16.一种电子设备,其特征在于,所述电子设备包括:
如权利要求1-12任一项所述的张量分解运算装置;或
如权利要求13所述的神经网络运算装置;或
如权利要求14所述的组合处理装置;或
如权利要求15所述的神经网络芯片。
17.一种张量分解运算方法,其特征在于,所述方法应用于张量分解运算装置,所述张量分解运算装置包括控制器单元和运算单元,所述方法包括:
所述控制器单元获取张量分解指令;
所述运算单元在所述控制器单元的控制下获取待分解张量和所述张量分解指令,
所述运算单元根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果。
18.根据权利要求17所述的方法,其特征在于,所述控制器单元包括指令处理单元,所述方法还包括:
所述指令处理单元解析所述张量分解指令,得到秩选择指令和分解运算指令;
所述运算单元在所述控制器单元的控制下获取待分解张量和所述张量分解指令,包括:
所述运算单元在所述控制器单元的控制下获取所述待分解张量、所述秩选择指令和所述分解运算指令:
所述运算单元根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果,包括:
所述运算单元根据所述待分解张量、所述秩选择指令和所述分解运算指令进行张量分解运算,得到张量分解结果。
19.根据权利要求18所述的方法,其特征在于,所述运算单元根据所述待分解张量、所述秩选择指令和所述分解运算指令进行张量分解运算,得到张量分解结果,包括:
所述运算单元根据所述待分解张量和所述秩选择指令进行秩选择,得到秩选择结果;
所述运算单元根据所述待分解张量、所述秩选择结果和所述分解运算指令进行张量分解运算,得到张量分解结果。
20.根据权利要求19所述的方法,其特征在于,所述运算单元根据所述待分解张量和所述秩选择指令进行秩选择,得到秩选择结果,包括:
所述运算单元根据所述待分解张量和所述秩选择指令,利用变分贝叶斯矩阵分解进行秩选择,得到秩选择结果。
21.根据权利要求19所述的方法,其特征在于,所述运算单元根据所述待分解张量和所述秩选择指令进行秩选择,得到秩选择结果,包括:
所述运算单元根据所述待分解张量、所述秩选择指令和选择精度进行秩选择,得到秩选择结果。
22.根据权利要求19所述的方法,其特征在于,所述运算单元根据所述待分解张量、所述秩选择结果和所述分解运算指令进行张量分解运算,得到张量分解结果,包括:
所述运算单元根据所述待分解张量、所述秩选择结果和所述分解运算指令,利用Tucker-2分解进行张量分解运算,得到张量分解结果。
23.根据权利要求18所述的方法,其特征在于,所述控制器单元还包括存储队列单元,所述存储队列单元用于存储指令队列,所述方法还包括:
所述指令处理单元将所述秩选择指令和所述分解运算指令存储至所述存储队列单元;
所述运算单元在所述控制器单元的控制下获取待分解张量、所述秩选择指令和所述分解运算指令,包括:
所述运算单元在所述控制器单元的控制下,在所述存储队列单元中获取所述秩选择指令和所述分解运算指令。
24.根据权利要求18所述的方法,其特征在于,所述控制器单元还包括依赖关系处理单元和指令缓存单元,所述方法还包括:
所述依赖关系处理单元判断待执行的第二运算指令和正在执行的第一运算指令之间的依赖关系,所述第一运算指令包括秩选择指令或分解运算指令,所述第二运算指令包括秩选择指令或分解运算指令;
当所述第二运算指令依赖于所述第一运算指令的计算结果时,所述依赖关系处理单元将所述第二运算指令存储到所述指令缓存单元;
在所述运算单元执行完所述第一运算指令后,所述依赖关系处理单元在所述指令缓存单元提取所述第二运算指令后传送至所述运算单元,以使所述运算单元根据所述第一运算指令的计算结果执行所述第二运算指令。
25.根据权利要求17所述的方法,其特征在于,所述装置还包括存储单元,所述控制器单元获取张量分解指令,包括:
所述控制器单元在所述存储单元中获取张量分解指令。
26.根据权利要求18所述的方法,其特征在于,所述运算单元包括主处理电路和多个从处理电路,所述运算单元根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果,包括:
所述主处理电路根据待分解张量和秩选择指令进行秩选择,得到秩选择结果;
所述主处理电路将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标从处理电路,以使所述目标从处理电路根据所述主处理电路发送的所述待分解张量、所述秩选择结果和所述分解运算指令进行张量计算,得到中间结果,所述目标从处理电路包括任一从处理电路;
所述主处理电路根据目标从处理电路发送的中间结果得到所述张量分解结果。
27.根据权利要求26所述的方法,其特征在于,所述运算单元还包括分支处理电路,所述主处理电路将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标从处理电路,包括:
所述主处理电路将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标分支处理电路,所述目标分支处理电路包括任一分支处理电路,
以使所述目标分支处理电路将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标从处理电路。
28.根据权利要求26所述的方法,其特征在于,所述主处理电路包括主处理控制器单元,所述从处理电路包括从处理控制器单元,所述方法还包括:
所述主处理控制器单元对所述秩选择指令进行译码,得到微秩选择指令;和/或
所述主处理控制器单元对所述分解运算指令进行译码,得到微分解运算指令;
所述从处理控制器单元对所述秩选择指令进行译码,得到微秩选择指令;和/或
所述从处理控制器单元对所述分解运算指令进行译码,得到微分解运算指令。
CN201810680463.5A 2018-06-27 2018-06-27 运算装置及相关产品 Pending CN110647356A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810680463.5A CN110647356A (zh) 2018-06-27 2018-06-27 运算装置及相关产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810680463.5A CN110647356A (zh) 2018-06-27 2018-06-27 运算装置及相关产品

Publications (1)

Publication Number Publication Date
CN110647356A true CN110647356A (zh) 2020-01-03

Family

ID=68988652

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810680463.5A Pending CN110647356A (zh) 2018-06-27 2018-06-27 运算装置及相关产品

Country Status (1)

Country Link
CN (1) CN110647356A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113449859A (zh) * 2020-03-27 2021-09-28 华为技术有限公司 一种数据处理方法及其装置
CN113704687A (zh) * 2020-05-21 2021-11-26 杭州海康威视数字技术股份有限公司 一种张量计算运行方法、装置及运算系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104331450A (zh) * 2014-10-29 2015-02-04 聂秀山 基于多模式特征和张量分解的视频拷贝检测方法
US20150120634A1 (en) * 2011-08-02 2015-04-30 Sony Corporation Information processing device, information processing method, and program
CN107832804A (zh) * 2017-10-30 2018-03-23 上海寒武纪信息科技有限公司 一种信息处理方法及相关产品

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150120634A1 (en) * 2011-08-02 2015-04-30 Sony Corporation Information processing device, information processing method, and program
CN104331450A (zh) * 2014-10-29 2015-02-04 聂秀山 基于多模式特征和张量分解的视频拷贝检测方法
CN107832804A (zh) * 2017-10-30 2018-03-23 上海寒武纪信息科技有限公司 一种信息处理方法及相关产品

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YONG-DEOK KIM等: "Compression of Deep Convolutional Neural Networks for Fast and Low Power Mobile Applications", 《COMPUTER SCIENCE 71.2(2015)》 *
李用江等: "《计算机组成原理》", 30 November 2003 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113449859A (zh) * 2020-03-27 2021-09-28 华为技术有限公司 一种数据处理方法及其装置
CN113704687A (zh) * 2020-05-21 2021-11-26 杭州海康威视数字技术股份有限公司 一种张量计算运行方法、装置及运算系统
CN113704687B (zh) * 2020-05-21 2024-04-05 杭州海康威视数字技术股份有限公司 一种张量计算运行方法、装置及运算系统

Similar Documents

Publication Publication Date Title
CN109101273B (zh) 神经网络处理装置及其执行向量最大值指令的方法
EP3660629B1 (en) Data processing apparatus and method
CN109284815B (zh) 神经网络模型算法编译方法、装置及相关产品
EP3660628A1 (en) Dynamic voltage frequency scaling device and method
CN109543825B (zh) 神经网络模型算法编译方法、装置及相关产品
KR102354722B1 (ko) 계산 장치 및 방법
EP3564863B1 (en) Apparatus for executing lstm neural network operation, and operational method
CN110147249B (zh) 一种网络模型的计算方法及装置
CN110163350B (zh) 一种计算装置及方法
CN110163349B (zh) 一种网络模型的计算方法及装置
CN109711540B (zh) 一种计算装置及板卡
CN110647973A (zh) 运算方法及相关方法和产品
CN110647356A (zh) 运算装置及相关产品
CN109542837B (zh) 运算方法、装置及相关产品
CN111078291B (zh) 运算方法、系统及相关产品
CN110826705B (zh) 运算方法、装置及相关产品
CN110909871B (zh) 状态信息获取装置和方法
CN111353595A (zh) 运算方法、装置及相关产品
CN109543836B (zh) 运算方法、装置及相关产品
CN111079925A (zh) 运算方法、装置及相关产品
CN109583580B (zh) 运算方法、装置及相关产品
CN111078282B (zh) 运算方法、装置及相关产品
CN111275197B (zh) 运算方法、装置、计算机设备和存储介质
CN111078283B (zh) 运算方法、装置及相关产品
CN111399905B (zh) 运算方法、装置及相关产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
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
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20200103

RJ01 Rejection of invention patent application after publication