CN111966325A - 指令处理方法、装置及相关产品 - Google Patents

指令处理方法、装置及相关产品 Download PDF

Info

Publication number
CN111966325A
CN111966325A CN201910420274.9A CN201910420274A CN111966325A CN 111966325 A CN111966325 A CN 111966325A CN 201910420274 A CN201910420274 A CN 201910420274A CN 111966325 A CN111966325 A CN 111966325A
Authority
CN
China
Prior art keywords
instruction
activation
data
module
operated
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.)
Withdrawn
Application number
CN201910420274.9A
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.)
Shanghai Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon 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 Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to CN201910420274.9A priority Critical patent/CN111966325A/zh
Priority to PCT/CN2020/088248 priority patent/WO2020233387A1/zh
Publication of CN111966325A publication Critical patent/CN111966325A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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/544Methods 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 for evaluating functions by calculation
    • 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/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本公开涉及一种指令处理方法、装置及相关产品。机器学习装置包括一个或多个指令处理装置,用于从其他处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置;当机器学习运算装置包含多个指令处理装置时,多个指令处理装置间可以通过特定的结构进行连接并传输数据。其中,多个指令处理装置通过快速外部设备互连总线PCIE总线进行互联并传输数据;多个指令处理装置共享同一控制系统或拥有各自的控制系统、且共享内存或者拥有各自的内存;多个指令处理装置的互联方式是任意互联拓扑。本公开实施例所提供的指令处理方法、装置及相关产品的适用范围广,对指令的处理效率高、处理速度快。

Description

