CN111949318A - 指令处理方法、装置及相关产品 - Google Patents
指令处理方法、装置及相关产品 Download PDFInfo
- Publication number
- CN111949318A CN111949318A CN201910412761.0A CN201910412761A CN111949318A CN 111949318 A CN111949318 A CN 111949318A CN 201910412761 A CN201910412761 A CN 201910412761A CN 111949318 A CN111949318 A CN 111949318A
- Authority
- CN
- China
- Prior art keywords
- instruction
- target
- tensor
- assigned
- target tensor
- 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
Links
- 238000003672 processing method Methods 0.000 title abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 200
- 230000015654 memory Effects 0.000 claims abstract description 148
- 238000000034 method Methods 0.000 claims description 25
- 238000010801 machine learning Methods 0.000 abstract description 61
- 238000012546 transfer Methods 0.000 abstract description 5
- 230000002093 peripheral effect Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 9
- 210000004027 cell Anatomy 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 210000002569 neuron Anatomy 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Advance Control (AREA)
Abstract
本公开涉及一种指令处理方法、装置及相关产品。机器学习装置包括一个或多个指令处理装置,用于从其他处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置;当机器学习运算装置包含多个指令处理装置时,多个指令处理装置间可以通过特定的结构进行连接并传输数据。其中,多个指令处理装置通过快速外部设备互连总线PCIE总线进行互联并传输数据;多个指令处理装置共享同一控制***或拥有各自的控制***、且共享内存或者拥有各自的内存;多个指令处理装置的互联方式是任意互联拓扑。本公开实施例所提供的指令处理方法、装置及相关产品的适用范围广,对指令的处理效率高、处理速度快。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种用于实现内存赋值的指令处 理方法、装置及相关产品。
背景技术
随着科技的不断发展,神经网络算法等机器学习算法的使用越来越广泛, 在图像识别、语音识别、自然语言处理等领域中都得到了良好的应用。大数 据运算及机器学习算法的广泛应用,使得数据的存储及运算均面临着较大的 挑战。如何对该计算机装置的内存空间进行赋值或初始化成为研究热点。
发明内容
有鉴于此,本公开提出了一种用于实现内存赋值的指令处理方法、装置 及相关产品。
根据本公开的第一方面,提供了一种指令处理装置,所述装置包括:
编译器,用于对内存赋值指令进行编译,获得编译后的内存赋值指令;
控制模块,用于对编译后的内存赋值指令进行解析,得到所述内存赋值 指令的操作码和操作域,并根据所述操作码和所述操作域获得目标张量的存 储地址、所述目标张量中待赋值元素的数量以及目标值;其中,所述操作域 包括目标张量的存储地址、所述目标张量中待赋值元素的数量和所述目标值; 所述目标张量的存储地址指向的存储空间为所述指令处理装置的片上存储 空间;
处理模块,用于根据所述目标张量的存储地址、所述目标张量中待赋值 元素的数量和所述目标值,将所述目标值作为所述目标张量中待赋值元素的 值。
根据本公开的第二方面,提供了一种机器学习运算装置,所述装置包括:
一个或多个上述第一方面所述的指令处理装置,用于从其他处理装置中 获取待迁移数据和控制信息,并执行指定的机器学习运算,将执行结果通过 I/O接口传递给其他处理装置;
当所述机器学习运算装置包含多个所述指令处理装置时,所述多个所述 指令处理装置间可以通过特定的结构进行连接并传输数据;
其中,多个所述指令处理装置通过快速外部设备互连总线PCIE总线进 行互联并传输数据,以支持更大规模的机器学习的运算;多个所述指令处理 装置共享同一控制***或拥有各自的控制***;多个所述指令处理装置共享 内存或者拥有各自的内存;多个所述指令处理装置的互联方式是任意互联拓 扑。
根据本公开的第三方面,提供了一种组合处理装置,所述装置包括:
上述第二方面所述的机器学习运算装置、通用互联接口和其他处理装置;
所述机器学习运算装置与所述其他处理装置进行交互,共同完成用户指 定的计算操作。
根据本公开的第四方面,提供了一种机器学习芯片,所述机器学习芯片 包括上述第二方面所述的机器学习络运算装置或上述第三方面所述的组合 处理装置。
根据本公开的第五方面,提供了一种机器学习芯片封装结构,该机器学 习芯片封装结构包括上述第四方面所述的机器学习芯片。
根据本公开的第六方面,提供了一种板卡,该板卡包括上述第五方面所 述的机器学习芯片封装结构。
根据本公开的第七方面,提供了一种电子设备,所述电子设备包括上述 第四方面所述的机器学习芯片或上述第六方面所述的板卡。
根据本公开的第八方面,提供了一种指令处理方法,所述方法包括:
对内存赋值指令进行编译,获得编译后的内存赋值指令;
对编译后的内存赋值指令进行解析,得到所述内存赋值指令的操作码和 操作域,并根据所述操作码和所述操作域获得目标张量的存储地址、所述目 标张量中的待赋值元素的数量以及目标值;其中,所述操作域包括目标张量 的存储地址、所述目标张量中的待赋值元素的数量和所述目标值;所述目标 张量的存储地址指向的存储空间为所述指令处理装置的片上存储空间;
根据所述目标张量的存储地址、所述目标张量中的待赋值元素的数量和 所述目标值,将所述目标值作为所述目标张量中待赋值元素的值。
根据本公开的第八方面,提供了一种计算机可读存储介质,所述存储介 质中存储有计算机程序,所述计算机程序被一个或多个处理器执行,实现上 述的指令处理方法的步骤。
本公开实施例所提供的指令处理方法、装置及相关产品,该装置包括控 制模块和处理模块。编译器对内存赋值指令进行编译,获得编译后的内存赋 值指令,控制模块对编译后的内存赋值指令进行解析,得到内存赋值指令的 操作码和操作域,并根据操作码和操作域获得目标张量的存储地址、所述目 标张量中的待赋值元素的数量以及目标值,其中,该目标张量的存储地址指 向的存储空间为指令处理装置片上存储空间。处理模块可以根据目标张量的 存储地址、所述目标张量中的待赋值元素的数量和目标值,将目标值作为目标张量中待赋值元素的值,从而实现指令处理装置中片上存储空间的赋值。 本申请实施例提供的指令处理方法、装置及相关产品对指令赋值指令的处理 效率高、处理速度高。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方 面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了 本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开一实施例的指令处理装置的框图;
图2示出根据本公开一实施例的指令处理装置中的存储模块框图;
图3a-图3e示出根据本公开一实施例的指令处理装置的框图;
图4a、图4b示出根据本公开一实施例的组合处理装置的框图;
图5示出根据本公开一实施例的板卡的结构示意图;
图6示出根据本公开一实施例的指令处理方法的流程图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附 图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施 例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为 “示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的 具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以 实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路 未作详细描述,以便于凸显本公开的主旨。
本申请提供了一种用于实现内存赋值指令以及用于执行该内存赋值指 令的指令处理装置。该指令处理装置可以用于执行内存赋值指令等多种指令。 其中,内存赋值指令可以用于将指令存储装置的片上存储空间的指定区间内 的值设置为目标值。可选地,该内存赋值指令可以包括操作码和操作域,该 操作码可以用来表示指令用于执行何种操作,本申请实施例中,内存赋值指 令的操作码可以用于指示该内存赋值指令是用以设置指定存储空间内的值, 进一步的,该操作码可以包括目标张量的存储地址所属的存储器的标识。也 就是说,本申请中的内存赋值指令是用于设置特定存储器中的指定存储空间 内的值。该内存赋值指令的操作域可以用来说明该指令作用的对象信息,具 体地,该内存赋值指令的操作域可以用来指示目标张量信息和目标值,该目 标张量信息可以包括目标张量的存储地址和目标张量中的待赋值元素的数 量。例如,该操作域可以包括三个操作数,三个操作数分别为目标张量的存 储地址、目标张量中的待赋值元素的数量和目标值。该目标张量的存储地址 指向的存储空间可以为指令存储装置的片上存储空间。应当理解的是,本领域技术人员可以根据需要对内存赋值指令的操作码、指令格式中操作码和操 作域的位置进行设置,本公开对此不作限制。
如图1和图2所示,本申请实施例提供了一种指令处理装置,该指令处 理装置可以包括编译器10、控制模块11、处理模块12和存储模块13,可选 地,控制模块11和处理模块12可以集成于一处理器。如图2所示,该处理 模块12可以包括至少一个计算核(计算核11~1Q,计算核21~2Q,计算核 P1~PQ),一个以上的计算核可以形成一个运算核心簇(cluster)。其中,计 算核可以为装置中用于实现计算的基本元件,该计算核可以包括至少一个片 上存储以及用于进行数据运算的运算单元或模块等。本申请实施例中,计算 核还可以用于实现上述的内存赋值指令。进一步可选地,该处理器可以是人 工智能处理器,该人工智能处理器的控制模块11和处理模块12的具体结构 及工作流程可参见下文的描述。
该存储模块可以包括片上存储和片外存储。具体地,如图2所示,该存 储模块可以与上述处理器连接。其中,处理器的每个计算核上可以设置有该 计算核私有的片上存储。可选地,该片上存储可以是用于存储标量数据或向 量数据的神经元存储器,该神经元存储器可以是随机存取存储器,简记为 NRAM(Neural Random Access Memory)。该片外存储可以是DDR (Double Data Rate SDRAM,双倍速率SDRAM)。该DDR的一部分存储空 间作为通用存储器,通用存储器可以是各个计算核共用的存储器,该通用存 储器可以简记为GDRAM。该DDR的另一部分存储空间可以作为各个计算 核可以私有的存储器,计算核私有的存储器可以简记为LDRAM。
其中,控制模块11可以对软件指令进行编译和解析等处理,并根据该 软件指令执行相应的赋值操作。具体地,控制模块11用于对内存赋值指令 进行编译,获得编译后的内存赋值指令,对编译后的内存赋值指令进行解析, 得到内存赋值指令的操作码和操作域,并根据操作码和操作域获得目标张量 的存储地址、目标张量中的待赋值元素的数量和目标值,其中,操作域包括 目标张量的存储地址、目标张量中的待赋值元素的数量和目标值,进一步的, 目标张量的存储地址指向的存储空间可以为指令处理装置的片上存储空间。可选地,该目标张量的存储地址指向的存储空间为指令处理装置的片上 NRAM。当然,在其他实施例中,该目标张量的存储空间还可以是其他片外 存储空间,如LDRAM或GDRAM等等。
处理模块12用于根据目标张量的存储地址、目标张量中的待赋值元素 的数量和目标值,将目标值作为目标张量中待赋值元素的值。具体地,处理 模块12可以根据目标张量的存储地址和目标张量中待赋值元素的数量,将 目标张量的存储地址所指向的存储空间中的前N个待赋值元素的值设置为 上述的目标值,从而实现指令存储装置的片上存储空间的赋值。其中,N是 指目标张量中待赋值元素的数量。
可选地,该目标张量可以是神经网络数据,如神经网络的神经元数据或 权值数据等等。目标张量是指0维以上的数据,其可以具有多个维度。特别 的,0维张量数据即为标量数据,1维张量数据即为向量数据,2维张量数据 可以为矩阵数据等。也就是说,本申请实施例中的内存赋值指令既能实现标 量数据的重新赋值,也可以实现张量数据中部分元素的重新赋值。
可选地,上述目标值可以为0,当上述目标值为0时,处理模块12具体 将目标张量的存储地址所指向的存储空间中的待赋值运算的值设置为0,相 当于对指令存储装置的片上存储空间进行初始化操作。在其他实施例中,该 目标值可以是任意可选的数值。
以下举例说明本申请实施例的编译后的内存赋值指令的实现方式:
Nramset.s16[%r0],1,128
其中,Nramset可以表示该内存赋值指令的操作码,s16[%r0] 指表示该目标张量的存储地址,128指目标张量中待赋值元素的数 量,1指上述的目标值。上述内存赋值指令的语义是将NRAM中的 起始地址为s16[%r0]的张量数据的前128个元素的值设置为1。
本申请实施例中,指令处理装置的控制模块11所获取到的内存赋值指 令为未编译的、不能直接供硬件执行的软件指令,控制模块11需先对内存 赋值指令(未编译)进行编译。在得到编译后的内存赋值指令之后,对编译 后的内存赋值指令进行解析。之后,处理模块12再根据该编译后的内存赋 值指令执行赋值操作。本申请实施例中的指令处理装置通过对相应存储空间 进行写操作实现赋值操作,相较于传统技术中需要在片外存储上对指定存储 空间的数据进行赋值后,再将赋值后的新的数据搬运至片上存储空间的方式, 内存赋值过程较为简单,提高了指令处理效率。
具体地,编译器用于对获取到的未编译的内存赋值指令进行编译,得到 编译后的内存赋值指令。可选地,该编译后的内存赋值指令可以是人工智能 处理器能够执行的二进制指令。该控制模块11可以接收该编译后获得的二 进制指令,并对该硬件指令进行译码等解析操作,获得至少一个处理模块12 能够执行的硬件指令。处理模块12可以根据解析后的内存赋值指令执行指 定存储空间的赋值操作。可选地,该编译器可以由软件实现。
可选地,编译器可以将该内存赋值指令翻译为中间代码指令,并对该中 间代码指令进行汇编获得机器能够执行的二进制指令,该编译后的内存赋值 指令可以是指二进制指令。可选地,该编译器可以与上述的控制模块11和 处理模块12分离设置,控制模块11和处理模块12集成在同一人工智能处 理器上,编译器运行在与该人工智能处理器连接的通用处理器上(例如, CPU)。
可选地,上述的目标张量的存储地址可以是目标张量所在存储空间的起 始地址。处理模块12可以包括数据读写电路,该数据读写电路可以从该目 标张量所在存储空间的起始地址,将目标张量中待赋值元素的数量的元素设 置为目标值。即数据读写电路可以将目标张量的前待赋值元素数量的元素设 置为目标值。可选地,上述将目标张量中待赋值元素设置为目标值的过程可 以是按照字节数将待赋值元素设置为目标值。
可选地,每确定设置一个待赋值元素的值,则处理模块12的数据读写 电路可以根据预设的地址偏移量更新该目标张量的起始地址,更新后的目标 张量的起始地址可以等于当前目标张量的起始地址与地址偏移量之和。可选 地,该地址偏移量可以是内存赋值指令的操作码中默认的地址偏移量,可选 地,默认的地址偏移量可以按照字节数进行确定,具体地,该默认的地址偏 移量可以是64字节的倍数。当然,在其他实施例中,该地址偏移量还可以 是8字节、16字节、32字节或128字节等的倍数,此处仅以举例说明,并 不用于具体限定本申请中地址偏移量。
当然,该地址偏移量也可以是根据待赋值元素占用的存储空间确定的, 该地址偏移量可以是待赋值元素占用的存储空间的倍数。例如,待赋值元素 占用的存储空间为64字节,则该地址偏移量为64字节的倍数。
可选地,该待赋值元素数量也可以采用字节数表示。目标张量的存储空 间对应的字节数为目标张量中待赋值元素数量对应的字节数的整数倍。该待 赋值元素所占用的存储地址可以为64字节的倍数。可选地,待赋值元素数 量为常数,待赋值元素的数据类型为int。具体地,该待赋值元素的数据类 型可以是int32(4字节整数)。在其他实施例中,该待赋值元素的数据类型 还可以是其他数据类型。
可选地,目标张量的存储地址与目标值具有相同的数据类型,目标张量 的存储地址和目标值的数据类型为half(半精度浮点数据类型)、int16(2字 节整数)、unit16(2字节无符号整数)、int32(4字节整数)、unit32(4字节 无符号整数)中的一种。
可选地,操作码中包含数据类型,操作码中的数据类型可以是half(半 精度浮点数据类型)、short或int。进一步可选地,操作码中的数据类型与操 作域中的目标张量的存储地址和目标值的数据类型具有一定的对应关系。具 体地,当操作码中的数据类型为half时,目标张量的存储地址和目标值的数 据类型为half。当操作码中的数据类型标识为short时,目标张量的存储地 址和目标值的数据类型为int16(2字节整数)或unit16(2字节无符号整数)。 当操作码中数据类型标识为int时,目标张量的存储地址和目标值的数据类型为int32(4字节整数)或unit32(4字节无符号整数)。进一步可选地,由 于本申请中的内存赋值指令用于对片上NRAM等指定存储空间进行赋值操 作,该内存赋值指令的操作码还可以包括片上存储空间所属存储器的标识。 例如,该内存赋值指令的操作码可以是nramset_half、nramset_short或 nramset_int等等。
进一步可选地,内存赋值指令可以封装为一个函数,上述函数可以为上 述的未编译的软件指令。例如,当操作码中的数据类型为half时,该函数可 以表示为:
nramset_half(half*dst,int32_t elem_num,half value);
其中,nramset_half表示操作码,half*dst表示目标张量地存储地址, int32_telem_num表示目标张量中待赋值元素的数量,half value表示目标值。
再如,当操作码中的数据类型为short时,该函数可以表示为:
nramset_short(int16_t*dst,int32_t elem_num,int16_t value);或者
nramset_short(uint16_t*dst,int32_t elem_num,uint16_t value)。
其中,nramset_short表示操作码,int16_t*dst或uint16_t*dst 表示目标张量地存储地址,int32_t elem_num表示目标张量中待赋 值元素的数量,int16_t value或uint16_t value表示目标值。
又如,当操作码中的数据类型为int时,该函数可以表示为:
nramset_int(int32_t*dst,int32_t elem_num,int32_t value);或者
nramset_int(uint32_t*dst,int32_t elem_num,uint32_t value)。
其中,nramset_int表示操作码,int32_t*dst或uint32_t*dst表示目 标张量地存储地址,int32_t elem_num表示目标张量中待赋值元素 的数量,int32_t value或uint32_t value表示目标值。
在一个可选的实施例中,可选地,如图3a-图3e所示,控制模块11 可以包括指令存储子模块111、指令处理子模块112和队列存储子模块113。 其中,指令存储子模块111用于存储编译后的内存赋值指令。指令处理子模 块112用于对编译后的内存赋值指令进行解析,得到内存赋值指令的操作码 和操作域。队列存储子模块113用于存储指令队列,指令队列包括按照执行 顺序依次排列的多个待执行指令,多个待执行指令可以包括编译后的内存赋 值指令。在该实现方式中,待执行指令还可以包括与内存赋值指令相关或无 关的计算指令,本公开对此不作限制。本申请实施例可以根据待执行指令的 接收时间、优先级别等对多个待执行指令的执行顺序进行排列获得指令队列, 以便于根据指令队列依次执行多个待执行指令。控制模块可以通过数据输入 输出单元获得指令和数据,该数据输入输出单元可以为一个或多个数据I/O 接口或I/O引脚。
进一步可选地,如图3a-图3e所示,控制模块11可以包括依赖关系处 理子模块114。依赖关系处理子模块114用于在确定多个待执行指令中的第 一待执行指令与第一待执行指令之前的第零待执行指令存在关联关系时,将 第一待执行指令缓存在指令存储子模块111中,在第零待执行指令执行完毕 后,从指令存储子模块111中提取第一待执行指令发送至处理模块12。其中, 第一待执行指令与第一待执行指令之前的第零待执行指令存在关联关系包 括:存储第一待执行指令所需数据的第一存储地址区间与存储第零待执行指令所需数据的第零存储地址区间具有重叠的区域。反之,第一待执行指令与 第一待执行指令之前的第零待执行指令之间没有关联关系可以是第一存储 地址区间与第零存储地址区间没有重叠区域。通过这种方式,可以根据第一 待执行指令与第一待执行指令之前的第零待执行指令之间的依赖关系,使得 在先的第零待执行指令执行完毕之后,再执行在后的第一待执行指令,保证 结果的准确性。
每个计算核可以包括主处理子模块和多个从处理子模块。如图 3a所示,处理模块12可以包括主处理子模块121和多个从处理子模块122。 控制模块11,还用于解析编译后的指令得到多个运算指令,并将待迁移数据 以及多个运算指令发送至主处理子模块121。
主处理子模块121,用于对待迁移数据执行前序处理,以及与多个从处 理子模块122进行数据以及多个运算指令的传输。
多个从处理子模块122,用于根据从主处理子模块121传输的数据和运 算指令并行执行中间运算得到多个中间结果,并将多个中间结果传输给主处 理子模块121。
主处理运算子模块121,还用于对多个中间结果执行后续处理,得到处 理后的待迁移数据,将处理后的待迁移数据存入目标地址中。
需要说明的是,本领域技术人员可以根据实际需要对主处理子模块和多 个从处理子模块之间的连接方式进行设置,以实现对处理模块的架构设置, 例如,处理模块的架构可以是“H”型架构、阵列型架构、树型架构等,本 公开对此不作限制。
图3b示出根据本公开一实施例的指令处理装置的框图。在一种可能的 实现方式中,如图3b所示,处理模块12还可以包括一个或多个分支处理子 模块123,该分支处理子模块123用于转发主处理子模块121和从处理子模 块122之间的数据和/或运算指令。其中,主处理子模块121与一个或多个分 支处理子模块123连接。这样,处理模块中的主处理子模块、分支处理子模 块和从处理子模块之间采用“H”型架构连接,通过分支处理子模块转发数 据和/或运算指令,节省了对主处理子模块的资源占用,进而提高指令的处理 速度。
图3c示出根据本公开一实施例的指令处理装置的框图。在一种可能的 实现方式中,如图3c所示,多个从处理子模块122呈阵列分布。
每个从处理子模块122与相邻的其他从处理子模块122连接,主处理子模块 121连接多个从处理子模块122中的k个从处理子模块122,k个从处理子模 块122为:第1行的n个从处理子模块122、第m行的n个从处理子模块122 以及第1列的m个从处理子模块122。
其中,如图3c所示,k个从处理子模块仅包括第1行的n个从处理子模 块、第m行的n个从处理子模块以及第1列的m个从处理子模块,即该k 个从处理子模块为多个从处理子模块中直接与主处理子模块连接的从处理 子模块。其中,k个从处理子模块,用于在主处理子模块以及多个从处理子 模块之间的数据以及指令的转发。这样,多个从处理子模块呈阵列分布,可 以提高主处理子模块向从处理子模块发送数据和/或运算指令速度,进而提高 指令的处理速度。
图3d示出根据本公开一实施例的指令处理装置的框图。在一种可能的实现 方式中,如图3d所示,处理模块还可以包括树型子模块124。该树型子模块124 包括一个根端口401和多个支端口402。根端口401与主处理子模块121连接, 多个支端口402与多个从处理子模块122分别连接。其中,树型子模块124具 有收发功能,用于转发主处理子模块121和从处理子模块122之间的数据和/ 或运算指令。这样,通过树型子模块的作用使得处理模块呈树型架构连接,并 利用树型子模块的转发功能,可以提高主处理子模块向从处理子模块发送数据 和/或运算指令速度,进而提高指令的处理速度。
在一种可能的实现方式中,树型子模块124可以为该装置的可选结果, 其可以包括至少一层节点。节点为具有转发功能的线结构,节点本身不具备 运算功能。最下层的节点与从处理子模块连接,以转发主处理子模块121和 从处理子模块122之间的数据和/或运算指令。特殊地,如树型子模块具有零 层节点,该装置则无需树型子模块。
在一种可能的实现方式中,树型子模块124可以包括n叉树结构的多个 节点,n叉树结构的多个节点可以具有多个层。举例来说,图3e示出根据本 公开一实施例的指令处理装置的框图。如图3e所示,n叉树结构可以是二叉 树结构,树型子模块包括2层节点01。最下层节点01与从处理子模块122 连接,以转发主处理子模块121和从处理子模块122之间的数据和/或运算指 令。在该实现方式中,n叉树结构还可以是三叉树结构等,n为大于或等于2的正整数。本领域技术人员可以根据需要对n叉树结构中的n以及n叉树结 构中节点的层数进行设置,本公开对此不作限制。
在本公开所提供的实施例中,应该理解到,所揭露的***、装置,可通 过其它的方式实现。例如,以上所描述的***、装置实施例仅仅是示意性的, 例如设备、装置、模块的划分,仅仅为一种逻辑功能划分,实际实现时可以 有另外的划分方式,例如多个模块可以结合或者可以集成到另一个***或装 置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的 耦合或直接耦合或通信连接可以是通过一些接口,设备、装置或模块的间接 耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模 块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者 也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全 部模块来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能模块可以集成在一个处理单元中, 也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模 块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件程序模 块的形式实现。
集成的模块如果以软件程序模块的形式实现并作为独立的产品销售或 使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本公开 的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全 部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存 储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器 或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前 述的存储器包括: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,实现数据转移。优选的,当采用PCIE3.0 X16 接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,接口装置391还可以是其他的接口,本公开并不限制上述其他的接口的具体表现形式,接 口装置能够实现转接功能即可。另外,机器学习芯片的计算结果仍由接口装 置传送回外部设备(例如服务器)。
控制器件392与机器学习芯片389电连接。控制器件392用于对机器学 习芯片389的状态进行监控。具体的,机器学习芯片389与控制器件392可 以通过SPI接口电连接。控制器件392可以包括单片机(Micro Controller Unit, MCU)。如机器学习芯片389可以包括多个处理芯片、多个处理核或多个处 理电路,可以带动多个负载。因此,机器学习芯片389可以处于多负载和轻 负载等不同的工作状态。通过控制器件可以实现对机器学习芯片中多个处理 芯片、多个处理和/或多个处理电路的工作状态的调控。
本公开提供一种电子设备,该电子设备包括上述机器学习芯片或板卡。
电子设备可以包括数据处理装置、机器人、电脑、打印机、扫描仪、平 板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、 云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、 交通工具、家用电器、和/或医疗设备。
交通工具可以包括飞机、轮船和/或车辆。家用电器可以包括电视、空调、 微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机。医疗设 备可以包括核磁共振仪、B超仪和/或心电图仪。
图6示出根据本公开一实施例的指令处理方法的流程图。如图6所示, 该方法可以应用于上述指令处理装置。上述指令处理方法包括如下操作:
S600、对内存赋值指令进行编译,获得编译后的内存赋值指令;
S610、对编译后的内存赋值指令进行解析,得到所述内存赋值指令的操 作码和操作域,并根据所述操作码和所述操作域获得目标张量的存储地址、 所述目标张量中的待赋值元素的数量以及目标值;其中,所述操作域包括目 标张量的存储地址、所述目标张量中的待赋值元素的数量和所述目标值;所 述目标张量的存储地址指向的存储空间为所述指令处理装置的片上存储空 间;
S620、根据所述目标张量的存储地址、所述目标张量中的待赋值元素的 数量和所述目标值,将所述目标值作为所述目标张量中待赋值元素的值。
可选地,所述目标张量的存储地址指向的存储空间为片上NRAM,所述 NRAM用于存储标量或张量数据。
可选地,所述待赋值元素数量为常数,所述待赋值元素的数据类型为int。
可选地,所述目标张量的存储地址与所述目标值具有相同的数据类型, 所述目标张量的存储地址和所述目标值的数据类型为half、int16、unit16、 int32、unit32中的一种。
可选地,所述操作码中包含数据类型;
所述操作码中的数据类型为half时,所述目标张量的存储地址和所述目 标值的数据类型为half;
所述操作码中的数据类型标识为short时,所述目标张量的存储地址和 所述目标值的数据类型为int16或unit16;
所述操作码中数据类型标识为int时,所述目标张量的存储地址和所述 目标值的数据类型为int32或unit32。
可选地,所述操作码中还包括所述片上存储空间所属存储器的标识。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表 述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描 述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同 时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属 于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。在上述 实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分, 可以参见其他实施例的相关描述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分 步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机 可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简 称:RAM)、磁盘或光盘等。
在一个实施例中,本申请还提供了一种计算机可读存储介质,该计算机 可读存储介质中设置存储有计算机程序,该计算机程序被一个或多个处理器 执行时,具体实现上述方法中的步骤。具体地,该计算机程序被一个或多个 处理器执行时,具体实现如下步骤:
对编译后的内存赋值指令进行解析,得到所述内存赋值指令的操作码和 操作域,并根据所述操作码和所述操作域获得目标张量的存储地址、所述目 标张量中的待赋值元素的数量以及目标值;其中,所述操作域包括目标张量 的存储地址、所述目标张量中的待赋值元素的数量和所述目标值;所述目标 张量的存储地址指向的存储空间为所述指令处理装置的片上存储空间;
根据所述目标张量的存储地址、所述目标张量中的待赋值元素的数量和 所述目标值,将所述目标值作为所述目标张量中待赋值元素的值。
上述实施例中各个步骤的具体实现与上述方法中的步骤的实现过程基 本一致。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中 没有详述的部分,可以参见其他实施例的相关描述。
根据以下条款可以更好地理解前述内容:
条款1:一种指令处理装置,所述装置包括:
编译器,用于对内存赋值指令进行编译,获得编译后的内存赋值指令;
控制模块,用于对编译后的内存赋值指令进行解析,得到所述内存赋值 指令的操作码和操作域,并根据所述操作码和所述操作域获得目标张量的存 储地址、所述目标张量中待赋值元素的数量以及目标值;其中,所述操作域 包括目标张量的存储地址、所述目标张量中待赋值元素的数量和所述目标值; 所述目标张量的存储地址指向的存储空间为所述指令处理装置的片上存储 空间;
处理模块,用于根据所述目标张量的存储地址、所述目标张量中待赋值 元素的数量和所述目标值,将所述目标值作为所述目标张量中待赋值元素的 值。
条款2:根据权利要求1所述的装置,所述处理模块包括数据读写电路, 所述数据读写电路用于根据所述目标张量的存储地址、所述目标张量中待赋 值元素的数量和所述目标值,将所述目标张量中的前N个元素的值设置为所 述目标值,其中,N表示所述待赋值元素的数量。
条款3:根据条款1或2所述的装置,所述目标张量的存储地址指向的 存储空间为设置在片上的NRAM,所述NRAM用于存储标量或张量数据。
条款4:根据条款1-3任一项所述的装置,所述待赋值元素数量为常数, 所述待赋值元素的数据类型为int。
条款5:根据条款1-4任一项所述的装置,所述目标张量的存储地址与 所述目标值具有相同的数据类型,所述目标张量的存储地址和所述目标值的 数据类型为half、int16、unit16、int32、unit32中的一种。
条款6:根据条款1-5任一项所述的装置,所述操作码中包含数据类型;
所述操作码中的数据类型为half时,所述目标张量的存储地址和所述目 标值的数据类型为half;
所述操作码中的数据类型标识为short时,所述目标张量的存储地址和 所述目标值的数据类型为int16或unit16;
所述操作码中数据类型标识为int时,所述目标张量的存储地址和所述 目标值的数据类型为int32或unit32。
条款7:根据权利要求1-6任一项所述的装置,所述操作码中还包括所 述片上存储空间所属存储器的标识。
条款8:根据条款1-7任一项所述的装置,所述控制模块包括:
指令存储子模块,用于存储所述内存赋值指令;
指令处理子模块,用于对所述内存赋值指令进行解析,得到所述内存赋 值指令的操作码和操作域;
队列存储子模块,用于存储指令队列,所述指令队列包括按照执行顺序 依次排列的多个内存赋值指令。
条款9:一种指令处理方法,所述方法包括:
对内存赋值指令进行编译,获得编译后的内存赋值指令;
对编译后的内存赋值指令进行解析,得到所述内存赋值指令的操作码和 操作域,并根据所述操作码和所述操作域获得目标张量的存储地址、所述目 标张量中的待赋值元素的数量以及目标值;其中,所述操作域包括目标张量 的存储地址、所述目标张量中的待赋值元素的数量和所述目标值;所述目标 张量的存储地址指向的存储空间为所述指令处理装置的片上存储空间;
根据所述目标张量的存储地址、所述目标张量中的待赋值元素的数量和 所述目标值,将所述目标值作为所述目标张量中待赋值元素的值。
条款10:根据条款9所述的方法,所述目标张量的存储地址指向的存储 空间为设置在片上的NRAM,所述NRAM用于存储标量或张量数据。
条款11:根据条款9-10任一项所述的方法,所述待赋值元素数量为常 数,所述待赋值元素的数据类型为int。
条款12:根据条款9-11任一项所述的方法,所述目标张量的存储地址 与所述目标值具有相同的数据类型,所述目标张量的存储地址和所述目标值 的数据类型为half、int16、unit16、int32、unit32中的一种。
条款13:根据条款9-12任一项所述的方法,所述操作码中包含数据类 型;
所述操作码中的数据类型为half时,所述目标张量的存储地址和所述目 标值的数据类型为half;
所述操作码中的数据类型标识为short时,所述目标张量的存储地址和 所述目标值的数据类型为int16或unit16;
所述操作码中数据类型标识为int时,所述目标张量的存储地址和所述 目标值的数据类型为int32或unit32。
条款14:根据权利要求9-13任一项所述的装置,所述操作码中还包括 所述片上存储空间所属存储器的标识。
条款15:根据条款9-14任一项所述的方法,所述方法还包括:
存储所述内存赋值指令;
对所述内存赋值指令进行解析,得到所述内存赋值指令的操作码和操作 域;
存储指令队列,所述指令队列包括按照执行顺序依次排列的多个内存赋 值指令。
条款16:一种计算机可读存储介质,所述计算机可读存储介质被一个或 多个处理装置执行时,实现如条款9-15任一项所述方法中的步骤。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请 的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请 的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思 想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内 容不应理解为对本申请的限制。
Claims (10)
1.一种指令处理装置,其特征在于,所述装置包括:
编译器,用于对内存赋值指令进行编译,获得编译后的内存赋值指令;
控制模块,用于对编译后的内存赋值指令进行解析,得到所述内存赋值指令的操作码和操作域,并根据所述操作码和所述操作域获得目标张量的存储地址、所述目标张量中待赋值元素的数量以及目标值;其中,所述操作域包括目标张量的存储地址、所述目标张量中待赋值元素的数量和所述目标值;所述目标张量的存储地址指向的存储空间为所述指令处理装置的片上存储空间;
处理模块,用于根据所述目标张量的存储地址、所述目标张量中待赋值元素的数量和所述目标值,将所述目标值作为所述目标张量中待赋值元素的值。
2.根据权利要求1所述的装置,其特征在于,所述处理模块包括数据读写电路,所述数据读写电路用于根据所述目标张量的存储地址、所述目标张量中待赋值元素的数量和所述目标值,将所述目标张量中的前N个元素的值设置为所述目标值,其中,N表示所述待赋值元素的数量。
3.根据权利要求1所述的装置,其特征在于,所述目标张量的存储地址指向的存储空间为片上NRAM,所述NRAM用于存储标量或张量数据。
4.根据权利要求1所述的装置,其特征在于,所述待赋值元素数量为常数,所述待赋值元素的数据类型为int。
5.根据权利要求1所述的装置,其特征在于,所述目标张量的存储地址与所述目标值具有相同的数据类型,所述目标张量的存储地址和所述目标值的数据类型为half、int16、unit16、int32、unit32中的一种。
6.根据权利要求5所述的装置,其特征在于,所述操作码中包含数据类型;
所述操作码中的数据类型为half时,所述目标张量的存储地址和所述目标值的数据类型为half;
所述操作码中的数据类型标识为short时,所述目标张量的存储地址和所述目标值的数据类型为int16或unit16;
所述操作码中数据类型标识为int时,所述目标张量的存储地址和所述目标值的数据类型为int32或unit32。
7.根据权利要求1-6任一项所述的装置,其特征在于,所述操作码中还包括所述片上存储空间所属存储器的标识。
8.根据权利要求1-6任一项所述的装置,其特征在于,所述控制模块包括:
指令存储子模块,用于存储所述编译后的内存赋值指令;
指令处理子模块,用于对所述编译后的内存赋值指令进行解析,得到所述编译后的内存赋值指令的操作码和操作域;
队列存储子模块,用于存储指令队列,所述指令队列包括按照执行顺序依次排列的多个编译后的内存赋值指令。
9.一种指令处理方法,其特征在于,所述方法包括:
对内存赋值指令进行编译,获得编译后的内存赋值指令;
对编译后的内存赋值指令进行解析,得到所述内存赋值指令的操作码和操作域,并根据所述操作码和所述操作域获得目标张量的存储地址、所述目标张量中的待赋值元素的数量以及目标值;其中,所述操作域包括目标张量的存储地址、所述目标张量中的待赋值元素的数量和所述目标值;所述目标张量的存储地址指向的存储空间为所述指令处理装置的片上存储空间;
根据所述目标张量的存储地址、所述目标张量中的待赋值元素的数量和所述目标值,将所述目标值作为所述目标张量中待赋值元素的值。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质被一个或多个处理装置执行时,实现如权利要求9所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910412761.0A CN111949318B (zh) | 2019-05-17 | 2019-05-17 | 指令处理方法、装置及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910412761.0A CN111949318B (zh) | 2019-05-17 | 2019-05-17 | 指令处理方法、装置及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111949318A true CN111949318A (zh) | 2020-11-17 |
CN111949318B CN111949318B (zh) | 2024-07-23 |
Family
ID=73336123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910412761.0A Active CN111949318B (zh) | 2019-05-17 | 2019-05-17 | 指令处理方法、装置及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111949318B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118171711A (zh) * | 2024-05-15 | 2024-06-11 | 上海为旌科技有限公司 | 一种指令调度方法、***、存储介质和电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015225427A (ja) * | 2014-05-27 | 2015-12-14 | ルネサスエレクトロニクス株式会社 | プロセッサ及びデータ収集方法 |
CN105867847A (zh) * | 2016-03-28 | 2016-08-17 | 龙芯中科技术有限公司 | 访存控制方法、装置及*** |
WO2018186763A1 (en) * | 2017-04-06 | 2018-10-11 | Intel Corporation | Vector compress2 and expand2 instructions with two memory locations |
CN109032670A (zh) * | 2018-08-08 | 2018-12-18 | 上海寒武纪信息科技有限公司 | 神经网络处理装置及其执行向量复制指令的方法 |
CN109101273A (zh) * | 2018-02-05 | 2018-12-28 | 上海寒武纪信息科技有限公司 | 神经网络处理装置及其执行向量最大值指令的方法 |
CN109711539A (zh) * | 2018-12-17 | 2019-05-03 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
CN111949317A (zh) * | 2019-05-17 | 2020-11-17 | 上海寒武纪信息科技有限公司 | 指令处理方法、装置及相关产品 |
-
2019
- 2019-05-17 CN CN201910412761.0A patent/CN111949318B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015225427A (ja) * | 2014-05-27 | 2015-12-14 | ルネサスエレクトロニクス株式会社 | プロセッサ及びデータ収集方法 |
CN105867847A (zh) * | 2016-03-28 | 2016-08-17 | 龙芯中科技术有限公司 | 访存控制方法、装置及*** |
WO2018186763A1 (en) * | 2017-04-06 | 2018-10-11 | Intel Corporation | Vector compress2 and expand2 instructions with two memory locations |
CN109101273A (zh) * | 2018-02-05 | 2018-12-28 | 上海寒武纪信息科技有限公司 | 神经网络处理装置及其执行向量最大值指令的方法 |
CN109165041A (zh) * | 2018-02-05 | 2019-01-08 | 上海寒武纪信息科技有限公司 | 神经网络处理装置及其执行向量范数指令的方法 |
CN109189474A (zh) * | 2018-02-05 | 2019-01-11 | 上海寒武纪信息科技有限公司 | 神经网络处理装置及其执行向量加和指令的方法 |
CN109032670A (zh) * | 2018-08-08 | 2018-12-18 | 上海寒武纪信息科技有限公司 | 神经网络处理装置及其执行向量复制指令的方法 |
CN109711539A (zh) * | 2018-12-17 | 2019-05-03 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
CN111949317A (zh) * | 2019-05-17 | 2020-11-17 | 上海寒武纪信息科技有限公司 | 指令处理方法、装置及相关产品 |
Non-Patent Citations (3)
Title |
---|
封斌等: "IEEE802.15.4中AES-CCM协议的扩展指令集实现", 《电子与信息学报》, no. 02, 15 February 2013 (2013-02-15), pages 85 - 90 * |
李昳垚等: "ADSP-2106X SHARC DSPs软件仿真器的构架与实现", 《微计算机信息》, no. 10, 15 October 2005 (2005-10-15), pages 131 - 133 * |
温淑鸿等: "有效利用片上分块存储器", 《清华大学学报(自然科学版)》, no. 01, 25 January 2006 (2006-01-25), pages 33 - 36 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118171711A (zh) * | 2024-05-15 | 2024-06-11 | 上海为旌科技有限公司 | 一种指令调度方法、***、存储介质和电子设备 |
CN118171711B (zh) * | 2024-05-15 | 2024-07-19 | 上海为旌科技有限公司 | 一种指令调度方法、***、存储介质和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111949318B (zh) | 2024-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096309B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN110119807B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111949317B (zh) | 指令处理方法、装置及相关产品 | |
CN111949318B (zh) | 指令处理方法、装置及相关产品 | |
CN111966399B (zh) | 指令处理方法、装置及相关产品 | |
CN111353595A (zh) | 运算方法、装置及相关产品 | |
CN112394985B (zh) | 执行方法、装置及相关产品 | |
CN112396186B (zh) | 执行方法、装置及相关产品 | |
CN111338694B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111339060B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111290789B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111966398B (zh) | 指令处理方法、装置及相关产品 | |
CN111275197B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111079914B (zh) | 运算方法、***及相关产品 | |
CN111078285B (zh) | 运算方法、***及相关产品 | |
CN112346707A (zh) | 指令处理方法、装置及相关产品 | |
CN111047028A (zh) | 运算方法、装置及相关产品 | |
CN111047027A (zh) | 运算方法、装置及相关产品 | |
CN111045729A (zh) | 运算方法、装置及相关产品 | |
CN112346784A (zh) | 指令处理方法、装置及相关产品 | |
CN111222633A (zh) | 运算方法、装置及相关产品 | |
CN112394990A (zh) | 浮点转半精度浮点指令处理装置、方法及相关产品 | |
CN112346781A (zh) | 指令处理方法、装置及相关产品 | |
CN112394986A (zh) | 半精度浮点转浮点指令处理装置、方法及相关产品 | |
CN112394902A (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 |