指令处理方法、装置及相关产品
技术领域
本公开涉及计算机技术领域,尤其涉及一种指令处理方法、装置及相关产品。
背景技术
随着科技的不断发展,机器学习,尤其是神经网络算法的使用越来越广泛。其在图像识别、语音识别、自然语言处理等领域中都得到了良好的应用。但由于神经网络算法的复杂度越来越高,所涉及的数据运算种类和数量不断增大。相关技术中,通过倒数函数(Reciprocal,也可称Recip函数)对数据进行激活运算的效率低、速度慢。
发明内容
有鉴于此,本公开提出了一种指令处理方法、装置及相关产品,以提高对数据进行倒数函数激活运算的效率和速度。
根据本公开的第一方面,提供了一种倒数函数激活指令处理装置,所述装置包括:
控制模块,用于对获取到的倒数函数激活指令进行解析,得到倒数函数激活指令的操作码和操作域,并根据所述操作码和所述操作域获取执行倒数函数激活指令所需的待运算数据和目标地址;
运算模块,用于对所述待运算数据进行倒数激活运算,得到运算结果,并将所述运算结果存入所述目标地址中;
其中,所述操作码用于指示所述倒数函数激活指令对数据所进行的激活运算为倒数函数激活运算,所述操作域包括待运算数据的源地址和所述目标地址。
根据本公开的第二方面,提供了一种机器学习运算装置,所述装置包括:
一个或多个上述第一方面所述的倒数函数激活指令处理装置,用于从其他处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置;
当所述机器学习运算装置包含多个所述倒数函数激活指令处理装置时,所述多个所述倒数函数激活指令处理装置间可以通过特定的结构进行连接并传输数据;
其中,多个所述倒数函数激活指令处理装置通过快速外部设备互连总线PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述倒数函数激活指令处理装置共享同一控制系统或拥有各自的控制系统;多个所述倒数函数激活指令处理装置共享内存或者拥有各自的内存;多个所述倒数函数激活指令处理装置的互联方式是任意互联拓扑。
根据本公开的第三方面,提供了一种组合处理装置,所述装置包括:
上述第二方面所述的机器学习运算装置、通用互联接口和其他处理装置;
所述机器学习运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。
根据本公开的第四方面,提供了一种机器学习芯片,所述机器学习芯片包括上述第二方面所述的机器学习络运算装置或上述第三方面所述的组合处理装置。
根据本公开的第五方面,提供了一种机器学习芯片封装结构,该机器学习芯片封装结构包括上述第四方面所述的机器学习芯片。
根据本公开的第六方面,提供了一种板卡,该板卡包括上述第五方面所述的机器学习芯片封装结构。
根据本公开的第七方面,提供了一种电子设备,所述电子设备包括上述第四方面所述的机器学习芯片或上述第六方面所述的板卡。
根据本公开的第八方面,提供了一种倒数函数激活指令处理方法,所述方法应用于倒数函数激活指令处理装置,所述方法包括:
对获取到的倒数函数激活指令进行解析,得到倒数函数激活指令的操作码和操作域,并根据所述操作码和所述操作域获取执行倒数函数激活指令所需的待运算数据和目标地址;
根据对所述待运算数据进行倒数激活运算,得到运算结果,并将所述运算结果存入所述目标地址中;
其中,所述操作码用于指示所述倒数函数激活指令对数据所进行的激活运算为倒数函数激活运算,所述倒数激活函数参数表包括倒数激活函数激活表,所述操作域包括待运算数据的源地址和所述目标地址。
根据本公开的第九方面,提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序被一个或多个处理器执行时,具体实现上述方法中的步骤。
本公开实施例提供一种倒数函数激活指令处理方法、装置及相关产品,该装置包括控制模块和运算模块,控制模块用于对获取到的倒数函数激活指令进行解析,得到倒数函数激活指令的操作码和操作域,并根据操作码和操作域获取执行倒数函数激活指令所需的待运算数据和目标地址;运算模块用于对待运算数据进行激活运算,得到运算结果,并将运算结果存入目标地址中。本公开实施例所提供的倒数函数激活指令处理方法、装置及相关产品的适用范围广,对倒数函数激活指令的处理效率高、处理速度快。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开一实施例的倒数函数激活指令处理装置的框图。
图2a-图2f示出根据本公开一实施例的倒数函数激活指令处理装置的框图。
图3示出根据本公开一实施例的倒数函数激活指令处理装置的应用场景的示意图。
图4a、图4b示出根据本公开一实施例的组合处理装置的框图。
图5示出根据本公开一实施例的板卡的结构示意图。
图6示出根据本公开一实施例的倒数函数激活指令处理方法的流程图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出根据本公开一实施例的倒数函数激活指令处理装置的框图。如图1所示,该装置包括控制模块11和运算模块12。其中,控制模块11用于对获取到的倒数函数激活指令进行解析,得到倒数函数激活指令的操作码和操作域,并根据操作码和操作域获取执行倒数函数激活指令所需的待运算数据和目标地址。其中,操作码用于指示倒数函数激活指令对数据所进行的激活运算为倒数函数激活运算,操作域包括待运算数据的源地址和目标地址。运算模块12用于根据对待运算数据进行倒数激活运算,得到运算结果,并将运算结果存入所述目标地址中。
应当清楚的是,数学上的倒数运算是指数学上设一个数x与其相乘的积为1的数,记为1/x,过程为“乘法逆”,除了0以外的数都存在倒数,分子和分母相倒并且两个乘积是1的数互为倒数,0没有倒数。上述的倒数运算可以是激活函数的一种表现形式。本申请实施例中的倒数函数可以是指函数y=1/x,倒数激活运算可以是指对待处理数据进行倒数运算的过程。
在本实施例中,控制模块在得到倒数函数激活指令之后,才能对倒数函数激活指令进行解析。倒数函数激活指令为能够直接供硬件执行的硬件指令。运算模块可以直接执行,获得硬件指令,并获得激活运算的运算结果。
在本实施例中,操作码可以是计算机程序中所规定的要执行操作的那一部分指令或字段(通常用代码表示),是指令序列号,用来告知执行指令的装置具体需要执行哪一条指令。操作域可以是执行对应的指令所需的所有数据的来源,如对应的地址等,执行对应的指令所需的所有数据包括待运算数据以及对应的指令处理方法等等。对于一个倒数函数激活指令其包括操作码和操作域,其中,操作域至少包括待运算数据的源地址和目标地址。应当理解的是,本领域技术人员可以根据需要对倒数函数激活指令的指令格式以及所包含的操作码和操作域进行设置,本公开对此不作限制。
可选地,待运算数据的源地址可以是待运算数据所在存储空间的起始地址,控制模块可以通过数据输入输出单元获得指令和数据,该数据输入输出单元可以为一个或多个数据I/O接口或I/O引脚。进一步地,控制模块可以根据待运算数据的源地址确定待运算数据,并获得待运算数据。当然,在其他实施例中,控制模块还可以根据倒数函数激活指令的操作码确定进行倒数函数激活运算所需的数据。
可选地,操作域还可以包括读入量或读入量的存储地址。其中,控制模块11还用于获取读入量,并按照读入量获取待运算数据。其中,待运算数据的数据量可以小于或等于读入量。在该实现方式中,读入量可以是所获取的待运算数据的数据量,可以是所获取的待运算数据的尺寸。在操作域直接包含读入量的具体数值时,可以将该数值确定为读入量。在操作域中包括读入量的存储地址时,可以从该存储地址中获取读入量。
在一种可能的实现方式中,在操作域中不包括读入量时,可以根据预先设置的默认读入量获取多个待运算数据。所获取的多个待运算数据的数据量可以小于或等于默认读入量。
通过上述方式,可以对待运算数据的数据量和尺寸进行限制,保证运算结果的准确性,并保证装置可以执行该倒数函数激活指令。
可选地,源地址和目标地址的数量可以是一个以上,源地址与目标地址一一对应设置。此时,运算模块可以同时对多个待运算数据进行倒数激活运算。进一步可选地,该装置可以包括一个或多个控制模块,以及一个或多个运算模块,可以根据实际需要对控制模块和运算模块的数量进行设置,本公开对此不作限制。在装置包括一个控制模块时,该控制模块可以接收倒数函数激活指令,并控制一个或多个处理模块进行倒数函数激活运算。在装置包括多个控制模块时,多个控制模块可以分别接收倒数函数激活指令,并控制对应的一个或多个处理模块进行倒数函数激活运算。在一种可能的实现方式中,倒数函数激活指令的指令格式可以是:
active.recip dst,src0,size
其中,active.recip是倒数函数激活指令的操作码,dst、src0、size是倒数函数激活指令的操作域。其中,dst是目标地址,src0是待运算数据地址,size是读入量。
在一中可能的实现方式中,倒数函数激活指令的指令格式可以是:
active.recip dst,src0,src1,size
其中,active.recip是倒数函数激活指令的操作码,dst、src0、src1、size是倒数函数激活指令的操作域。其中,dst是目标地址,src0是待运算数据地址,src1是倒数函数参数表地址,size是读入量。
可选地,其中,所述输入量size可以是能被64整除的整数,当然,在其他实施例中,输入量size还可以能被2、4、8、16或32等整除的整数,此处仅以举例说明,并不用于限定该输入量的具体取值范围。
所述源地址sr0和目标地址dst均是指起始地址,该源地址对应有默认的地址偏移量,该目标地址对应有默认的地址偏移量,该默认的地址偏移可以是64字节的倍数。当然,在其他实施例中,该默认的地址偏移量还可以是8字节、16字节、32字节或128字节等的整数倍,此处仅以举例说明,不做具体限定。具体地,该地址偏移量可以根据运算结果进行确定。
应当理解的是,本领域技术人员可以根据需要对倒数函数激活指令的操作码、指令格式中操作码和操作域的位置进行设置,本公开对此不作限制。
本公开实施例提供一种倒数函数激活指令处理装置,该装置包括控制模块和运算模块,控制模块用于对获取到的倒数函数激活指令进行解析,得到倒数函数激活指令的操作码和操作域,并根据操作码和操作域获取执行倒数函数激活指令所需的待运算数据和目标地址,以及获取倒数激活函数参数表;运算模块用于根据倒数激活函数参数表对待运算数据进行激活运算,得到运算结果,并将运算结果存入目标地址中。本公开实施例所提供的倒数函数激活指令处理装置的适用范围广,对倒数函数激活指令的处理效率高、处理速度快。
可选地,对该硬件指令进行译码等解析操作,获得至少一个处理模块12能够执行的硬件指令。运算模块12可以根据解析后的倒数函数激活指令执行倒数激活操作。进一步地,控制模块可以将该倒数函数激活指令翻译为中间代码指令,并对该中间代码指令进行汇编获得机器能够执行的二进制指令,该倒数函数激活指令可以是指二进制指令。
在一种可能的实现方式中,控制模块11还可以用于根据操作码和/或操作域获取倒数激活函数参数表。运算模块12还可以用于根据倒数激活函数参数表对待运算数据进行倒数函数激活运算,得到运算结果。其中,倒数激活函数参数表可以包括倒数激活函数激活表和/或倒数激活函数常数表。
其中,倒数函数激活表可以包括多种不同的倒数激活函数,例如,该倒数函数激活表可以包括倒数激活函数y=1/x以及倒数激活函数y=k/x,其中,k表示常数,k不等于1等等。此时,运算模块可以根据该倒数函数激活表,选择相应的倒数激活函数,并根据相应的倒数激活函数进行激活运算,获得运算结果。倒数激活函数常数表可以包括多种不同的倒数激活函数对应的运算结果值。此时,运算模块可以通过查表获得相应的运算结果,从而无需进行激活运算,提高了运算效率。
可选地,倒数激活函数参数表可以包括倒数激活函数激活表和倒数激活函数常数表。该倒数激活函数参数表可以是:激活函数y=1/x的对应的运算结果为A;激活函数y=k/x对应的运算结果为B等等。此时,运算模块根据上述激活函数参数表进行倒数激活运算,获得运算结果。本申请实施例中,不论倒数激活函数常数表中是否包含相应的运算结果,运算模块都能够适应性的获得相应的运算结果,提高了该运算模块的可靠性及实用性。
可选的,操作域中可以包括倒数激活函数参数表地址,以便于控制模块从倒数激活函数参数表地址中获取倒数激活函数参数表地址。或者,控制模块可以根据操作码确定执行所述倒数函数激活指令需要倒数激活函数参数表时,可以直接从预先确定的倒数激活函数参数表的存储地址获取倒数激活函数参数表。本领域技术人员可以根据实际需要对倒数激活函数参数表的获取方式进行设置,本公开对此不作限制。
图2a示出根据本公开一实施例的倒数函数激活指令处理装置的框图。该指令处理装置还可以包括存储模块,该存储模块可以用于存储待运算数据和运算结果。可选地,该待运算数据的源地址指向的初始存储空间和目标地址指向的目标存储空间均为上述存储模块中的存储空间。进一步地,上述初始存储空间和上述目标存储空间可以复用,即运算结果的目标存储空间可以是待运算数据的初始存储空间。这样,通过地址空间的复用,可以提高存储模块的利用率。
可选地,在该实现方式中,存储模块可以包括片上存储、缓存和寄存器中的一种或多种,缓存可以包括速暂存缓存。本申请可以根据需要将待运算数据和倒数激活函数参数表存储在存储模块的内存、缓存和/或寄存器中,本公开对此不作限制。可选地,上述的初始存储空间和目标存储空间可以指向片上存储,该片上存储可以是片上NRAM,用于存储张量数据或标量数据。
如图2a所示,运算模块12可以包括至少一个激活运算器120。该激活运算器120用于对待运算数据进行倒数激活运算,获得运算结果。本申请可以根据所需进行的激活运算的数据量的大小、对激活运算的处理速度、效率等要求对激活运算器的数量进行设置,本公开对此不作限制。进一步地,该运算模块还可以包含数据访存电路,该数据访存电路可以从存储模块获得待运算数据,该数据访存电路还可以将运算结果存储至存储模块中。可选地,该数据访存电路可以是直接内存访问模块。
图2b示出根据本公开一实施例的倒数函数激活指令处理装置的框图。在一种可能的实现方式中,如图2b所示,运算模块12可以包括主运算子模块121和与主运算子模块121连接的多个从运算子模块122。本申请实施例中,该主运算子模块和多个从运算子模块中均可以包括上述的激活运算器。
具体地,所述控制模块还用于解析所述倒数函数激活指令得到多个运算指令,并将所述待运算数据和所述多个运算指令发送至所述主运算子模块。所述主运算子模块用于对所述待运算数据执行前序处理,并将所述运算指令及所述待运算数据的至少一部分发送至所述从运算子模块;所述主运算子模块的激活运算器能够执行所述倒数函数运算,获得中间结果。具体地,主运算子模块可以将待运算数据切分为多个子数据,并将一部分子数据发送至从运算子模块进行运算。同时,该主运算子模块地激活运算器还可以对剩余的子数据进行激活运算,获得中间结果。
所述从运算子模块的激活运算器用于根据从所述主运算子模块接收的数据和运算指令并行执行所述倒数函数激活运算得到多个中间结果,并将所述多个中间结果传输给所述主运算子模块;所述主运算子模块还用于对所述多个中间结果执行后续处理,得到运算结果,并将所述运算结果存入所述目标地址中。具体地,该主运算结果可以根据该多个中间结果,获得运算结果,并将运算结果存储至目标地址对应的存储空间中。本申请实施例通过采用主运算子模块和从运算子模块协同运算的方式,可以提高运算效率。
进一步可选地,该指令处理装置还可以对激活函数之外的其他指令进行处理,该其他指令可以是与倒数函数激活指令不同的、对标量、向量、矩阵、张量等数据进行算术运算、逻辑运算等运算的指令,例如,标量计算指令、卷积计算指令等,本领域技术人员可以根据实际需要对计算指令进行设置,本公开对此不作限制。在该实现方式中,控制模块还用于对计算指令进行解析,得到计算指令的操作码和操作域,并根据操作码和操作域获取待运算数据。
更进一步地,为实现上述多种运算,运算模块还可以包括加法器、除法器、乘法器、比较器等能够对数据进行算术运算、逻辑运算等运算的运算器。本申请可以根据所需进行的运算的数据量的大小、运算类型、对数据进行运算的处理速度、效率等要求对运算器的种类及数量进行设置,本公开对此不作限制。
在一种可能的实现方式中,控制模块11还用于解析计算指令得到多个运算指令,并将待运算数据和多个运算指令发送至主运算子模块121。可选地,本申请也可只采用主运算子模块中的激活运算器实现上述的激活运算。例如,在计算指令为针对标量、向量数据所进行的运算时,装置可以控制主运算子模块利用其中的运算器进行与计算指令相对应的运算。可选的,在计算指令为针对矩阵、张量等维度大于或等于2的数据进行运算时,装置可以采用主运算子模块和从运算子模块协同的方式实现上述的激活运算,具体运算过程可参见上文的描述。
需要说明的是,本领域技术人员可以根据实际需要对主运算子模块和多个从运算子模块之间的连接方式进行设置,以实现对运算模块的架构设置,例如,运算模块的架构可以是“H”型架构、阵列型架构、树型架构等,本公开对此不作限制。
图2c示出根据本公开一实施例的倒数函数激活指令处理装置的框图。在一种可能的实现方式中,如图2c所示,运算模块12还可以包括一个或多个分支运算子模块123,该分支运算子模块123用于转发主运算子模块121和从运算子模块122之间的数据和/或运算指令。其中,主运算子模块121与一个或多个分支运算子模块123连接。这样,运算模块中的主运算子模块、分支运算子模块和从运算子模块之间采用“H”型架构连接,通过分支运算子模块转发数据和/或运算指令,节省了对主运算子模块的资源占用,进而提高指令的处理速度。
图2d示出根据本公开一实施例的倒数函数激活指令处理装置的框图。在一种可能的实现方式中,如图2d所示,多个从运算子模块122呈阵列分布。
每个从运算子模块122与相邻的其他从运算子模块122连接,主运算子模块121连接多个从运算子模块122中的k个从运算子模块122,k个从运算子模块122为:第1行的n个从运算子模块122、第m行的n个从运算子模块122以及第1列的m个从运算子模块122。
其中,如图2d所示,k个从运算子模块仅包括第1行的n个从运算子模块、第m行的n个从运算子模块以及第1列的m个从运算子模块,即该k个从运算子模块为多个从运算子模块中直接与主运算子模块连接的从运算子模块。其中,k个从运算子模块,用于在主运算子模块以及多个从运算子模块之间的数据以及指令的转发。这样,多个从运算子模块呈阵列分布,可以提高主运算子模块向从运算子模块发送数据和/或运算指令速度,进而提高指令的处理速度。
图2e示出根据本公开一实施例的倒数函数激活指令处理装置的框图。在一种可能的实现方式中,如图2e所示,运算模块还可以包括树型子模块124。该树型子模块124包括一个根端口401和多个支端口402。根端口401与主运算子模块121连接,多个支端口402与多个从运算子模块122分别连接。其中,树型子模块124具有收发功能,用于转发主运算子模块121和从运算子模块122之间的数据和/或运算指令。这样,通过树型子模块的作用使得运算模块呈树型架构连接,并利用树型子模块的转发功能,可以提高主运算子模块向从运算子模块发送数据和/或运算指令速度,进而提高指令的处理速度。
在一种可能的实现方式中,树型子模块124可以为该装置的可选结果,其可以包括至少一层节点。节点为具有转发功能的线结构,节点本身不具备运算功能。最下层的节点与从运算子模块连接,以转发主运算子模块121和从运算子模块122之间的数据和/或运算指令。特殊地,如树型子模块具有零层节点,该装置则无需树型子模块。
在一种可能的实现方式中,树型子模块124可以包括n叉树结构的多个节点,n叉树结构的多个节点可以具有多个层。
举例来说,图2f示出根据本公开一实施例的倒数函数激活指令处理装置的框图。如图2f所示,n叉树结构可以是二叉树结构,树型子模块包括2层节点01。最下层节点01与从运算子模块122连接,以转发主运算子模块121和从运算子模块122之间的数据和/或运算指令。
在该实现方式中,n叉树结构还可以是三叉树结构等,n为大于或等于2的正整数。本领域技术人员可以根据需要对n叉树结构中的n以及n叉树结构中节点的层数进行设置,本公开对此不作限制。
在一种可能的实现方式中,如图2a-图2f所示,控制模块11可以包括指令存储子模块111、指令处理子模块112和队列存储子模块113。其中,指令存储子模块111用于存储倒数函数激活指令。指令处理子模块112用于对倒数函数激活指令进行解析,得到倒数函数激活指令的操作码和操作域。队列存储子模块113用于存储指令队列,指令队列包括按照执行顺序依次排列的多个倒数函数激活指令。
在该实现方式中,可以根据倒数函数激活指令的接收时间、优先级别等对多个倒数函数激活指令的执行顺序进行排列获得指令队列,以便于根据指令队列依次执行多个倒数函数激活指令。
在一种可能的实现方式中,如图2a-图2f所示,控制模块11还可以包括依赖关系处理子模块114。依赖关系处理子模块114用于在确定多个倒数函数激活指令中的第一倒数函数激活指令与第一倒数函数激活指令之前的第零倒数函数激活指令存在关联关系时,将第一倒数函数激活指令缓存在指令存储子模块111中,在第零倒数函数激活指令执行完毕后,从指令存储子模块111中提取第一倒数函数激活指令发送至运算模块12。其中,第一倒数函数激活指令和第零倒数函数激活指令是多个倒数函数激活指令中的指令。
其中,第一倒数函数激活指令与第一倒数函数激活指令之前的第零倒数函数激活指令存在关联关系包括:存储第一倒数函数激活指令所需数据的第一存储地址区间与存储第零倒数函数激活指令所需数据的第零存储地址区间具有重叠的区域。反之,第一倒数函数激活指令与第零倒数函数激活指令之间没有关联关系可以是第一存储地址区间与第零存储地址区间没有重叠区域。
通过这种方式,可以根据倒数函数激活指令之间的依赖关系,使得在先的倒数函数激活指令执行完毕之后,再执行在后的倒数函数激活指令,保证运算结果的准确性。
在一种可能的实现方式中,该装置可以设置于图形处理器(Graphics ProcessingUnit,简称GPU)、中央处理器(Central Processing Unit,简称CPU)和嵌入式神经网络处理器(Neural-network Processing Unit,简称NPU)的一种或多种之中。
需要说明的是,尽管以上述实施例作为示例介绍了倒数函数激活指令处理装置如上,但本领域技术人员能够理解,本公开应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定各模块,只要符合本公开的技术方案即可。
应用示例
以下结合“利用倒数函数激活指令处理装置进行激活运算”作为一个示例性应用场景,给出根据本公开实施例的应用示例,以便于理解倒数函数激活指令处理装置的流程。本领域技术人员应理解,以下应用示例仅仅是出于便于理解本公开实施例的目的,不应视为对本公开实施例的限制
图3示出根据本公开一实施例的倒数函数激活指令处理装置的应用场景的示意图。如图3所示,倒数函数激活指令处理装置对倒数函数激活指令进行处理的过程如下:
如图3所示,控制模块11对获取到的倒数函数激活指令1(如倒数函数激活指令1为@active.recip 500 100 64),对倒数函数激活指令1进行解析,得到倒数函数激活指令1的操作码和操作域。其中,倒数函数激活指令1的操作码为active.recip,目标地址为500,待运算数据的源地址为100,读入量为64。控制模块11从待运算数据地址100中获取数据量为64(读入量)的待运算数据。运算模块12可以对待运算数据进行倒数运算,得到运算结果,并将运算结果存入目标地址500对应的存储空间中。这样,倒数函数激活指令处理装置可以高效、快速地对倒数函数激活指令进行处理。
在本公开所提供的实施例中,应该理解到,所揭露的系统、装置,可通过其它的方式实现。例如,以上所描述的系统、装置实施例仅仅是示意性的,例如设备、装置、模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统或装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备、装置或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
集成的模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本公开提供一种机器学习运算装置,该机器学习运算装置可以包括一个或多个上述倒数函数激活指令处理装置,用于从其他处理装置中获取待运算数据和控制信息,执行指定的机器学习运算。该机器学习运算装置可以从其他机器学习运算装置或非机器学习运算装置中获得倒数函数激活指令,并将执行结果通过I/O接口传递给外围设备(也可称其他处理装置)。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上倒数函数激活指令处理装置时,倒数函数激活指令处理装置间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的神经网络的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
图4a示出根据本公开一实施例的组合处理装置的框图。如图4a所示,该组合处理装置包括上述机器学习运算装置、通用互联接口和其他处理装置。机器学习运算装置与其他处理装置进行交互,共同完成用户指定的操作。
其他处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其他处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在机器学习运算装置与其他处理装置间传输数据和控制指令。该机器学习运算装置从其他处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其他处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其他处理装置。
图4b示出根据本公开一实施例的组合处理装置的框图。在一种可能的实现方式中,如图4b所示,该组合处理装置还可以包括存储装置,存储装置分别与机器学习运算装置和所述其他处理装置连接。存储装置用于保存在机器学习运算装置和所述其他处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其他处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
本公开提供一种机器学习芯片,该芯片包括上述机器学习运算装置或组合处理装置。
本公开提供一种机器学习芯片封装结构,该机器学习芯片封装结构包括上述机器学习芯片。
本公开提供一种板卡,图5示出根据本公开一实施例的板卡的结构示意图。如图5所示,该板卡包括上述机器学习芯片封装结构或者上述机器学习芯片。板卡除了包括机器学习芯片389以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件390、接口装置391和控制器件392。
存储器件390与机器学习芯片389(或者机器学习芯片封装结构内的机器学习芯片)通过总线连接,用于存储数据。存储器件390可以包括多组存储单元393。每一组存储单元393与机器学习芯片389通过总线连接。可以理解,每一组存储单元393可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。
在一个实施例中,存储器件390可以包括4组存储单元393。每一组存储单元393可以包括多个DDR4颗粒(芯片)。在一个实施例中,机器学习芯片389内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组存储单元393中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组存储单元393包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在机器学习芯片389中设置控制DDR的控制器,用于对每个存储单元393的数据传输与数据存储的控制。
接口装置391与机器学习芯片389(或者机器学习芯片封装结构内的机器学习芯片)电连接。接口装置391用于实现机器学习芯片389与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,接口装置391可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至机器学习芯片289,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,接口装置391还可以是其他的接口,本公开并不限制上述其他的接口的具体表现形式,接口装置能够实现转接功能即可。另外,机器学习芯片的计算结果仍由接口装置传送回外部设备(例如服务器)。
控制器件392与机器学习芯片389电连接。控制器件392用于对机器学习芯片389的状态进行监控。具体的,机器学习芯片389与控制器件392可以通过SPI接口电连接。控制器件392可以包括单片机(Micro Controller Unit,MCU)。如机器学习芯片389可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,机器学习芯片389可以处于多负载和轻负载等不同的工作状态。通过控制器件可以实现对机器学习芯片中多个处理芯片、多个处理和/或多个处理电路的工作状态的调控。
本公开提供一种电子设备,该电子设备包括上述机器学习芯片或板卡。
电子设备可以包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
交通工具可以包括飞机、轮船和/或车辆。家用电器可以包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机。医疗设备可以包括核磁共振仪、B超仪和/或心电图仪。
图6示出根据本公开一实施例的倒数函数激活指令处理方法的流程图。如图6所示,该方法应用于上述倒数函数激活指令处理装置,该方法包括步骤S51和步骤S52。
在步骤S51中,对获取到的倒数函数激活指令进行解析,得到倒数函数激活指令的操作码和操作域,并根据操作码和操作域获取执行倒数函数激活指令所需的待运算数据和目标地址,以及获取倒数激活函数参数表。其中,操作码用于指示倒数函数激活指令对数据所进行的激活运算为倒数函数激活运算,操作域包括待运算数据地址和目标地址。
在步骤S52中,利用运算模块对待运算数据进行倒数函数激活运算,得到运算结果,并将运算结果存入目标地址对应的存储空间中。
可选地,所述方法还包括:
根据所述操作码和/或所述操作域获取倒数激活函数参数表;
根据所述倒数激活函数参数表对所述待运算数据进行倒数函数激活运算,得到运算结果;
其中,所述倒数函数参数表包括倒数激活函数激活表和/或倒数激活函数常数表。
可选地,所述步骤S52具体包括:
利用所述激活运算器对所述待运算数据进行倒数函数激活运算。
可选地,上述方法用于包含运算模块的指令处理装置中,所述运算模块包括主运算子模块和与所述主运算子模块连接的多个从运算子模块,所述主运算子模块和所述多个从运算子模块均包括所述激活运算器;上述步骤S52具体可以包括:
所述控制模块解析所述倒数函数激活指令得到多个运算指令,并将所述待运算数据和所述多个运算指令发送至所述主运算子模块;
所述主运算子模块对所述待运算数据执行前序处理,并将所述运算指令及所述待运算数据的至少一部分发送至所述从运算子模块;所述主运算子模块的激活运算器能够执行所述倒数函数运算,获得中间结果;
所述从运算子模块的激活运算器根据从所述主运算子模块接收的数据和运算指令并行执行所述倒数函数激活运算得到多个中间结果,并将所述多个中间结果传输给所述主运算子模块;
所述主运算子模块对所述多个中间结果执行后续处理,得到运算结果,并将所述运算结果存入所述目标地址中。
可选地,所述操作域还包括读入量或所述读入量的存储地址;所述方法还包括:
获取所述读入量,并根据所述读入量和所述待运算数据的源地址获取所述待运算数据。
可选地,所述待运算数据的源地址对应的初始存储空间和所述待运算数据的目标地址对应的目标存储空间为所述片上存储的存储空间。
可选地,上述步骤S51可以包括:
存储所述倒数函数激活指令;
对所述倒数函数激活指令进行解析,得到倒数函数激活指令的操作码和操作域;
存储指令队列,所述指令队列包括按照执行顺序依次排列的多个待执行指令,所述多个待执行指令包括所述倒数函数激活指令。
需要说明的是,尽管以上述实施例作为示例介绍了倒数函数激活指令处理方法如上,但本领域技术人员能够理解,本公开应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定各步骤,只要符合本公开的技术方案即可。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述方法中各个步骤的执行过程与指令处理装置的工作过程基本一致,具体可参见上文中的描述,此处不再赘述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
本申请还提供了一种计算机可读存储介质,该存储介质中存储有计算机程序,该计算机程序被上述的指令处理装置执行时,实现上述方法中的步骤。具体地,上述计算机程序被指令处理装置执行时,实现如下步骤:
对所述倒数函数激活指令进行解析,得到倒数函数激活指令的操作码和操作域,并根据所述操作码和所述操作域获取执行倒数函数激活指令所需的待运算数据和目标地址;
对所述待运算数据进行倒数激活运算,得到运算结果,并将所述运算结果存入所述目标地址中;
其中,所述操作码用于指示所述倒数函数激活指令对数据所进行的激活运算为倒数函数激活运算,所述操作域包括待运算数据的源地址和所述目标地址。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述方法中各个步骤的执行过程与指令处理装置的工作过程基本一致,具体可参见上文中的描述,此处不再赘述。
根据以下条款可以更好地理解前述内容:
条款1:一种倒数函数激活指令处理装置,所述装置包括:
控制模块,用于对获取到的倒数函数激活指令进行解析,得到倒数函数激活指令的操作码和操作域,并根据所述操作码和所述操作域获取执行所述倒数函数激活指令所需的待运算数据和目标地址;
运算模块,用于对所述待运算数据进行倒数激活运算,得到运算结果,并将所述运算结果存入所述目标地址中;
其中,所述操作码用于指示所述倒数函数激活指令对数据所进行的激活运算为倒数函数激活运算,所述操作域包括待运算数据的源地址和所述目标地址。
条款2:根据条款1所述装置,所述控制模块还用于根据所述操作码和/或所述操作域获取倒数激活函数参数表;
所述运算模块还用于根据所述倒数激活函数参数表对所述待运算数据进行倒数函数激活运算,得到运算结果;
其中,所述倒数函数参数表包括倒数激活函数激活表和/或倒数激活函数常数表。
条款3:根据条款1或2所述装置,所述运算模块包括激活运算器;所述激活运算器用于对所述待运算数据进行倒数函数激活运算。
条款4:根据条款1-3任一项所述的装置,所述运算模块包括主运算子模块和与所述主运算子模块连接的多个从运算子模块,所述主运算子模块和所述多个从运算子模块均包括所述激活运算器;
所述控制模块还用于解析所述倒数函数激活指令得到多个运算指令,并将所述待运算数据和所述多个运算指令发送至所述主运算子模块;
所述主运算子模块用于对所述待运算数据执行前序处理,并将所述运算指令及所述待运算数据的至少一部分发送至所述从运算子模块;所述主运算子模块的激活运算器能够执行所述倒数函数运算,获得中间结果;
所述从运算子模块的激活运算器用于根据从所述主运算子模块接收的数据和运算指令并行执行所述倒数函数激活运算得到多个中间结果,并将所述多个中间结果传输给所述主运算子模块;
所述主运算子模块,还用于对所述多个中间结果执行后续处理,得到运算结果,并将所述运算结果存入所述目标地址中。
条款5:根据条款1-4任一项所述的装置,所述操作域还包括读入量或所述读入量的存储地址;
其中,所述控制模块还用于获取所述读入量,并根据所述读入量和所述待运算数据的源地址获取所述待运算数据。
条款6:根据条款1-5任一项所述的装置,所述装置还包括:
存储模块,用于存储所述待运算数据和所述运算结果。
条款7:根据条款1-6任一项所述的装置,所述存储模块包括片上存储,所述待运算数据的源地址对应的初始存储空间和所述待运算数据的目标地址对应的目标存储空间为所述片上存储的存储空间。
条款8:根据条款1-7任一项所述的装置,所述控制模块包括:
指令存储子模块,用于存储所述倒数函数激活指令;
指令处理子模块,用于对所述倒数函数激活指令进行解析,得到倒数函数激活指令的操作码和操作域;
队列存储子模块,用于存储指令队列,所述指令队列包括按照执行顺序依次排列的多个待执行指令,所述多个待执行指令包括所述倒数函数激活指令。
条款9:一种倒数函数激活指令处理方法,所述方法包括:
对所述倒数函数激活指令进行解析,得到倒数函数激活指令的操作码和操作域,并根据所述操作码和所述操作域获取执行倒数函数激活指令所需的待运算数据和目标地址;
对所述待运算数据进行倒数激活运算,得到运算结果,并将所述运算结果存入所述目标地址中;
其中,所述操作码用于指示所述倒数函数激活指令对数据所进行的激活运算为倒数函数激活运算,所述操作域包括待运算数据的源地址和所述目标地址。
条款10:根据条款9所述方法,所述控制模块还用于根据所述操作码和/或所述操作域获取倒数激活函数参数表;
所述运算模块还用于根据所述倒数激活函数参数表对所述待运算数据进行倒数函数激活运算,得到运算结果;
其中,所述倒数函数参数表包括倒数激活函数激活表和/或倒数激活函数常数表。
条款11:根据条款9或10所述方法,所述运算模块包括激活运算器;所述激活运算器用于对所述待运算数据进行倒数函数激活运算。
条款12:根据条款9-11任一项所述的方法,所述运算模块包括主运算子模块和与所述主运算子模块连接的多个从运算子模块,所述主运算子模块和所述多个从运算子模块均包括所述激活运算器;
所述控制模块还用于解析所述倒数函数激活指令得到多个运算指令,并将所述待运算数据和所述多个运算指令发送至所述主运算子模块;
所述主运算子模块用于对所述待运算数据执行前序处理,并将所述运算指令及所述待运算数据的至少一部分发送至所述从运算子模块;所述主运算子模块的激活运算器能够执行所述倒数函数运算,获得中间结果;
所述从运算子模块的激活运算器用于根据从所述主运算子模块接收的数据和运算指令并行执行所述倒数函数激活运算得到多个中间结果,并将所述多个中间结果传输给所述主运算子模块;
所述主运算子模块,还用于对所述多个中间结果执行后续处理,得到运算结果,并将所述运算结果存入所述目标地址中。
条款13:根据条款9-12任一项所述的方法,所述操作域还包括读入量或所述读入量的存储地址;
其中,所述控制模块还用于获取所述读入量,并根据所述读入量和所述待运算数据的源地址获取所述待运算数据。
条款14:根据条款9-13任一项所述的方法,所述方法还包括:
存储模块,用于存储所述待运算数据和所述运算结果。
条款15:根据条款9-14任一项所述的方法,所述存储模块包括片上存储,所述待运算数据的源地址对应的初始存储空间和所述待运算数据的目标地址对应的目标存储空间为所述片上存储的存储空间。
条款16:根据条款9-15任一项所述的方法,所述控制模块包括:
指令存储子模块,用于存储所述倒数函数激活指令;
指令处理子模块,用于对所述倒数函数激活指令进行解析,得到倒数函数激活指令的操作码和操作域;
队列存储子模块,用于存储指令队列,所述指令队列包括按照执行顺序依次排列的多个待执行指令,所述多个待执行指令包括所述倒数函数激活指令。
条款17:一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被一个或多个处理装置执行时,实现如权利要求9-16所述方法中的步骤。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种倒数函数激活指令处理装置,其特征在于,所述装置包括:
控制模块,用于对获取到的倒数函数激活指令进行进行解析,得到倒数函数激活指令的操作码和操作域,并根据所述操作码和所述操作域获取执行所述倒数函数激活指令所需的待运算数据和目标地址;
运算模块,用于对所述待运算数据进行倒数激活运算,得到运算结果,并将所述运算结果存入所述目标地址中;
其中,所述操作码用于指示所述倒数函数激活指令对数据所进行的激活运算为倒数函数激活运算,所述操作域包括待运算数据的源地址和所述目标地址。
2.根据权利要求1所述装置,其特征在于,
所述控制模块还用于根据所述操作码和/或所述操作域获取倒数激活函数参数表;
所述运算模块还用于根据所述倒数激活函数参数表对所述待运算数据进行倒数函数激活运算,得到运算结果;
其中,所述倒数函数参数表包括倒数激活函数激活表和/或倒数激活函数常数表。
3.根据权利要求1所述的装置,其特征在于,所述运算模块包括激活运算器;
所述激活运算器用于对所述待运算数据进行倒数函数激活运算。
4.根据权利要求3所述的装置,其特征在于,所述运算模块包括主运算子模块和与所述主运算子模块连接的多个从运算子模块,所述主运算子模块和所述多个从运算子模块均包括所述激活运算器;
所述控制模块还用于解析所述倒数函数激活指令得到多个运算指令,并将所述待运算数据和所述多个运算指令发送至所述主运算子模块;
所述主运算子模块用于对所述待运算数据执行前序处理,并将所述运算指令及所述待运算数据的至少一部分发送至所述从运算子模块;所述主运算子模块的激活运算器能够执行所述倒数函数运算,获得中间结果;
所述从运算子模块的激活运算器用于根据从所述主运算子模块接收的数据和运算指令并行执行所述倒数函数激活运算得到多个中间结果,并将所述多个中间结果传输给所述主运算子模块;
所述主运算子模块,还用于对所述多个中间结果执行后续处理,得到运算结果,并将所述运算结果存入所述目标地址中。
5.根据权利要求1所述的装置,其特征在于,所述操作域还包括读入量或所述读入量的存储地址;
其中,所述控制模块还用于获取所述读入量,并根据所述读入量和所述待运算数据的源地址获取所述待运算数据。
6.根据权利要求1所述的装置,其特征在于,所述装置还包括:
存储模块,用于存储所述待运算数据和所述运算结果。
7.根据权利要求6所述的装置,其特征在于,所述存储模块包括片上存储,所述待运算数据的源地址对应的初始存储空间和所述待运算数据的目标地址对应的目标存储空间为所述片上存储的存储空间。
8.根据权利要求1所述的装置,其特征在于,所述控制模块包括:
指令存储子模块,用于存储所述倒数函数激活指令;
指令处理子模块,用于对所述倒数函数激活指令进行解析,得到倒数函数激活指令的操作码和操作域;
队列存储子模块,用于存储指令队列,所述指令队列包括按照执行顺序依次排列的多个待执行指令,所述多个待执行指令包括所述倒数函数激活指令。
9.一种倒数函数激活指令处理方法,其特征在于,所述方法包括:
对所述倒数函数激活指令进行解析,得到倒数函数激活指令的操作码和操作域,并根据所述操作码和所述操作域获取执行倒数函数激活指令所需的待运算数据和目标地址;
对所述待运算数据进行倒数激活运算,得到运算结果,并将所述运算结果存入所述目标地址中;
其中,所述操作码用于指示所述倒数函数激活指令对数据所进行的激活运算为倒数函数激活运算,所述操作域包括待运算数据的源地址和所述目标地址。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被一个或多个处理装置执行时,实现如权利要求9所述方法中的步骤。
CN201910420274.9A 2019-05-17 2019-05-20 指令处理方法、装置及相关产品 Withdrawn CN111966325A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910420274.9A CN111966325A (zh) 2019-05-20 2019-05-20 指令处理方法、装置及相关产品
PCT/CN2020/088248 WO2020233387A1 (zh) 2019-05-17 2020-04-30 指令处理方法、装置及相关产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910420274.9A CN111966325A (zh) 2019-05-20 2019-05-20 指令处理方法、装置及相关产品

Publications (1)

Publication Number Publication Date
CN111966325A true CN111966325A (zh) 2020-11-20

Family

ID=73357979

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910420274.9A Withdrawn CN111966325A (zh) 2019-05-17 2019-05-20 指令处理方法、装置及相关产品

Country Status (1)

Country Link
CN (1) CN111966325A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150032999A1 (en) * 2013-07-23 2015-01-29 International Business Machines Corporation Instruction set architecture with opcode lookup using memory attribute
CN108573306A (zh) * 2017-03-10 2018-09-25 北京搜狗科技发展有限公司 输出回复信息的方法、深度学习模型的训练方法及装置
CN109284823A (zh) * 2017-04-20 2019-01-29 上海寒武纪信息科技有限公司 一种运算装置及相关产品
CN109522254A (zh) * 2017-10-30 2019-03-26 上海寒武纪信息科技有限公司 运算装置及方法
CN109711539A (zh) * 2018-12-17 2019-05-03 北京中科寒武纪科技有限公司 运算方法、装置及相关产品

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150032999A1 (en) * 2013-07-23 2015-01-29 International Business Machines Corporation Instruction set architecture with opcode lookup using memory attribute
CN108573306A (zh) * 2017-03-10 2018-09-25 北京搜狗科技发展有限公司 输出回复信息的方法、深度学习模型的训练方法及装置
CN109284823A (zh) * 2017-04-20 2019-01-29 上海寒武纪信息科技有限公司 一种运算装置及相关产品
CN109522254A (zh) * 2017-10-30 2019-03-26 上海寒武纪信息科技有限公司 运算装置及方法
CN109711539A (zh) * 2018-12-17 2019-05-03 北京中科寒武纪科技有限公司 运算方法、装置及相关产品

Similar Documents

Publication Publication Date Title
CN110096310B (zh) 运算方法、装置、计算机设备和存储介质
CN110119807B (zh) 运算方法、装置、计算机设备和存储介质
CN111061507A (zh) 运算方法、装置、计算机设备和存储介质
CN111047005A (zh) 运算方法、装置、计算机设备和存储介质
CN111353595A (zh) 运算方法、装置及相关产品
CN111966325A (zh) 指令处理方法、装置及相关产品
CN111966403A (zh) 指令处理方法、装置及相关产品
CN112346781A (zh) 指令处理方法、装置及相关产品
CN112395003A (zh) 运算方法、装置及相关产品
CN112396186B (zh) 执行方法、装置及相关产品
CN111047030A (zh) 运算方法、装置、计算机设备和存储介质
CN112346707A (zh) 指令处理方法、装置及相关产品
CN111949317A (zh) 指令处理方法、装置及相关产品
CN111260070A (zh) 运算方法、装置及相关产品
CN112394985B (zh) 执行方法、装置及相关产品
CN111381872A (zh) 运算方法、装置及相关产品
CN111258641A (zh) 运算方法、装置及相关产品
CN111382850A (zh) 运算方法、装置及相关产品
CN111260046A (zh) 运算方法、装置及相关产品
CN111222633A (zh) 运算方法、装置及相关产品
CN112346705A (zh) 指令处理方法、装置及相关产品
CN112346784A (zh) 指令处理方法、装置及相关产品
CN111026440B (zh) 运算方法、装置、计算机设备和存储介质
CN111047028A (zh) 运算方法、装置及相关产品
CN111290789B (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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20201120