CN111857828A - 处理器操作方法及装置以及相关产品 - Google Patents
处理器操作方法及装置以及相关产品 Download PDFInfo
- Publication number
- CN111857828A CN111857828A CN201910340177.9A CN201910340177A CN111857828A CN 111857828 A CN111857828 A CN 111857828A CN 201910340177 A CN201910340177 A CN 201910340177A CN 111857828 A CN111857828 A CN 111857828A
- Authority
- CN
- China
- Prior art keywords
- fine
- grained
- region
- storage area
- target storage
- 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
- 238000000034 method Methods 0.000 title claims abstract description 96
- 238000012545 processing Methods 0.000 claims abstract description 63
- 238000013473 artificial intelligence Methods 0.000 claims description 43
- 230000005540 biological transmission Effects 0.000 claims description 13
- 238000012544 monitoring process Methods 0.000 claims description 5
- 230000000903 blocking effect Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 abstract description 7
- 238000011017 operating method Methods 0.000 abstract description 4
- 238000013528 artificial neural network Methods 0.000 abstract 1
- 238000003062 neural network model Methods 0.000 abstract 1
- 230000015654 memory Effects 0.000 description 36
- 238000010586 diagram Methods 0.000 description 18
- 238000005192 partition Methods 0.000 description 13
- 238000013507 mapping Methods 0.000 description 10
- 101100325756 Arabidopsis thaliana BAM5 gene Proteins 0.000 description 5
- 101150046378 RAM1 gene Proteins 0.000 description 5
- 101100476489 Rattus norvegicus Slc20a2 gene Proteins 0.000 description 5
- 235000019580 granularity Nutrition 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000010419 fine particle Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000000638 solvent extraction 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种处理器操作方法及装置以及相关产品,所述产品包括控制模块,所述控制模块包括:指令缓存单元、指令处理单元和存储队列单元;所述指令缓存单元,用于存储所述人工神经网络运算关联的计算指令;所述指令处理单元,用于对所述计算指令解析得到多个运算指令;所述存储队列单元,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令。通过以上方法,本公开可以提高相关产品在进行神经网络模型的运算时的运算效率。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种处理器操作方法及装置以及相关产品。
背景技术
随着人工智能技术的不断发展,需要处理的数据量和数据维度都在不断增大。在相关技术中,当多个操作针对相同的存储区域进行操作时,需要等待前一条操作完毕,后一条操作才能执行,降低了处理器的处理效率。
发明内容
有鉴于此,本公开提出了一种处理器操作技术方案。
根据本公开的一方面,提供了一种处理器操作方法,包括:在第一操作为针对描述符的操作时,获取所述描述符所指示的张量数据的目标存储区域;判断是否存在正在进行的针对所述目标存储区域的第二操作;在存在所述第二操作时,判断所述第一操作当前所针对的所述目标存储区域中的第一细粒度区域与所述第二操作当前所针对的所述目标存储区域中的第二细粒度区域之间是否有重叠;在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。。
根据本公开的另一方面,提供了一种处理器操作装置,包括:区域确定模块,用于在第一操作为针对描述符的操作时,获取所述描述符所指示的张量数据的目标存储区域;操作判断模块,用于判断是否存在正在进行的针对所述目标存储区域的第二操作;重叠判断模块,用于在存在所述第二操作时,判断所述第一操作当前所针对的所述目标存储区域中的第一细粒度区域与所述第二操作当前所针对的所述目标存储区域中的第二细粒度区域之间是否有重叠;执行模块,用于在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
根据本公开的另一方面,提供了一种人工智能芯片,所述芯片包括如上所述的处理器操作装置。
根据本公开的另一方面,提供了一种电子设备,所述电子设备包括如上所述的人工智能芯片。
根据本公开的另一方面,提供了一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如上所述的人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
根据本公开的实施例,能够在第一操作为针对描述符的操作时,获取描述符所指示的张量数据的目标存储区域,并在存在正在进行的针对目标存储区域的第二操作时,判断第一操作当前所针对的目标存储区域中的第一细粒度区域与第二操作当前针对的目标存储区域中的第二细粒度区域之间是否有重叠,在两者无重叠时,执行第一操作。这样,第一操作和第二操作当前操作的细粒度区域无重叠即可执行,使得第一操作和第二操作可以同时对目标存储区域进行操作,提高了处理器的处理效率。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开实施例的处理器操作方法的应用场景的示意图。
图2示出根据本公开实施例的处理器操作方法的流程图。
图3a和图3b示出根据本公开实施例的处理器操作方法的应用场景的示意图。
图4a和图4b示出根据本公开实施例的处理器操作方法的应用场景的示意图。
图5a和图5b示出根据本公开实施例的处理器操作方法的应用场景的示意图。
图6示出根据本公开实施例的处理器操作方法的循环缓冲存储区域的示意图。
图7示出根据本公开实施例的处理器操作方法的整体存储区域的示意图。
图8示出根据本公开实施例的处理器操作装置的框图。
图9示出根据本公开实施例的板卡的结构框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
请参阅图1,图1示出根据本公开实施例的处理器操作方法的应用场景的示意图。其中,处理器100可以是通用处理器(例如中央处理器CPU、图形处理器GPU),也可以是专用处理器(例如人工智能处理器、科学计算处理器或数字信号处理器等),本公开对处理器的类型不作限制。存储设备200包括至少一个目标存储区域210,其中,目标存储区域210可以是描述符所指示的张量数据的存储区域。可以理解,处理器可以通过执行读操作或者执行写操作来实现对某个目标存储区域210的访问,处理器执行针对某个目标存储区域210的读操作,可以是指处理器通过描述符获取该目标存储区域210中的张量数据。而处理器执行针对某个目标存储区域210的写操作,可以是指处理器将描述符所指示的张量数据写入该目标存储区域210中。在相关技术中,由于处理器可以并行执行多个操作,为了避免冲突,当处理器并行执行的多个操作都是针对某个目标存储区域210的操作时,处理器将只执行该多个操作中的一个,同时阻塞其他操作,从而会导致处理器的效率降低。本公开提供的处理器操作方法将目标存储区域210进一步划分为多个细粒度区域211,当处理器并行执行的多个操作都是针对某个目标存储区域210的操作时,处理器可以判断该多个操作针对的细粒度区域211是否重叠,如果各个操作针对的细粒度区域211不重叠,就可并行执行该多个操作,因此,大大提高了处理器的效率。需要说明的是,存储设备200可以设置在处理器内部(例如片上缓存或寄存器等),也可以设置在处理器的外部且可以与处理器进行数据通信(例如片下存储器等)。本公开对存储设备的类型不做限定。本公开所涉及的操作,可以是处理器硬件支持的基本操作,也可以是将该基本操作进行解析后的微指令(例如请求信号等)。本公开对操作的具体类型不做限定。本公开处理器可以并行执行两个操作,也可以并行执行两个以上的操作,本公开对并行执行的操作的数量不做限定。
图2示出根据本公开实施例的处理器操作方法的流程图。所述处理器操作方法可应用于处理器。如图2所示,该处理器操作方法包括:
步骤S11,在第一操作为针对描述符的操作时,获取所述描述符所指示的张量数据的目标存储区域。
第一操作可以是针对描述符的读操作或者写操作。本公开对第一操作的具体类型不作限制。描述符可用于指示张量的形状。其中,张量可以包含多种形式的数据组成方式,张量可以是不同维度的,比如标量可以看作是0维张量,向量可以看作1维张量,而矩阵可以是2维或2维以上的张量。张量的形状包括张量的维度、张量各个维度的尺寸等信息。举例而言,对于张量:
该张量的形状可以被描述符描述为(2,4),也即通过两个参数表示该张量为二维张量,且该张量的第一维度(列)的尺寸为2、第二维度(行)的尺寸为4。需要说明的是,本公开对于描述符指示张量形状的方式并不做限定。
在一种可能的实现方式中,第一操作的操作数可以是一个或多个描述符。目标存储区域可以是第一操作的操作数中一个或多个描述符所指示的张量数据的存储区域,也可以是第一操作的操作数中任意一个描述符所指示的张量数据的存储空间。目标存储区域所在的整体存储区域可以是处理器的内部存储器(例如片上缓存或寄存器等),也可以是连接到处理器的外部存储器(例如片下存储器等)。
在一种可能的实现方式中,目标存储区域可包括至少一个细粒度区域。其中,细粒度区域的尺寸和/或数量的确定方式,可以包括根据硬件设计确定的方式、根据描述符所指示的张量数据的相关操作确定的方式、根据操作中相关参数进行定义的方式中的其中一种或任意组合。其中,根据硬件设计确定的方式,即在硬件设计时确定细粒度区域的尺寸,譬如确定目标存储区域的一行或多行为一个细粒度区域。根据描述符所指示的张量数据的相关操作确定的方式,包括根据描述符所指示的张量数据的处理需求、存储方式、或传输方式等进行确定的方式,例如描述符所指示的张量数据为一个二维矩阵数据,其规模为M*Q(M,Q均为正整数),表示存储所占字节数,即一行M字节,共有Q行,可以确定M字节为一个细粒度区域,该描述符所指示的张量数据所对应的目标存储区域包括Q个细粒度区域。根据操作中相关参数进行定义的方式,包括根据操作中携带的细粒度的尺寸和/或数量,将目标存储区域划分为多个细粒度区域。需要说明的是,多个细粒度区域的尺寸可以相同,也可以不同。例如,各细粒度区域的数据位数可以分别为64位、256位、512位等。可以根据需求确定各细粒度区域的尺寸和/或数量。本公开对此不做限定。
在一种可能的实现方式中,在第一操作为针对描述符的操作时,可通过第一操作所针对的描述符,来获取该描述符所指示的张量数据的目标存储区域,从而确定第一操作所针对的目标存储区域。
步骤S12,判断是否存在正在进行的针对所述目标存储区域的第二操作。
其中,第二操作可以是读操作或写操作,本公开对第二操作的具体类型不作限制。第二操作可包括一个或多个操作数,第二操作的操作数可以是描述符、立即数、张量数据等各种数据,本公开对第二操作的操作数的具体数量和类型不作限制。
在一种可能的实现方式中,可通过根据该目标存储区域的占用状态来判断是否存在正在进行的针对目标存储区域的第二操作。例如,处理器可以通过查询占用状态列表来判断目标存储区域是否被占用,如被占用,则判断结果为存在正在进行的针对目标存储区域的第二操作。其中,该占用状态列表可以是预先设置并存储在存储器上,也可以是在处理器开始执行某个任务之前生成,并在该任务完成之后注销。当各存储区域的占用状态发生变化时,处理器更新该占用状态列表的内容以记录各存储区域的占用状态。
在一种可能的实现方式中,可以通过查询各操作的执行状态来判断是否存在正在进行的针对目标存储区域的第二操作。例如,可以记录各操作的操作数所对应的存储区域,并记录各操作的执行状态。若针对目标存储区域的操作的执行状态为未完成,则判断结果为存在正在进行的针对目标操作区域的第二操作。还可以通过判断操作数的占用状态,来确定操作数对应的目标存储区域是否被占用,从而确定是否存在正在进行的针对目标存储区域的第二操作。本公开对判断是否存在正在进行的针对目标存储区域的第二操作的判断依据不做限定。
在一种可能的实现方式中,第二操作可以是针对描述符的操作,第二操作所针对的描述符可以与第一操作所针对的描述符一致,则第二操作所针对的描述符的存储区域与目标存储区域一致,当第二操作未完成时,存在针对目标存储区域的第二操作;或第二操作所针对的描述符的存储区域与目标存储区域有重叠区域,当第二操作针对重叠区域进行操作时,则存在针对目标存储区域的第二操作。
在一种可能的实现方式中,在第一操作针对目标存储区域执行操作前,可判断是否存在正在进行的针对目标存储区域的第二操作。
在一种可能的实现方式中,在第一操作针对目标存储区域的执行过程中,也可以判断是否存在正在进行的针对目标存储区域的第二操作。
步骤S13,在存在所述第二操作时,判断所述第一操作当前所针对的所述目标存储区域中的第一细粒度区域与所述第二操作当前所针对的所述目标存储区域中的第二细粒度区域之间是否有重叠。
第一细粒度区域和第二细粒度区域可以为目标存储区域中多个细粒度区域中的任意细粒度区域。可以是将目标存储区域所在的整体存储区域进行细粒度的划分,则针对整体存储区域的各操作所针对的细粒度区域的尺寸一致。
也可以是各操作将操作数所针对的存储区域按照各操作中携带的细粒度划分信息进行细粒度划分,则针对相同存储区域,不同的操作可以进行不同粒度的细粒度划分。第一细粒度区域可以是第一操作将目标存储区域划分为多个细粒度区域中的任意细粒度区域,第二细粒度区域可以是第二操作将其操作数所在的存储区域进行细粒度划分后得到的任意细粒度区域。第一细粒度区域与第二细粒度区域的尺寸可以不同。
例如,第一操作可以携带第一细粒度的尺寸(各细粒度区域的数据位数),并可以将该第一细粒度的尺寸设置为64位,而第二操作可以携带第二细粒度尺寸(例如各细粒度区域的数据位数),并可以将该第二细粒度的尺寸设置为256位。即在执行第一操作时,将每64位作为一个细粒度区域,而在执行第二操作时,每256位作为一个细粒度区域。又如,第一操作和第二操作所携带的细粒度尺寸(例如各细粒度区域的数据位数)均为512位。同样的,第一操作也可以携带第一细粒度的数量(例如设置为4个),而第二操作携带第二细粒度的数量(例如设置为8个)。即在执行第一操作时,将目标存储区域划分为4个细粒度区域,而在执行第二操作时,将目标存储区域划分为8个细粒度区域。可以理解,操作中还可以同时携带细粒度的尺寸、数量这两个参数。可以根据需求确定各细粒度区域的尺寸和/或数量,本公开对此不做限定。
可以理解的是,针对目标存储区域的操作,即为针对目标存储区域中各细粒度区域的操作。例如,目标存储区域A为第1行至第10行,每1行为一个细粒度区域,目标存储区域A包括10个细粒度区域。针对目标存储区域A的写操作可以看做针对此10个细粒度区域的写操作。其执行过程可以为,写第1个细粒度区域(第1行),第1个细粒度区域写完后写第2个细粒度区域(第2行),第2个细粒度区域写完后写第3个细粒度区域(第3行),以此类推,直至写完第10个细粒度区域(第10行),完成目标存储区域A的写操作。
当有针对目标存储区域的操作时,随着操作的执行,目标存储区域中的细粒度区域的状态,可以包括已被操作完成状态、正在进行操作状态和未被操作状态。操作当前所针对的细粒度区域的状态为正在进行操作状态。由此,当存在针对目标存储区域的操作时,可以认为是存在针对目标存储区域中的一个细粒度区域的操作,正在被操作的细粒度区域,即为操作当前所针对的细粒度区域。
在一种可能的实现方式中,第一操作当前所针对的目标存储区域中的第一细粒度区域,可以包括将要执行的第一操作所针对的目标存储区域中的细粒度区域,通常为第一个细粒度区域。也可以包括正在执行的第一操作当前所针对的目标存储区域中的细粒度区域,可以为任意一个细粒度区域。第二操作当前所针对的目标存储区域中的第二细粒度区域,可以为正在执行的第二操作当前所针对的目标存储区域中的细粒度区域,可以为任意一个细粒度区域。
在一种可能的实现方式中,可根据物理地址、指针位置、细粒度区域标识等,来判断第一操作当前所针对的目标存储区域中的第一细粒度区域与第二操作当前所针对的目标存储区域中的第二细粒度区域之间是否重叠。例如,可记录各操作当前的物理地址,根据第一操作当前的物理地址以及第二操作当前的物理地址,以及物理地址与细粒度区域之间的对应关系,分别确定第一操作当前所针对的目标存储区域中的第一细粒度区域以及第二操作当前所针对的目标存储区域中的第二细粒度区域,进而判断第一细粒度区域与第二细粒度区域是否重叠。物理地址可以包括细粒度区域的起始地址、终止地址、设定位置的地址或实时操作地址中的一种或任意组合。再例如,可为各操作设置指针,指针指向操作当前所针对的细粒度区域。根据第一操作的指针位置和第二操作的指针位置,分别确定第一操作当前所针对的目标存储区域中的第一细粒度区域以及第二操作当前所针对的目标存储区域中的第二细粒度区域,进而判断第一细粒度区域与第二细粒度区域是否重叠。再例如,还可以为各细粒度区域设置标识,通过记录操作当前所针对的细粒度区域的标识来判断第一细粒度区域与第二细粒度区域是否重叠。标识可以包括字母、数字或符号的任意组合。还可以通过其他方式判断第一细粒度区域与第二细粒度区域是否重叠,本公开对第一细粒度区域与第二细粒度区域之间是否重叠的判断依据不作限制。
步骤S14,在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
在一种可能的实现方式中,如果第一操作当前所针对的目标存储区域中的第一细粒度区域与第二操作当前所针对的目标存储区域中的第二细粒度区域不重叠,可以是第一细粒度区域是第二操作已经操作完成的细粒度区域,也可以是第二操作不需要进行操作的细粒度区域,此时执行第一操作不会对第二操作的操作过程及操作结果产生影响,可以执行第一操作。
根据本实施例,能够在第一操作为针对描述符的操作时,获取描述符所指示的张量数据的目标存储区域,并在存在正在进行的针对目标存储区域的第二操作时,判断第一操作当前所针对的目标存储区域中的第一细粒度区域与第二操作当前针对的目标存储区域中的第二细粒度区域之间是否有重叠,在两者无重叠时,执行第一操作。这样,第一操作和第二操作当前操作的细粒度区域无重叠即可执行,使得第一操作和第二操作可以同时对目标存储区域进行操作,提高了处理器的处理效率。
在一种可能的实现方式中,所述方法还可包括:在所述第一细粒度区域与所述第二细粒度区域有重叠时,阻塞所述第一操作。
在一种可能的实现方式中,第一细粒度区域与第二细粒度区域有重叠,包括第一细粒度区域与第二细粒度区域完全重叠或部分重叠。第一细粒度区域与第二细粒度区域有重叠时,若执行第一操作,则第一操作针对重叠部分区域的操作,可以影响第二操作的执行导致第二操作的操作结果不准确,也可以影响第一操作的执行导致第一操作的操作结果不准确。此时,可阻塞第一操作,即暂停第一操作的执行,可以在第二操作对当前所针对的目标存储区域中的第二细粒度区域操作完成后,执行第一操作。即第一细粒度区域与第二细粒度区域不重叠时,执行第一操作。
在本实施例中,在第一细粒度区域与第二细粒度区域有重叠时,阻塞第一操作,能够避免由于各操作的细粒度区域的重叠而导致的操作错误、操作结果不准确,保证各操作的正确性。
图3a和图3b示出根据本公开实施例的处理器操作方法的应用场景的示意图。如图3a和图3b所示,整体存储区域20中包括目标存储区域21,其中,目标存储区域21被划分为4个细粒度区域,依次为细粒度区域22、细粒度区域23、细粒度区域24和细粒度区域25。
如图3a所示,当前仅包括写操作,用写指针wp表示写操作当前所针对的目标存储区域21中的细粒度区域。在写操作刚开始时,写指针wp指向细粒度区域22,可首先判断是否存在正在进行的针对目标存储区域21的第二操作,如果判断结果为不存在第二操作,则开始对细粒度区域22进行写操作;当完成对细粒度区域22的写操作后,写指针wp增加,即wp++,并指向下一个细粒度区域23,进行同样的判断后,开始对细粒度区域23进行写操作;当完成对细粒度区域23的写操作后,写指针wp增加,指向下一个细粒度区域24,进行同样的判断后,开始对细粒度区域24进行写操作。
又如图3b所示,当前包括两个操作,读操作和写操作,其中读操作为第一操作,写操作为第二操作。并且使用写操作的写指针wp和读操作的读指针rp分别表示写操作和读操作当前所针对的细粒度区域。
在执行读操作(第一操作)时,判断是否存在正在进行的针对目标存储区域21的第二操作。经判断,当前存在正在进行的针对目标存储区域21的第二操作写操作,进一步判断读操作(第一操作)当前所针对的目标存储区域21中的第一细粒度区域(图3b中的细粒度区域22)与写操作(第二操作)当前所针对的目标存储区域21中的第二细粒度区域(图3b中的细粒度区域24)之间是否重叠,例如可根据细粒度区域的编号(22和24),或根据rp与wp之间的关系(rp=0,wp=2,rp<wp),确定出第一细粒度区域与第二细粒度区域之间不重叠,然后,可执行读操作(第一操作)。
当完成对细粒度区域22的读操作后,rp增加,即rp++,并指向下一个细粒度区域23,进行同样的判断后,第一操作开始对细粒度区域23进行操作;当完成对细粒度区域23的读操作后,rp增加并指向下一个细粒度区域24。在该情况下,继续判断第一细粒度区域与第二细粒度区域之间是否重叠,如果细粒度区域编号相同或指针rp=wp,即可判断第一操作当前所针对的目标存储区域21中的第一细粒度区域与第二操作当前所针对的目标存储区域21中的第二细粒度区域重叠,则第一操作不可执行,阻塞第一操作。当第二操作完成对细粒度区域24的操作后,wp增加,并指向下一个细粒度区域25时,细粒度区域的编号不同(24和25)或者指针rp<wp,可执行第一操作。
在一种可能的实现方式中,所述第一操作和所述第二操作中可至少一个操作为写操作。即,当对操作数的操作为写后读(第二操作为写操作,第一操作为读操作)、读后写(第二操作为读操作,第一操作为写操作)或者写后写(第二操作和第一操作均为写操作)时,可采用本公开实施例中的方法。
例如,如果第一操作为针对描述符的读操作,第二操作为写操作,第一操作需要读取的描述符所指示的张量数据需要是第二操作写操作后的数据,第二操作所针对的目标存储区域中的第二细粒度区域的编号为8,则第一操作仅能够读取编号在8之前的细粒度区域的数据。也就是说,如果第一操作当前所针对的目标存储区域中的第一细粒度区域为编号1~7的细粒度区域中的任意一个,则可以执行第一操作。
在一种可能的实现方式中,如果第一操作和第二操作均为读操作,则第一操作和第二操作的细粒度区域之间的关系不会影响操作结果,可以采用本公开实施例中的方法,也可直接执行第一操作而不进行细粒度区域的判断。
在本实施例中,当第一操作和第二操作中的至少一个操作为写操作时,通过使用本公开实施例中的方法,通过将描述符所指示的张量数据的目标存储区域划分为一个或多个细粒度区域,并以细粒度区域为单位执行操作,可以使得读后写、写后读、写后写等操作既能够正确的执行,得到准确的执行结果,又可以减少操作之间的等待时间,提高处理器的执行效率。
在一种可能的实现方式中,所述细粒度区域的尺寸和/或数量可以是根据设定长度的数据所在区域、设定维数的数据所在区域中的至少一种确定的。
可以理解,确定所述细粒度区域的尺寸和/或数量可以是在操作生成前预先设定好的,也可以是每条操作生成时实时确定的。其中,在操作前预先设定好细粒度区域的尺寸和/或数量,可以包括根据预先设定好的预设长度的数据所在区域、预先设定好的预设维度的数据所在区域中的至少一种,确定细粒度区域的尺寸和/或数量。而预先设定好的设定长度的数据和预先设定好的预设维度的数据可以与各操作的操作数无关,也可以预先根据各操作的操作数综合确定,可以根据需求确定。而在每条操作生成时实时确定细粒度区域的尺寸和/或数量,可以包括根据各操作的操作数,确定设定长度的数据或设定维度的数据,即,可以根据各操作的操作数的不同,实时确定设定长度的数据所在区域、设定维数的数据所在区域中的至少一种,确定细粒度区域的尺寸和/或数量。
举例来说,可根据设定长度的数据所在区域的大小,确定细粒度区域的尺寸和/或数量。例如,可根据描述符所指示的张量数据中设定长度的数据所在目标存储区域的尺寸,来设定细粒度区域的尺寸,该区域可以为固定的位宽。例如,描述符所指示的张量数据B是20*10*5的三维数据,其在目标存储区域的存储方式为40*25(即每行40位数据,共25行),则可将设定长度设定为40位,将目标存储区域的每1行设为一个细粒度区域,描述符所指示的张量数据B的目标存储区域可划分为25个细粒度区域;也可将目标存储区域的每5行设为一个细粒度区域,描述符所指示的张量数据B的目标存储区域可划分为5个细粒度区域。本公开对此不作限制。
可以理解的是,根据设定长度的数据所在区域、设定维数的数据所在区域中的至少一种,可以在目标存储区域中确定细粒度区域的尺寸和/或数量,也可以在目标存储区域所在的整体存储区域中确定细粒度区域的尺寸和/或数量,以及在整体存储区域中的其他区域确定细粒度区域的尺寸和/或数量。上述示例仅给出其中一种情况,本公开不限定根据设定长度的数据所在区域、设定维数的数据所在区域中的至少一种,确定细粒度区域的尺寸和/或数量的适用划分范围。
在一种可能的实现方式中,还可根据设定维数的数据所在区域的大小,确定细粒度区域的尺寸和/或数量。例如,描述符所指示的张量数据C是20*10的二维数据,可根据设定维数为1维、长度为20的数据,将描述符所指示的张量数据C的目标存储区域划分为10个细粒度区域。
此外,还可同时根据描述符所指示的张量数据的目标存储区域中的设定长度的数据所在区域的大小和设定维度的数据所在区域的大小,确定细粒度区域的尺寸和/或数量。例如,针对描述符所指示的张量数据C,可根据设定维数为2维、尺寸为4*2的数据来划分细粒度区域,从而将描述符所指示的张量数据C的目标存储区域划分为25个细粒度区域。
应当理解,本领域技术人员可根据实际情况设定划分细粒度区域的尺寸和/或数量,本公开对此不作限制。
在本实施例中,通过根据设定长度的数据所在区域的大小和/或设定维度的数据所在区域的大小,来确定所述细粒度区域的尺寸和/或数量,可针对数据特性来完成对细粒度区域的划分,能够提高细粒度区域划分的灵活性,从而提高多操作的执行的效率,也可以使得细粒度区域的划分结果能够更加符合不同操作数的特性,从而适应不同类型操作数的处理需求,进一步提高多操作的整体执行效率。
在一种可能的实现方式中,所述细粒度区域的尺寸和/或数量可以是根据硬件计算能力、硬件带宽中的至少一种确定的。
其中,硬件计算能力可以是硬件在一个计算周期内并行处理的数据量,硬件带宽可以是数据传输能力,例如单位时间内传输的数据量。
举例来说,应用该处理器操作方法的处理器,其硬件计算能力为一个计算周期内并行处理100位数据,硬件带宽为单位时间内传输200位数据,对于大小为1000位的目标存储区域,可根据硬件计算能力将该目标存储区域划分为10个细粒度区域,其中,每个细粒度区域包括100位数据;也可根据硬件带宽将该目标存储区域划分为5个细粒度区域,其中,每个细粒度区域包括200位数据。
应该理解,硬件计算能力、硬件带宽可根据处理器硬件的不同而不同,本公开对硬件计算能力、硬件带宽不作限制。
可以理解的是,根据硬件计算能力、硬件带宽中的至少一种,可以在目标存储区域中确定细粒度区域的尺寸和/或数量,也可以在目标存储区域所在的整体存储区域中确定细粒度区域的尺寸和/或数量,以及在整体存储区域中的其他区域确定细粒度区域的尺寸和/或数量。上述示例仅给出其中一种情况,本公开不限定根据硬件计算能力、硬件带宽中的至少一种,确定细粒度区域的尺寸和/或数量的适用划分范围。
通过这种方式,可根据处理器的处理能力(硬件计算能力和/或硬件带宽)来确定所述细粒度区域的尺寸和/或数量,使得细粒度区域的划分结果更加符合不同硬件使用环境的需求,使得根据细粒度区域执行的操作与处理器的处理能力趋于同步,能够尽可能地发挥硬件的执行效率,从而提高处理器的处理效率。
在一种可能的实现方式中,所述第一操作可以为第一处理指令中的操作,所述第二操作可以为第二处理指令中的操作,所述第二处理指令为指令队列中在所述第一处理指令之前的处理指令。
其中,第一处理指令和第二处理指令可包括数据存取指令、运算指令、同步指令和通信指令等一种或多种,譬如该指令为读且运算指令。本公开对第一处理指令和第二处理指令的具体类型不作限制。
在一种可能的实现方式中,第一指令可以与第二指令有依赖关系,例如,第一指令需要使用第二指令的计算结果等依赖关系。第一指令也可以与第二指令没有依赖关系。当第一指令与第二指令有依赖关系时,通过本公开实施例中的方法,第一指令与第二指令可以并行执行。
在本实施例中,第一操作和第二操作可以是不同指令中的操作,利用本公开实施例中的方法,可以提高指令执行效率。
在一种可能的实现方式中,第一操作和第二操作也可以为同一处理指令中的两个操作,第二操作可以与第一操作无关,或者第二操作可以基于第一操作的结果。其中,该处理指令可以包括数据存取指令、运算指令、同步指令和通信指令等一种或多种,譬如该指令为“读和加”运算指令,则第一操作为读操作,第二操作为加法运算操作。本公开对该处理指令的具体类型不作限制。
在一种可能的实现方式中,所述方法还可包括:记录所述第一操作当前操作的第一细粒度区域的第一位置信息和所述第二操作当前操作的第二细粒度区域的第二位置信息,
步骤S14可包括:当所述第一位置信息与所述第二位置信息不一致时,执行所述第一操作。
在一种可能的实现方式中,位置信息可包括细粒度区域的标识信息。标识信息可以包括数字、字母符号的任意组合。本公开对此不做限定。
例如,位置信息可使用细粒度区域的编号信息来表示,可将目标存储区域划分为6个细粒度区域,其编号依次为0-5。在执行针对目标存储区域的第一操作和第二操作时,可分别记录第一操作当前操作的第一细粒度区域的第一位置信息(例如编号为2)和第二操作当前操作的第二细粒度区域的第二位置信息(例如编号为5);然后根据编号信息之间的关系(2<5),可知,第一位置信息与第二位置信息不一致;此时,可执行第一操作。
在一种可能的实现方式中,位置信息可包括细粒度区域的地址信息。地址信息可以包括细粒度区域的起始地址信息、终止地址信息、细粒度区域中预设位置的地址信息、地址偏移量信息中的至少一个。例如,细粒度区域的位置信息为ADDR1515-ADDR1531。
通过这种方式,可使用位置信息直接高效地判断第一细粒度区域与第二细粒度区域是否重叠,确定是否执行第一操作,可提高处理器的执行效率。
在一种可能的实现方式中,所述第一位置信息可包括第一操作已操作完成的细粒度区域的第一数量,所述第二位置信息可包括第二操作已操作完成的细粒度区域的第二数量,
当所述第一位置信息与所述第二位置信息不一致时,执行所述第一操作,可包括:当所述第一操作为所述第二操作之后的操作,且所述第一数量小于所述第二数量时,执行所述第一操作。
举例来说,第一操作为第二操作之后的操作,其目标存储区域被划分为6个细粒度区域,其位置信息可使用已操作完成的细粒度区域的数量来表示。在执行针对目标存储区域的第一操作和第二操作时,可分别记录第一操作已操作完成的细粒度区域的第一数量(例如第一数量为3)和第二操作已操作完成的细粒度区域的第二数量(例如第二数量为5);然后根据第一操作与第二操作的执行顺序,以及第一数量与第二数量的关系,可知,第一操作为第二操作之后的操作,且第一数量3小于第二数量5,此时,可执行第一操作。
通过这种方式,可根据已操作完成的细粒度区域的数量来直观地判断第一细粒度区域与第二细粒度区域是否重叠,进而确定是否执行第一操作,可简化判断过程,提高处理器的执行效率。
在一种可能的实现方式中,所述目标存储区域可包括可操作区域和非可操作区域,步骤S13可包括:在存在所述第二操作,且所述第一操作当前所针对的所述目标存储区域中的第一细粒度区域位于所述可操作区域内时,判断所述第一操作当前所针对的所述目标存储区域中的第一细粒度区域与所述第二操作当前所针对的所述目标存储区域中的第二细粒度区域之间是否有重叠。
在一种可能的实现方式中,目标存储区域中可包括一个或多个非可操作区域、也可包括连续或不连续的非可操作区域。
在一种可能的实现方式中,目标存储区域中可包括一个或多个可操作区域、也可包括连续或不连续的可操作区域。本公开对此不做限定。
在一种可能的实现方式中,在第一操作为针对描述符的操作时,可首先获取描述符所指示的张量数据的目标存储区域,然后判断是否存在正在进行的针对目标存储区域的第二操作;当存在第二操作时,判断第一操作所针对的目标存储区域中的第一细粒度区域是否位于可操作区域内;当存在第二操作,且第一操作所针对的目标存储区域中的第一细粒度区域位于可操作区域内时,然后再判断第一操作所针对的目标存储区域中的第一细粒度区域与第二操作所针对的目标存储区域中的第二细粒度区域之间是否有重叠;当第一细粒度区域与第二细粒度区域之间没有重叠时,执行第一操作。
在一种可能的实现方式中,所述非可操作区域可以包括禁止操作区域和非禁止操作区域。如果第一操作为针对描述符的写操作,当描述符所指示的张量数据中的部分数据不可修改时,可将该部分数据所在的存储区域设定为禁止操作区域,以避免误修改该部分数据;如果正在进行的第二操作为读取第一操作之前的数据的读操作(读后写),则可将第二操作所在的一个或多个细粒度区域设定为非禁止操作区域,当第二操作完成对非禁止操作区域的读取后,可将该非禁止操作区域变更为可操作区域。本公开对非可操作区域的分类及划分方式不作限制。
在本实施例中,可先判断第一操作的细粒度区域是否可操作,再判断不同操作的细粒度区域之间的关系,一方面提高了判断的效率,另一方面可以对指定数据进行保护以防止有误操作发生,也可以对指定的空间禁止读写,从而预留出该空间,用于执行其他操作,进一步提高了处理器在执行细粒度同步时的灵活性。
在一种可能的实现方式中,所述非可操作区域可以为包括所述第二细粒度区域在内的多个细粒度区域,且所述第二细粒度区域在所述非可操作区域内的位置随所述第二操作的操作位置更新,所述方法还可包括:当所述第二操作所针对的所述目标存储区域中的第二细粒度区域移出所述非可操作区域后,更新所述非可操作区域的位置。
也就是说,包括第二细粒度区域在内的多个细粒度区域的非可操作区域,可以不随第二操作所针对的目标存储区域中的第二细粒度区域的更新而更新,当第二操作所针对的目标存储区域中的第二细粒度区域移出非可操作区域后,更新非可操作区域的位置。例如,非可操作区域可以为包括所述第二细粒度区域在内的R个细粒度区域(R为大于1的整数),当前的非可操作区域包括第2至第2+R-1个细粒度区域。当第二操作在非可操作区域内执行完R个细粒度区域后,移出非可操作区域,则非可操作区域的位置随着第二操作所针对的细粒度区域的位置进行更新,更新后的非可操作区域包括第2+R个至2+R+R-1个细粒度区域。其中,R的大小可以根据需求任意确定。
图4a和图4b示出根据本公开实施例的处理器操作方法的应用场景的示意图。如图4a所示,目标存储区域30包括8个细粒度区域,其中,可操作区域包括5个细粒度区域(细粒度区域31、细粒度区域35、细粒度区域36、细粒度区域37和细粒度区域38),非可操作区域M0包括3个细粒度区域(细粒度区域32、细粒度区域33和细粒度区域34)。其中,第二操作当前所针对的目标存储区域30中的第二细粒度区域为细粒度区域32。
当第二操作执行完对细粒度区域32的操作后,第二操作当前所针对的目标存储区域30中的第二细粒度区域为细粒度区域33,此时,第二操作当前所针对的目标存储区域30中的第二细粒度区域(细粒度区域33)未移出非可操作区域,不更新非可操作区域的位置;当第二操作执行完对细粒度区域33的操作后,第二操作当前所针对的目标存储区域30中的第二细粒度区域为细粒度区域34,此时,第二操作当前所针对的目标存储区域30中的第二细粒度区域(细粒度区域34)还未移出非可操作区域,不更新非可操作区域的位置;当第二操作执行完对细粒度区域34的操作后,第二操作当前所针对的目标存储区域30中的第二细粒度区域为细粒度区域35,此时,第二操作当前所针对的目标存储区域30中的第二细粒度区域(细粒度区域35)已移出非可操作区域,更新非可操作区域的位置到细粒度区域35、36和37)。需要说明的是,本公开对非可操作区域的大小不做限定。
如图4b所示,更新非可操作区域的位置后,在目标存储区域30中,可操作区域包括5个细粒度区域(细粒度区域31、细粒度区域32、细粒度区域33、细粒度区域34和细粒度区域38),非可操作区域M0包括3个细粒度区域(细粒度区域35、细粒度区域36和细粒度区域37)。
通过这种方式,不需要实时更新非可操作区域的位置,能够降低更新非可操作区域所产生的开销。
在一种可能的实现方式中,所述非可操作区域可以为包括所述第二细粒度区域在内的多个细粒度区域,且所述第二细粒度区域位于所述非可操作区域内的设定位置,所述非可操作区域的位置随所述第二操作的操作位置更新。
也就是说,当非可操作区域为包括所述第二细粒度区域在内的多个细粒度区域时,可以设定第二细粒度区域在非可操作区域中的位置(例如中间位置、最后位置等),非可操作区域的位置随第二操作的操作位置而更新。例如,非可操作区域可以为包括所述第二细粒度区域在内的R个细粒度区域,当前的非可操作区域包括第2至第2+R-1个细粒度区域,第二细粒度区域在非可操作区域内的设定位置为第S个(其中S≤R)。当第二操作执行完成对当前所针对的细粒度区域的操作后,第二操作开始执行针对下一个细粒度区域的操作,此时,非可操作区域的位置随第二操作的操作位置而更新,更新后的非可操作区域包括第2+1至第2+R个细粒度区域。其中,R的大小及S的取值可根据需求确定。本公开对非可操作区域包括的细粒度区域的数量、第二细粒度区域位于非可操作区域内的位置均不作限制。
图5a和图5b示出根据本公开实施例的处理器操作方法的应用场景的示意图。如图5a所示,目标存储区域40中包括8个细粒度区域,其中,可操作区域包括5个细粒度区域(细粒度区域41、细粒度区域45、细粒度区域46、细粒度区域47和细粒度区域48),非可操作区域M1包括3个细粒度区域(细粒度区域42、细粒度区域43和细粒度区域44)。其中,第二操作当前所针对的目标存储区域40中的第二细粒度区域设定为位于非可操作区域M1的第二个细粒度区域,即细粒度区域43。
当第二操作执行完对细粒度区域43的操作后,第二操作当前所针对的目标存储区域40中的第二细粒度区域为细粒度区域44,此时,非可操作区域的位置随第二操作的操作位置而更新,以使第二操作当前所针对的目标存储区域40中的第二细粒度区域位于非可操作区域M1的第二个细粒度区域。
如图5b所示,更新非可操作区域的位置后,在目标存储区域40中,可操作区域包括5个细粒度区域(细粒度区域41、细粒度区域42、细粒度区域46、细粒度区域47和细粒度区域48),非可操作区域M1包括3个细粒度区域(细粒度区域43、细粒度区域44和细粒度区域45)。
通过这种方式,能够实时更新非可操作区域的位置,提高细粒度处理的同步程度,从而进一步提高数据同步处理的效率。
在一种可能的实现方式中,所述目标存储区域可包括:循环缓冲存储区域。所述循环缓冲存储区域可用于循环存储数据。
图6示出根据本公开实施例的处理器操作方法的循环缓冲存储区域的示意图。如图6所示,目标存储区域50中包括循环缓冲存储区域51,其地址为start_addr~end_addr。
例如,第二操作为写操作,可将操作数写入循环缓冲存储区域51,其地址指针point从start_addr开始,依次向下存储数据,直到end_addr,即占满循环缓冲存储区域51的存储空间,此时,地址指针point跳回到start_addr,判断该地址是否被所需同步的第一操作使用完毕,如果使用完毕,则将数据存储到该地址,覆盖原有数据,之后地址指针point依次向下移动,直到end_addr,此时,可重新覆盖数据,循环上述过程。
在本实施例中,采用循环缓冲存储区域来存储数据,既可节省数据存储空间,也可提高存储空间利用率。
在一种可能的实现方式中,可将循环缓冲存储区域划分为多个细粒度区域。对于每个细粒度区域,可通过列表或标志位或其他方式来对细粒度区域中的数据是否可覆盖进行管理,例如,可设置覆盖标志位来表示细粒度区域中的数据是否可覆盖。
举例来说,第一操作为读操作,第二操作为写操作,即先写后读,可使用写指针wp和读指针rp分别表示第二操作和第一操作当前所针对的细粒度区域。在第二操作当前所针对的第二细粒度区域的覆盖标志位为可覆盖时,可执行第二操作,写入数据,数据写入完成后,将该第二细粒度区域的覆盖标志位设为不可覆盖,wp++,第二操作当前所针对的第二细粒度区域为下一个细粒度区域,如果wp>end_addr,则wp=start_addr;在第一操作当前所针对的第一细粒度区域与第二细粒度区域之间不重叠,且第一细粒度区域的覆盖标志位为不可覆盖时,可执行第一操作,读取数据,数据读取完成后,将该第一细粒度区域的覆盖标志位设为可覆盖,rp++,第一操作当前所针对的第一细粒度区域为下一个细粒度区域,如果rp>end_addr,则rp=start_addr;在第一细粒度区域与第二细粒度区域有重叠,即rp=wp时,则不可执行第一操作,需等待第二操作完成对当前所针对的第二细粒度区域的操作后,可执行第一操作。
在本实施例中,将循环缓冲存取区域划分为多个细粒度区域,使得多个操作可同时对循环缓冲存储区域进行操作,从而提高处理器的处理效率。
在一种可能的实现方式中,所述细粒度区域可包括状态标识,所述状态标识可包括操作所述细粒度区域的操作已完成状态或操作未完成状态,
步骤S14可包括:在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,判断所述第一细粒度区域的状态标识是否为操作已完成状态;若是,则执行所述第一操作。
在一种可能的实现方式中,细粒度区域可包括状态标识,状态标识可包括操作细粒度区域的操作已完成状态或操作未完成状态。例如,状态标识可使用0和1来表示,其中,0表示操作细粒度区域的操作未完成状态,1表示操作细粒度区域的操作已完成状态,或者0表示操作细粒度区域的操作已完成状态,1表示操作细粒度区域的操作未完成状态。本公开对状态标识的表示方式不作限制。
在一种可能的实现方式中,第二操作可将目标存储区域中已操作完成的细粒度区域的状态标识设置为操作已完成状态,未操作或正在操作的细粒度区域的状态标识设置为操作未完成状态。也可将已操作完成的细粒度区域中的部分细粒度区域的状态标识设置为操作已完成状态,其他细粒度区域设置为操作未完成状态。例如,第二操作已操作完成5个细粒度区域,可将前3个细粒度区域的状态标识设置为操作已完成状态,其他细粒度区域设置为操作未完成状态。
在一种可能的实现方式中,在存在正在进行的针对目标存储区域的第二操作时,对于第一操作当前所针对的第一细粒度区域与第二操作当前所针对的第二细粒度区域,可在确定第一细粒度区域与第二细粒度区域之间不重叠后,判断第一细粒度区域的状态标识是否为操作已完成状态;如果第一细粒度区域的状态标识为操作已完成状态,可执行第一操作。
在本实施例中,细粒度区域包括状态标识,在第一细粒度区域与第二细粒度区域之间不重叠时,根据第一细粒度区域的状态标识,确定第一操作是否可执行,可在提高处理器的处理效率的同时,提高数据处理的正确性。
在一种可能的实现方式中,所述细粒度区域可包括状态标识,所述状态标识可包括操作所述细粒度区域的操作已完成状态或操作未完成状态,
步骤S14可包括:判断所述第一细粒度区域的状态标识是否为操作已完成状态;若是,则在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
也就是说,在存在正在进行的针对目标存储区域的第二操作时,对于第一操作当前所针对的第一细粒度区域与第二操作当前所针对的第二细粒度区域,可在确定第一细粒度区域的状态标识为操作已完成状态后,根据第一细粒度区域与第二细粒度区域之间重叠关系,确定第一操作是否可执行。在第一细粒度区域与第二细粒度区域之间不重叠时,可执行第一操作。
在本实施例中,细粒度区域包括状态标识,可在确定第一细粒度区域的状态标识为操作已完成状态后,根据第一细粒度区域与第二细粒度区域之间重叠关系,确定第一操作是否可执行,可在提高数据处理的正确性同时,提高处理器的处理效率。
在一种可能的实现方式中,所述第二操作为针对所述描述符的操作。
也就是说,第二操作的操作数与第一操作的操作数相同,即第二操作与第一操作为针对同一个描述符的操作,第二操作的操作数的存储区域与目标存储区域完全重叠。可将描述符所指示的张量数据的目标存储区域划分为多个细粒度区域后,根据本公开实施例中的方法,可以使得操作相同描述符的两个操作并行执行而不影响各操作的执行结果。
在一种可能的实现方式中,在第二操作的操作数与第一操作的操作数相同时,可根据操作的执行进程来分别确定第一细粒度区域与第二细粒度区域。
在一种可能的实现方式中,当在第一操作针对目标存储区域执行操作前,判断是否存在正在进行的针对目标存储区域的第二操作时,第一操作当前所针对的目标存储区域中的第一细粒度区域,为第一操作将要执行的目标存储区域中的细粒度区域。例如,在第一操作针对目标存储区域执行操作前,第一操作当前所针对的目标存储区域中的第一细粒度区域通常为目标存储区域的第一个细粒度区域。此时,第一操作还未对第一细粒度区域执行操作。而正在进行的第二操作当前所针对的目标存储区域中的第二细粒度区域,可以与第二操作的执行进程相关。若第二操作也刚开始执行,则第二细粒度区域也可为目标存储区域的第一个细粒度区域。此时,第一细粒度区域与第二细粒度区域重叠。若第二操作已经完成第一个细粒度区域的操作,当前所针对的目标存储区域中的第二细粒度区域为第P个细粒度区域(P为大于1的整数),则第一细粒度区域与第二细粒度区域不重叠。
在一种可能的实现方式中,当在第一操作针对目标存储区域的操作过程中,判断是否存在正在进行的针对目标存储区域的第二操作时,可根据第一操作的执行进程确定第一细粒度区域,根据第二操作的执行进程确定第二细粒度区域,进而判断第一细粒度区域与第二细粒度区域是否重叠。在第一细粒度区域与第二细粒度区域之间不重叠时,可执行第一操作。
在一种可能的实现方式中,若各操作执行过程的节拍一致,可只在第一操作针对目标存储区域执行操作前,判断是否存在正在进行的针对目标存储区域的第二操作,并判断第一细粒度区域与第二细粒度区域是否重叠。其中,节拍一致是指在细粒度区域的尺寸相同的情况下,两个操作对于一个细粒度区域的操作时长相同。
在一种可能的实现方式中,若各操作执行过程的节拍不一致或不能确定是否一致,可在第一操作针对目标存储区域的操作过程中,每完成当前所针对的目标存储区域中的第一细粒度区域的操作后,再继续判断是否存在正在进行的针对目标操作区域的第二操作,以及继续判断第一细粒度区域与第二细粒度区域是否重叠,以确定第一操作是否可以继续执行。
在本实施例中,第二操作的操作数与第一操作的操作数相同时,可使用本公开实施例中的方法,实现针对同一个描述符的两个或多个操作的并行执行,或者根据各操作的执行进程来确定各操作当前所针对的细粒度区域,在第一细粒度区域与第二细粒度区域之间不重叠时,执行第一操作,使得针对同一个描述符的两个或多个操作可以并行执行而不影响各操作的执行效果,从而提高处理器的执行效率。
在一种可能的实现方式中,所述第二操作的操作数的存储区域与所述目标存储区域有重叠。
在一种可能的实现方式中,当第二操作的操作数的存储区域与目标存储区域有重叠,且第二操作正在进行针对重叠区域的操作时,可以将第二操作的操作数的存储区域与目标存储区域的分别划分为多个细粒度区域,或者将目标存储区域所在的整体存储区域划分为多个细粒度区域,然后根据本公开实施例中的方法,对重叠区域中的细粒度区域进行判断,确定是否可执行第一操作,从而可以使得操作数的存储区域有重叠区域的两个操作并行执行而不影响各操作的执行结果。
在一种可能的实现方式中,在第二操作为针对描述符的操作,且第二操作所针对的描述符与第一操作所针对的描述符不同时,可根据创建描述符时是否允许描述符所指示的张量数据的存储区域重叠,来确定第二操作的操作数的存储区域与目标存储区域是否可能重叠。
在一种可能的实现方式中,如果在创建描述符时,不允许描述符所指示的张量数据的存储区域重叠,则在第二操作所针对的描述符与第一操作所针对的描述符不同时,第二操作所针对的描述符所指示的张量数据的存储区域与目标存储区域不重叠,第一操作和第二操作的细粒度区域之间的不会重叠,不需要对针对不同描述符的操作进行细粒度区域的判断。
在一种可能的实现方式中,如果在创建描述符时,允许描述符所指示的张量数据的存储区域重叠,则在第二操作所针对的描述符与第一操作所针对的描述符不同时,第二操作所针对的描述符的存储区域可能与第一操作所针对的描述符所指示的目标存储区域存在重叠,此时,可以采用本公开实施例中的方法,使得针对具有重叠区域的不同描述符的两个操作可以并行执行。
在本实施例中,当第二操作的操作数的存储区域与目标存储区域有重叠时,可使用本公开实施例中的方法实现两个或多个操作的并行执行,从而提高处理器的执行效率。
在一种可能的实现方式中,所述方法还可包括:将目标存储区域所在的整体存储区域划分为多个细粒度区域。
在一种可能的实现方式中,目标存储区域可以为存储装置的整体存储区域中的部分存储区域或全部存储区域,所述整体存储区域包括预设的多个细粒度区域。
例如目标存储区域所在的整体存储区域为RAM1,RAM1可以包括预先设定m个细粒度区域(m为正整数)。目标存储区域在RAM1中可以占据RAM1中的n个细粒度区域(n为正整数,且n<=m)。需要说明的是,目标存储区域也可以包括某细粒度区域中的部分区域。在如上示例的RAM1中,假设每个细粒度区域为整体存储区域RAM1中的一行,每行为100比特。目标存储区域可以包括前面(n-1)个完整的细粒度区域,并且又包括最后一个细粒度区域的部分区域,例如为RAM1中第n行(第n个细粒度区域)中的前80个比特。
在一种可能的实现方式中,当将存储装置的整体存储区域划分为多个细粒度区域时,针对整体存储区域中任意目标存储区域的任意操作,且无论是第一操作所针对的描述符所指示的张量数据的目标存储区域,还是第二操作的操作数的存储区域与目标存储区域的重叠区域,都可以根据整体存储区域的细粒度划分结果,确定目标存储区域或重叠区域中的细粒度区域。任意操作的任意操作数在整体存储区域的中存储区域,具有相同尺寸的细粒度区域。
在一种可能的实现方式中,可以根据存储装置的硬件特性,确定整体存储区域的细粒度区域的尺寸和/或数量,即可以根据存储装置的硬件计算能力、硬件带宽中的至少一种,确定整体存储区域的细粒度区域的尺寸和/或数量。
在本实施例中,将目标存储区域所在的整体存储区域划分为多个细粒度区域,针对整体存储区域中任意目标存储区域的任意操作,都可以按照相同的细粒度尺寸执行,不同操作按照本公开实施例中的方法并行时,可以更加方便地同步,提高操作并行度,进而提高处理器的处理效率。
在一种可能的实现方式中,所述方法还可包括:
根据第一操作中携带的第一细粒度划分信息,将所述目标存储区域划分为多个细粒度区域,及
根据第二操作中携带的第二细粒度划分信息,将所述第二操作的操作数的存储区域划分为多个细粒度区域。
在一种可能的实现方式中,可以在操作中携带细粒度划分信息,细粒度划分信息可以包括细粒度的尺寸和/或数量。不同的操作可以携带不同的细粒度划分信息。相同类型的操作可携带相同的细粒度划分信息。可在操作中操作数的设定位置携带细粒度划分信息,也可在操作码或操作数中携带是否进行细粒度划分的标识信息。本公开对细粒度划分信息中的内容及表现方式不做限定。
在一种可能的实现方式中,根据第一操作中携带的第一细粒度划分信息,将目标存储区域划分为多个第一细粒度区域。第一操作所针对的描述符指示的张量数据所在的整体存储区域中的其他区域,可不进行细粒度的划分,也可按照其他操作携带的细粒度划分信息,进行细粒度的划分。本公开对此不做限定。
可以理解的是,当第二操作的操作数与第一操作所针对的描述符所指示的张量数据一致时,第二操作的操作数的存储区域与目标存储区域完全重叠。而第一细粒度划分信息和第二细粒度划分信息可以一致,也可以不一致。当第一细粒度划分信息和第二细粒度划分信息不一致时,目标存储区域可同时按照第二细粒度划分信息进行细粒度划分。即,针对目标存储区域,不同的操作可以将其划分为不同尺寸或数量的多个细粒度区域。此时,可根据第一操作当前所针对的目标存储区域中的第一细粒度区域的物理地址,以及第二操作当前所述针对的目标存储区域中的第二细粒度区域之间的物理地址,判断第一细粒度区域与第二细粒度区域是否重叠,并根据判断结果进行第一操作和第二操作的并行执行。
在一种可能的实现方式中,各操作中携带的细粒度划分信息,可包括根据设定长度的操作数据所在区域、设定维数的操作数所在区域中的至少一种,确定出的所述细粒度区域的尺寸和/或数量,使得细粒度的划分结果更加符合操作中操作数的类型或属性。
在本实施例中,根据第一操作中携带的第一细粒度划分信息,将目标存储区域划分为多个细粒度区域,及根据第二操作中携带的第二细粒度划分信息,将第二操作的操作数的存储区域划分为多个细粒度区域。根据操作中携带的细粒度划分信息进行细粒度的划分,可使得细粒度的划分结果,更加符合各操作的处理需求,操作并行更加灵活。
应当理解,本领域技术人员可以根据实际情况将目标存储区域进行细粒度区域的划分与设置,本公开对此不作限制。
在一种可能的实现方式中,所述描述符可用于指示N维的张量数据的形状,N为大于或等于零的整数,其中,所述描述符的内容可包括表示张量数据的形状的至少一个形状参数。
在一种可能的实现方式中,描述符可用于指示N维的张量数据的形状。其中,N的取值可根据张量数据的维数(阶数)来确定,也可以根据张量数据的使用需要进行设定。例如,张量数据为三维数据,N的取值可以为3(根据维数来确定),描述符可用来指示该张量数据在三个维度方向上的形状(例如偏移量、尺寸等)。应当理解,本领域技术人员可以根据实际需要对N的取值进行设置,本公开对此不作限制。
在一种可能的实现方式中,描述符可包括标识和内容等,描述符的标识可用于对描述符进行区分,例如为编号;描述符的内容可包括表示张量数据的形状的至少一个形状参数(例如张量的各个维度方向上的尺寸等)。本公开对描述符的内容包括的具体形状参数不作限制。
在本实施例中,能够使用描述符来指示张量数据的形状,通过描述符指示的张量数据的形状,可确定多个张量数据之间的相互关系,从而提高处理器的存取效率。
在一种可能的实现方式中,描述符的标识和内容可存储在描述符存储空间中,该描述符存储空间可以为控制单元的内部存储器(例如寄存器、片上的SRAM或其他介质缓存等)中的存储空间。描述符所指示的张量数据的目标存储区域可以为所述控制单元的内部存储器(例如片上缓存)或与所述控制单元连接的外部存储器(片下存储器)中的存储空间。目标存储区域中的数据地址可以为实际的物理地址或虚拟地址。本公开对描述符存储空间及目标存储区域的位置以及数据地址的类型不作限制。
在一种可能的实现方式中,描述符的标识、内容以及描述符所指示的张量数据可以位于同一块区域,例如,可使用片上缓存的一块连续区域存储描述符的相关内容,其地址为ADDR0-ADDR1023,其中,地址ADDR0-ADDR31可用于存储描述符的标识,地址ADDR32-ADDR63可用于存储描述符的内容,地址ADDR64-ADDR1023可用于存储描述符指示的张量数据。其中,地址ADDR并不限于1位或一个字节,此处用来表示一个地址,是一个地址单位。本领域技术人员可以实际情况确定存储区域及其地址,本公开对此不作限制。
在一种可能的实现方式中,描述符的标识、内容以及描述符所指示的张量数据可以分别存储在内部存储器的不同区域,例如,可以将寄存器作为描述符存储空间,在寄存器中存储描述符的标识及内容,将片上缓存作为整体存储区域,存储描述符所指示的张量数据。
在一种可能的实现方式中,还可以设置专门供描述符使用的专用寄存器(SR),描述符中的数据可以是立即数也可以从专用寄存器中获取。在使用寄存器存储描述符的标识和内容时,可以使用寄存器的编号来表示描述符的标识,例如,寄存器的编号为0时,其存储的描述符的标识为0。当寄存器中的描述符有效时,可根据描述符所指示的张量数据的大小在缓存空间中分配一块区域(例如在缓存中为每个张量数据创建一个张量缓存单元)用于存储该张量数据。应当理解,也可以采用预设的缓存空间存储该张量数据,本公开对此不作限制。
在一种可能的实现方式中,描述符的标识及内容可存储在内部存储器,描述符所指示的张量数据可存储在外部存储器。例如,可以采用在片上存储描述符的标识及内容、在片下存储描述符所指示的张量数据的方式。
在一种可能的实现方式中,与描述符的标识对应的存储区域的数据地址可以是固定地址。例如,可以为张量数据划分单独的存储区域,每个张量数据在存储区域的起始地址与描述符的标识一一对应。在这种情况下,根据描述符的标识及对应关系,可直接确定描述符所指示的张量数据的目标存储区域。
在一种可能的实现方式中,所述描述符还可用于指示N维的张量数据的地址,其中,所述描述符的内容还可包括表示张量数据的地址的至少一个地址参数。
在一种可能的实现方式中,描述符还可用于指示N维的张量数据的地址,其中,地址可例如张量数据的起始地址、地址偏移量、寄存器地址或其他地址,本公开对地址类型不作限制。例如,地址可以为张量数据的起始地址,在与描述符的标识对应的存储区域的数据地址为固定地址时,描述符所指示的N维张量数据的起始地址为固定地址;在与描述符的标识对应的存储区域的数据地址为可变地址时,描述符所指示的N维张量数据的起始地址可根据其具体存储区域来确定。本公开对此不作限制。
在一种可能的实现方式中,描述符的内容还可包括表示张量数据的地址的至少一个地址参数。举例来说,张量数据为3维数据,可以使用描述符来指示该张量数据的地址,描述符的内容可包括表示该张量数据的地址的一个地址参数(例如张量数据的起始地址),也可以包括该张量数据的地址的多个地址参数(例如张量数据的起始地址+地址偏移量,或张量数据基于各维度的地址参数)。本领域技术人员可以根据实际需要对地址参数进行设置,本公开对此不作限制。
在本实施例中,能够使用描述符来指示张量数据的地址,通过描述符指示的张量数据的地址,可确定多个张量数据之间的相互关系,从而提高处理器的存取效率。
在一种可能的实现方式中,所述张量数据的地址参数包括所述描述符的数据基准点在所述张量数据所在的整体存储区域中的基准地址;
其中,所述张量数据的形状参数包括以下至少一种:
所述张量数据所在的整体存储区域在N个维度方向的至少一个方向上的尺寸、所述张量数据的存储区域在N个维度方向的至少一个方向上的尺寸、所述张量数据的存储区域在N个维度方向的至少一个方向上的偏移量、处于N个维度方向的对角位置的至少两个顶点相对于所述数据基准点的位置、所述描述符所指示的张量数据的数据描述位置与数据地址之间的映射关系。
在一种可能的实现方式中,张量数据的地址参数包括描述符的数据基准点在张量数据所在的整体存储区域中的基准地址。其中,基准地址可根据数据基准点的变化而不同。本公开对数据基准点的选取不作限制。
在一种可能的实现方式中,基准地址可包括整体存储区域的起始地址。在描述符的数据基准点是整体存储区域的第一个数据块时,描述符的基准地址即为整体存储区域的起始地址。在描述符的数据基准点是整体存储区域中第一个数据块以外的其他数据时,描述符的基准地址即为该数据块在整体存储区域中的物理地址。
在一种可能的实现方式中,张量数据的形状参数包括以下至少一种:张量数据所在的整体存储区域在N个维度方向的至少一个方向上的尺寸、张量数据的存储区域在N个维度方向的至少一个方向上的尺寸、张量数据的存储区域在N个维度方向的至少一个方向上的偏移量、处于N个维度方向的对角位置的至少两个顶点相对于所述数据基准点的位置、描述符所指示的张量数据的数据描述位置与数据地址之间的映射关系。其中,数据描述位置是描述符所指示的张量数据中的点或区域的映射位置,例如,张量数据为3维数据时,描述符可使用三维空间坐标(x,y,z)来表示该张量数据的形状,该张量数据的数据描述位置可以是使用三维空间坐标(x,y,z)表示的、该张量数据映射在三维空间中的点或区域的位置。
应当理解,本领域技术人员可以根据实际情况选择表示张量数据的形状参数,本公开对此不作限制。
图7示出根据本公开实施例的处理器操作方法的整体存储区域的示意图。如图7所示,整体存储区域71采用行优先的方式存储了一个二维数据,可通过(x,y)来表示(其中,X轴水平向右,Y轴垂直向下),X轴方向上的尺寸(每行的尺寸)为ori_x(图中未示出),Y轴方向上的尺寸(总行数)为ori_y(图中未示出),整体存储区域71的起始地址PA_start(基准地址)为第一个数据块72的物理地址。数据块73是整体存储区域71中的张量数据,其在X轴方向上的偏移量75表示为offset_x,在Y轴方向上的偏移量74表示为offset_y,在X轴方向上的尺寸表示为size_x,在Y轴方向上的尺寸表示为size_y。
在一种可能的实现方式中,使用描述符来定义数据块73时,描述符的数据基准点可使用整体存储区域71的第一个数据块,描述符的基准地址为整体存储区域71的起始地址PA_start,然后可以结合整体存储区域71在X轴的尺寸ori_x、在Y轴上的尺寸ori_y,以及数据块73在Y轴方向的偏移量offset_y、X轴方向上的偏移量offset_x、X轴方向上的尺寸size_x以及Y轴方向上的尺寸size_y来确定数据块73的描述符的内容。
在一种可能的实现方式中,可以使用下述公式(1)来表示描述符的内容:
应当理解,虽然上述示例中,描述符描述的是二维空间,但本领域技术人员可以根据实际情况对描述符的内容表示的维度进行设置,本公开对此不作限制。
在一种可能的实现方式中,可根据描述符的数据基准点在整体存储区域中的基准地址、处于N个维度方向的对角位置的至少两个顶点相对于数据基准点的位置,确定所述张量数据的描述符的内容。
举例来说,可以使用描述符的数据基准点在整体存储区域中的基准地址PA_base,以及对角位置的两个顶点相对于数据基准点的位置,确定出图7中数据块73的描述符的内容。首先,确定描述符的数据基准点以及其在整体存储区域中的基准地址PA_base,例如,可以在整体存储区域71中选取一个数据(例如,位置为(2,2)的数据)作为数据基准点,将该数据在整体存储区域71中的物理地址作为基准地址PA_base;然后,确定数据块73的对角位置的至少两个顶点相对于数据基准点的位置,例如,使用左上至右下方向的对角位置顶点相对于数据基准点的位置,其中,左上角顶点的相对位置为(x_min,y_min),右下角顶点的相对位置为(x_max,y_max),然后可以根据基准地址PA_base、左上角顶点的相对位置(x_min,y_min)以及右下角顶点的相对位置(x_max,y_max)确定出数据块73的描述符的内容。
在一种可能的实现方式中,可以使用下述公式(2)来表示描述符的内容:
应当理解,虽然上述示例中使用左上角和右下角两个顶点来确定描述符的内容,但本领域技术人员可以根据实际需要对至少两个顶点的具体顶点进行设置,本公开对此不作限制。
在一种可能的实现方式中,可根据描述符的数据基准点在整体存储区域中的基准地址,以及描述符所指示的张量数据的数据描述位置与数据地址之间的映射关系,确定所述张量数据的描述符的内容。其中,数据描述位置与数据地址之间的映射关系可以根据实际需要进行设定,例如,描述符所指示的张量数据为三维空间数据时,可是使用函数f(x,y,z)来定义数据描述位置与数据地址之间的映射关系。
在一种可能的实现方式中,可以使用下述公式(3)来表示描述符的内容:
应当理解,本领域技术人员可以根据实际情况对数据描述位置与数据地址之间的映射关系进行设定,本公开对此不作限制。
在本实施例中,能够使用张量数据的基准地址和至少一个形状参考来确定描述符的内容,从而可根据各操作的处理需要使用不同的描述符。
在一种可能的实现方式中,根据描述符的标识,可确定描述符在描述符存储空间中的位置,进而从描述符存储空间中获取描述符的内容;然后可根据描述符的内容,确定描述符所指示的张量数据在整体存储区域中的数据地址。其中,数据地址的计算可通过硬件自动完成或通过软件方式实现。在描述符的内容的不同时,描述符所指示的张量数据在整体存储区域中的数据地址的计算方式也可以不同。
举例来说,在采用公式(1)表示描述符的内容的情况下,描述符所指示的张量数据在整体存储区域中的偏移量分别为offset_x和offset_y,尺寸为size_x*size_y,那么,该描述符所指示的张量数据在整体存储区域中的起始数据地址PA1(x,y)可以使用下述公式(4)来确定:
PA1(x,y)=PA_start+(offset_y-1)*ori_x+offset_x (4)
对于描述符所指示的张量数据中的任意一个数据点,设其数据描述位置为(xq,yq),那么,该数据点在整体存储区域中的数据地址PA2(x,y)可以使用下述公式(5)来确定:
PA2(x,y)=PA_start+(offset_y+yq-1)*ori_x+(offset_x+xq) (5)
应当理解,本领域技术人员可以根据实际情况确定数据地址的计算方法,本公开对此不作限制。
在本实施例中,能够根据描述符的标识,获取描述符的内容;并根据描述符的内容,描述符所指示的张量数据在整体存储区域中的数据地址;根据数据地址,可确定描述符所指示的张量数据的目标存储区域。通过这种方式,可在数据存取过程中使用描述符,从而可降低数据存取的复杂度,提高处理器的处理效率。
需要说明的是,尽管以上述实施例作为示例介绍了处理器操作方法如上,但本领域技术人员能够理解,本公开应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定各步骤,只要符合本公开的技术方案即可。
图8示出根据本公开实施例的处理器操作装置的框图。如图8所示,所述处理器操作装置包括:
区域确定模块81,用于在第一操作为针对描述符的操作时,获取所述描述符所指示的张量数据的目标存储区域;
操作判断模块82,用于判断是否存在正在进行的针对所述目标存储区域的第二操作;
重叠判断模块83,用于在存在所述第二操作时,判断所述第一操作当前所针对的所述目标存储区域中的第一细粒度区域与所述第二操作当前所针对的所述目标存储区域中的第二细粒度区域之间是否有重叠;
执行模块84,用于在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
在一种可能的实现方式中,所述装置还包括:执行控制模块,用于在所述第一细粒度区域与所述第二细粒度区域有重叠时,阻塞所述第一操作。
在一种可能的实现方式中,所述第一操作和所述第二操作中的至少一个操作为写操作。
在一种可能的实现方式中,所述细粒度区域的尺寸和/或数量是根据设定长度的数据所在区域、设定维数的数据所在区域中的至少一种确定的。
在一种可能的实现方式中,所述细粒度区域的尺寸和/或数量是根据硬件计算能力、硬件带宽中的至少一种确定的。
在一种可能的实现方式中,所述第一操作为第一处理指令中的操作,所述第二操作为第二处理指令中的操作,所述第二处理指令为指令队列中在所述第一处理指令之前的处理指令。
在一种可能的实现方式中,所述装置还包括:位置记录模块,用于记录所述第一操作当前操作的第一细粒度区域的第一位置信息和所述第二操作当前操作的第二细粒度区域的第二位置信息,
所述执行模块84,包括:第一执行子模块,用于当所述第一位置信息与所述第二位置信息不一致时,执行所述第一操作。
在一种可能的实现方式中,所述第一位置信息包括第一操作已操作完成的细粒度区域的第一数量,所述第二位置信息包括第二操作已操作完成的细粒度区域的第二数量,
所述第一执行子模块,还用于:当所述第一操作为所述第二操作之后的操作,且所述第一数量小于所述第二数量时,执行所述第一操作。
在一种可能的实现方式中,所述目标存储区域包括可操作区域和非可操作区域,所述重叠判断模块83,包括:判断子模块,用于在存在所述第二操作,且所述第一操作当前所针对的所述目标存储区域中的第一细粒度区域位于所述可操作区域内时,判断所述第一操作当前所针对的所述目标存储区域中的第一细粒度区域与所述第二操作当前所针对的所述目标存储区域中的第二细粒度区域之间是否重叠。
在一种可能的实现方式中,所述非可操作区域为包括所述第二细粒度区域在内的多个细粒度区域,且所述第二细粒度区域在所述非可操作区域内的位置随所述第二操作的操作位置更新,所述装置还包括:更新模块,用于当所述第二操作所针对的所述目标存储区域中的第二细粒度区域移出所述非可操作区域后,更新所述非可操作区域的位置。
在一种可能的实现方式中,所述非可操作区域为包括所述第二细粒度区域在内的多个细粒度区域,且所述第二细粒度区域位于所述非可操作区域内的设定位置,所述非可操作区域的位置随所述第二操作的操作位置更新。
在一种可能的实现方式中,所述目标存储区域包括:循环缓冲存储区域。
在一种可能的实现方式中,所述细粒度区域包括状态标识,所述状态标识包括操作所述细粒度区域的操作已完成状态或操作未完成状态,所述执行模块84,包括:
第一状态判断子模块,用于在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,判断所述第一细粒度区域的状态标识是否为操作已完成状态;
第二执行子模块,用于在所述第一细粒度区域的状态标识为操作已完成状态时,执行所述第一操作。
在一种可能的实现方式中,所述细粒度区域包括状态标识,所述状态标识包括操作所述细粒度区域的操作已完成状态或操作未完成状态,所述执行模块84,包括:
第二状态判断子模块,用于判断所述第一细粒度区域的状态标识是否为操作已完成状态;
第三执行子模块,用于在所述第一细粒度区域的状态标识为操作已完成状态,且所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
在一种可能的实现方式中,所述第二操作为针对所述描述符的操作。
在一种可能的实现方式中,所述第二操作的操作数的存储区域与所述目标存储区域有重叠。
在一种可能的实现方式中,所述装置还包括:第一设定模块,用于将目标存储区域所在的整体存储区域划分为多个细粒度区域。
在一种可能的实现方式中,所述装置还包括:
第二设定模块,用于根据第一操作中携带的第一细粒度划分信息,将所述目标存储区域划分为多个细粒度区域,及
第三设定模块,用于根据第二操作中携带的第二细粒度划分信息,将所述第二操作的操作数的存储区域划分为多个细粒度区域。
在一种可能的实现方式中,所述描述符用于指示N维的张量数据的形状,N为大于或等于零的整数,其中,所述描述符的内容包括表示张量数据的形状的至少一个形状参数。
在一种可能的实现方式中,所述描述符还用于指示N维的张量数据的地址,其中,所述描述符的内容还包括表示张量数据的地址的至少一个地址参数。
在一种可能的实现方式中,所述张量数据的地址参数包括所述描述符的数据基准点在所述张量数据所在的整体存储区域中的基准地址;其中,所述张量数据的形状参数包括以下至少一种:所述张量数据所在的整体存储区域在N个维度方向的至少一个方向上的尺寸、所述张量数据的存储区域在N个维度方向的至少一个方向上的尺寸、所述张量数据的存储区域在N个维度方向的至少一个方向上的偏移量、处于N个维度方向的对角位置的至少两个顶点相对于所述数据基准点的位置、所述描述符所指示的张量数据的数据描述位置与数据地址之间的映射关系。
在一种可能的实现方式中,还公开了一种人工智能芯片,其包括了上述处理器操作装置。
在一种可能的实现方式中,还公开了一种板卡,其包括存储器件、接口装置和控制器件以及上述人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
在一种可能的实现方式中,所述存储器件包括:多组存储单元,每一组所述存储单元与所述人工智能芯片通过总线连接,所述存储单元为:DDR SDRAM;所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;所述接口装置为:标准PCIE接口。
图9示出根据本公开实施例的板卡的结构框图,参阅图9,上述板卡除了包括上述芯片389以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件390、接口装置391和控制器件392;
所述存储器件390与所述人工智能芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述人工智能芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述人工智能芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述人工智能芯片电连接。所述接口装置用于实现所述人工智能芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本公开并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述人工智能芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述人工智能芯片电连接。所述控制器件用于对所述人工智能芯片的状态进行监控。具体的,所述人工智能芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述人工智能芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述人工智能芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述人工智能芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一种可能的实现方式中,公开了一种电子设备,其包括了上述人工智能芯片。电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
A1、一种处理器操作方法,所述方法包括:
在第一操作为针对描述符的操作时,获取所述描述符所指示的张量数据的目标存储区域;
判断是否存在正在进行的针对所述目标存储区域的第二操作;
在存在所述第二操作时,判断所述第一操作当前所针对的所述目标存储区域中的第一细粒度区域与所述第二操作当前所针对的所述目标存储区域中的第二细粒度区域之间是否有重叠;
在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
A2、根据权利要求A1所述的方法,所述方法还包括:
在所述第一细粒度区域与所述第二细粒度区域有重叠时,阻塞所述第一操作。
A3、根据权利要求A1所述的方法,所述第一操作和所述第二操作中的至少一个操作为写操作。
A4、根据权利要求A1所述的方法,所述细粒度区域的尺寸和/或数量是根据设定长度的数据所在区域、设定维数的数据所在区域中的至少一种确定的。
A5、根据权利要求A1所述的方法,所述细粒度区域的尺寸和/或数量是根据硬件计算能力、硬件带宽中的至少一种确定的。
A6、根据权利要求A1所述的方法,所述第一操作为第一处理指令中的操作,所述第二操作为第二处理指令中的操作,所述第二处理指令为指令队列中在所述第一处理指令之前的处理指令。
A7、根据权利要求A1-A6中任意一项所述的方法,所述方法还包括:
记录所述第一操作当前操作的第一细粒度区域的第一位置信息和所述第二操作当前操作的第二细粒度区域的第二位置信息,
在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作,包括:
当所述第一位置信息与所述第二位置信息不一致时,执行所述第一操作。
A8、根据权利要求A7所述的方法,所述第一位置信息包括第一操作已操作完成的细粒度区域的第一数量,所述第二位置信息包括第二操作已操作完成的细粒度区域的第二数量,
当所述第一位置信息与所述第二位置信息不一致时,执行所述第一操作,包括:
当所述第一操作为所述第二操作之后的操作,且所述第一数量小于所述第二数量时,执行所述第一操作。
A9、根据权利要求A1所述的方法,所述目标存储区域包括可操作区域和非可操作区域,在存在所述第二操作时,判断所述第一操作当前所针对的所述目标存储区域中的第一细粒度区域与所述第二操作当前所针对的所述目标存储区域中的第二细粒度区域之间是否重叠,包括:
在存在所述第二操作,且所述第一操作当前所针对的所述目标存储区域中的第一细粒度区域位于所述可操作区域内时,判断所述第一操作当前所针对的所述目标存储区域中的第一细粒度区域与所述第二操作当前所针对的所述目标存储区域中的第二细粒度区域之间是否重叠。
A10、根据权利要求A9所述的方法,所述非可操作区域为包括所述第二细粒度区域在内的多个细粒度区域,且所述第二细粒度区域在所述非可操作区域内的位置随所述第二操作的操作位置更新,所述方法还包括:
当所述第二操作所针对的所述目标存储区域中的第二细粒度区域移出所述非可操作区域后,更新所述非可操作区域的位置。
A11、根据权利要求A9所述的方法,所述非可操作区域为包括所述第二细粒度区域在内的多个细粒度区域,且所述第二细粒度区域位于所述非可操作区域内的设定位置,
所述非可操作区域的位置随所述第二操作的操作位置更新。
A12、根据权利要求A1所述的方法,所述目标存储区域包括:循环缓冲存储区域。
A13、根据权利要求A1所述的方法,所述细粒度区域包括状态标识,所述状态标识包括操作所述细粒度区域的操作已完成状态或操作未完成状态,
在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作,包括:
在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,判断所述第一细粒度区域的状态标识是否为操作已完成状态;
若是,则执行所述第一操作。
A14、根据权利要求A1所述的方法,所述细粒度区域包括状态标识,所述状态标识包括操作所述细粒度区域的操作已完成状态或操作未完成状态,
在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作,包括:
判断所述第一细粒度区域的状态标识是否为操作已完成状态;
若是,则在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
A15、根据权利要求A1所述的方法,所述第二操作为针对所述描述符的操作。
A16、根据权利要求A1所述的方法,所述第二操作的操作数的存储区域与所述目标存储区域有重叠。
A17、根据权利要求A1-A16中任意一项所述的方法,所述方法还包括:
将目标存储区域所在的整体存储区域划分为多个细粒度区域。
A18、根据权利要求A1-A17中任意一项所述的方法,所述方法还包括:
根据第一操作中携带的第一细粒度划分信息,将所述目标存储区域划分为多个细粒度区域,及
根据第二操作中携带的第二细粒度划分信息,将所述第二操作的操作数的存储区域划分为多个细粒度区域。
A19、根据权利要求A1所述的方法,所述描述符用于指示N维的张量数据的形状,N为大于或等于零的整数,
其中,所述描述符的内容包括表示张量数据的形状的至少一个形状参数。
A20、根据权利要求A19所述的方法,所述描述符还用于指示N维的张量数据的地址,其中,所述描述符的内容还包括表示张量数据的地址的至少一个地址参数。
A21、根据权利要求A20所述的方法,所述张量数据的地址参数包括所述描述符的数据基准点在所述张量数据所在的整体存储区域中的基准地址;
其中,所述张量数据的形状参数包括以下至少一种:
所述张量数据所在的整体存储区域在N个维度方向的至少一个方向上的尺寸、所述张量数据的存储区域在N个维度方向的至少一个方向上的尺寸、所述张量数据的存储区域在N个维度方向的至少一个方向上的偏移量、处于N个维度方向的对角位置的至少两个顶点相对于所述数据基准点的位置、所述描述符所指示的张量数据的数据描述位置与数据地址之间的映射关系。
A22、一种处理器操作装置,所述装置包括:
区域确定模块,用于在第一操作为针对描述符的操作时,获取所述描述符所指示的张量数据的目标存储区域;
操作判断模块,用于判断是否存在正在进行的针对所述目标存储区域的第二操作;
重叠判断模块,用于在存在所述第二操作时,判断所述第一操作当前所针对的所述目标存储区域中的第一细粒度区域与所述第二操作当前所针对的所述目标存储区域中的第二细粒度区域之间是否有重叠;
执行模块,用于在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
A23、根据权利要求A22所述的装置,所述装置还包括:
执行控制模块,用于在所述第一细粒度区域与所述第二细粒度区域有重叠时,阻塞所述第一操作。
A24、根据权利要求A22所述的装置,所述第一操作和所述第二操作中的至少一个操作为写操作。
A25、根据权利要求A22所述的装置,所述细粒度区域的尺寸和/或数量是根据设定长度的数据所在区域、设定维数的数据所在区域中的至少一种确定的。
A26、根据权利要求A22所述的装置,所述细粒度区域的尺寸和/或数量是根据硬件计算能力、硬件带宽中的至少一种确定的。
A27、根据权利要求A22所述的方装置,所述第一操作为第一处理指令中的操作,所述第二操作为第二处理指令中的操作,所述第二处理指令为指令队列中在所述第一处理指令之前的处理指令。
A28、根据权利要求A22-A27中任意一项所述的装置,所述装置还包括:
位置记录模块,用于记录所述第一操作当前操作的第一细粒度区域的第一位置信息和所述第二操作当前操作的第二细粒度区域的第二位置信息,
所述执行模块,包括:
第一执行子模块,用于当所述第一位置信息与所述第二位置信息不一致时,执行所述第一操作。
A29、根据权利要求A28所述的装置,所述第一位置信息包括第一操作已操作完成的细粒度区域的第一数量,所述第二位置信息包括第二操作已操作完成的细粒度区域的第二数量,
所述第一执行子模块,还用于:
当所述第一操作为所述第二操作之后的操作,且所述第一数量小于所述第二数量时,执行所述第一操作。
A30、根据权利要求A22所述的装置,所述目标存储区域包括可操作区域和非可操作区域,所述重叠判断模块,包括:
判断子模块,用于在存在所述第二操作,且所述第一操作当前所针对的所述目标存储区域中的第一细粒度区域位于所述可操作区域内时,判断所述第一操作当前所针对的所述目标存储区域中的第一细粒度区域与所述第二操作当前所针对的所述目标存储区域中的第二细粒度区域之间是否重叠。
A31、根据权利要求A30所述的装置,所述非可操作区域为包括所述第二细粒度区域在内的多个细粒度区域,且所述第二细粒度区域在所述非可操作区域内的位置随所述第二操作的操作位置更新,所述装置还包括:
更新模块,用于当所述第二操作所针对的所述目标存储区域中的第二细粒度区域移出所述非可操作区域后,更新所述非可操作区域的位置。
A32、根据权利要求A30所述的装置,所述非可操作区域为包括所述第二细粒度区域在内的多个细粒度区域,且所述第二细粒度区域位于所述非可操作区域内的设定位置,
所述非可操作区域的位置随所述第二操作的操作位置更新。
A33、根据权利要求A22所述的装置,所述目标存储区域包括:循环缓冲存储区域。
A34、根据权利要求A22所述的装置,所述细粒度区域包括状态标识,所述状态标识包括操作所述细粒度区域的操作已完成状态或操作未完成状态,
所述执行模块,包括:
第一状态判断子模块,用于在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,判断所述第一细粒度区域的状态标识是否为操作已完成状态;
第二执行子模块,用于在所述第一细粒度区域的状态标识为操作已完成状态时,执行所述第一操作。
A35、根据权利要求A22所述的装置,所述细粒度区域包括状态标识,所述状态标识包括操作所述细粒度区域的操作已完成状态或操作未完成状态,
所述执行模块,包括:
第二状态判断子模块,用于判断所述第一细粒度区域的状态标识是否为操作已完成状态;
第三执行子模块,用于在所述第一细粒度区域的状态标识为操作已完成状态,且所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
A36、根据权利要求A22所述的装置,所述第二操作为针对所述描述符的操作。
A37、根据权利要求A22所述的装置,所述第二操作的操作数的存储区域与所述目标存储区域有重叠。
A38、根据权利要求A22-A37中任意一项所述的装置,所述装置还包括:
第一设定模块,用于将目标存储区域所在的整体存储区域划分为多个细粒度区域。
A39、根据权利要求A22-A37中任意一项所述的装置,所述装置还包括:
第二设定模块,用于根据第一操作中携带的第一细粒度划分信息,将所述目标存储区域划分为多个细粒度区域,及
第三设定模块,用于根据第二操作中携带的第二细粒度划分信息,将所述第二操作的操作数的存储区域划分为多个细粒度区域。
A40、根据权利要求A22所述的装置,所述描述符用于指示N维的张量数据的形状,N为大于或等于零的整数,
其中,所述描述符的内容包括表示张量数据的形状的至少一个形状参数。
A41、根据权利要求A40所述的装置,所述描述符还用于指示N维的张量数据的地址,其中,所述描述符的内容还包括表示张量数据的地址的至少一个地址参数。
A42、根据权利要求A41所述的装置,所述张量数据的地址参数包括所述描述符的数据基准点在所述张量数据所在的整体存储区域中的基准地址;
其中,所述张量数据的形状参数包括以下至少一种:
所述张量数据所在的整体存储区域在N个维度方向的至少一个方向上的尺寸、所述张量数据的存储区域在N个维度方向的至少一个方向上的尺寸、所述张量数据的存储区域在N个维度方向的至少一个方向上的偏移量、处于N个维度方向的对角位置的至少两个顶点相对于所述数据基准点的位置、所述描述符所指示的张量数据的数据描述位置与数据地址之间的映射关系。
A43、一种人工智能芯片,所述芯片包括如权利要求A22-A42中任意一项所述的处理器操作装置。
A44、一种电子设备,所述电子设备包括如权利要求A43所述的人工智能芯片。
A45、一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求A43所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
A46、根据权利要求A45所述的板卡,所述存储器件包括:多组存储单元,每一组所述存储单元与所述人工智能芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接口装置为:标准PCIE接口。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种处理器操作方法,其特征在于,所述方法包括:
在第一操作为针对描述符的操作时,获取所述描述符所指示的张量数据的目标存储区域;
判断是否存在正在进行的针对所述目标存储区域的第二操作;
在存在所述第二操作时,判断所述第一操作当前所针对的所述目标存储区域中的第一细粒度区域与所述第二操作当前所针对的所述目标存储区域中的第二细粒度区域之间是否有重叠;
在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一细粒度区域与所述第二细粒度区域有重叠时,阻塞所述第一操作。
3.根据权利要求1所述的方法,其特征在于,所述第一操作和所述第二操作中的至少一个操作为写操作。
4.根据权利要求1所述的方法,其特征在于,所述细粒度区域的尺寸和/或数量是根据设定长度的数据所在区域、设定维数的数据所在区域中的至少一种确定的。
5.根据权利要求1所述的方法,其特征在于,所述细粒度区域的尺寸和/或数量是根据硬件计算能力、硬件带宽中的至少一种确定的。
6.根据权利要求1所述的方法,其特征在于,所述第一操作为第一处理指令中的操作,所述第二操作为第二处理指令中的操作,所述第二处理指令为指令队列中在所述第一处理指令之前的处理指令。
7.一种处理器操作装置,其特征在于,所述装置包括:
区域确定模块,用于在第一操作为针对描述符的操作时,获取所述描述符所指示的张量数据的目标存储区域;
操作判断模块,用于判断是否存在正在进行的针对所述目标存储区域的第二操作;
重叠判断模块,用于在存在所述第二操作时,判断所述第一操作当前所针对的所述目标存储区域中的第一细粒度区域与所述第二操作当前所针对的所述目标存储区域中的第二细粒度区域之间是否有重叠;
执行模块,用于在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
8.一种人工智能芯片,其特征在于,所述芯片包括如权利要求7所述的处理器操作装置。
9.一种电子设备,其特征在于,所述电子设备包括如权利要求8所述的人工智能芯片。
10.一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求8所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
Priority Applications (23)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910340177.9A CN111857828B (zh) | 2019-04-25 | 2019-04-25 | 处理器操作方法及装置以及相关产品 |
KR1020207036492A KR102519470B1 (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리방법과 장치 및 관련 제품 |
JP2021510522A JP7073580B2 (ja) | 2019-04-04 | 2020-04-01 | データ処理方法、装置、及び関連製品 |
EP20217329.0A EP3825843B1 (en) | 2019-04-04 | 2020-04-01 | Data processing method and apparatus, and related product |
PCT/CN2020/082775 WO2020200244A1 (zh) | 2019-04-04 | 2020-04-01 | 数据处理方法及装置以及相关产品 |
EP20783678.4A EP3800547A4 (en) | 2019-04-04 | 2020-04-01 | DATA PROCESSING METHOD AND DEVICE AND RELEVANT PRODUCT |
EP20217332.4A EP3828698B1 (en) | 2019-04-04 | 2020-04-01 | Data processing method and apparatus, and related product |
EP20217328.2A EP3825842B1 (en) | 2019-04-04 | 2020-04-01 | Data processing method and apparatus, and related product |
KR1020207036494A KR102569336B1 (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리방법과 장치 및 관련 제품 |
EP20217333.2A EP3825848A1 (en) | 2019-04-04 | 2020-04-01 | Data processing method and apparatus, and related product |
EP20217331.6A EP3825847B1 (en) | 2019-04-04 | 2020-04-01 | Data processing method and apparatus, and related product |
EP20217330.8A EP3825846A1 (en) | 2019-04-04 | 2020-04-01 | Data processing method and apparatus, and related product |
KR1020207036508A KR102379406B1 (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리방법과 장치 및 관련 제품 |
KR1020207036505A KR102550451B1 (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리방법과 장치 및 관련 제품 |
KR1020207036500A KR102579192B1 (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리방법과 장치 및 관련 제품 |
KR1020207036496A KR102522416B1 (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리방법과 장치 및 관련 제품 |
KR1020207032006A KR20210002518A (ko) | 2019-04-04 | 2020-04-01 | 데이터 처리방법과 장치 및 관련 제품 |
JP2020198177A JP7121102B2 (ja) | 2019-04-04 | 2020-11-30 | データ処理方法、装置、及び関連製品 |
JP2020198102A JP7150802B2 (ja) | 2019-04-04 | 2020-11-30 | データ処理方法、装置、及び関連製品 |
JP2020198041A JP2021170312A (ja) | 2019-04-04 | 2020-11-30 | データ処理方法、装置、及び関連製品 |
JP2020198158A JP7121101B2 (ja) | 2019-04-04 | 2020-11-30 | データ処理方法、装置、及び関連製品 |
JP2020198079A JP7121100B2 (ja) | 2019-04-04 | 2020-11-30 | データ処理方法、装置、及び関連製品 |
JP2020198021A JP7239547B2 (ja) | 2019-04-04 | 2020-11-30 | データ処理方法、装置、及び関連製品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910340177.9A CN111857828B (zh) | 2019-04-25 | 2019-04-25 | 处理器操作方法及装置以及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111857828A true CN111857828A (zh) | 2020-10-30 |
CN111857828B CN111857828B (zh) | 2023-03-14 |
Family
ID=72951282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910340177.9A Active CN111857828B (zh) | 2019-04-04 | 2019-04-25 | 处理器操作方法及装置以及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111857828B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112767978A (zh) * | 2021-01-11 | 2021-05-07 | 湖南国科微电子股份有限公司 | 一种ddr命令调度方法、装置、设备及介质 |
CN113807507A (zh) * | 2020-06-16 | 2021-12-17 | 安徽寒武纪信息科技有限公司 | 数据处理方法及装置以及相关产品 |
WO2022100345A1 (zh) * | 2020-11-13 | 2022-05-19 | 中科寒武纪科技股份有限公司 | 处理方法、处理装置及相关产品 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588300A (zh) * | 2004-08-09 | 2005-03-02 | 威盛电子股份有限公司 | 进行硬盘阵列同位运算的装置与相关方法 |
US20090198938A1 (en) * | 2008-02-01 | 2009-08-06 | Arimilli Ravi K | Handling of address conflicts during asynchronous memory move operations |
US20100325395A1 (en) * | 2009-06-19 | 2010-12-23 | Doug Burger | Dependence prediction in a memory system |
WO2016040666A1 (en) * | 2014-09-10 | 2016-03-17 | Amazon Technologies, Inc. | Scalable log-based transaction management |
US20160342508A1 (en) * | 2014-01-31 | 2016-11-24 | Hewlett Packard Enterprise Development Lp | Identifying memory regions that contain remapped memory locations |
WO2017185418A1 (zh) * | 2016-04-29 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行神经网络运算以及矩阵/向量运算的装置和方法 |
CN107347253A (zh) * | 2015-02-25 | 2017-11-14 | 米雷普里卡技术有限责任公司 | 用于专用处理器的硬件指令生成单元 |
US20180341483A1 (en) * | 2017-05-24 | 2018-11-29 | Microsoft Technology Licensing, Llc | Tensor Register Files |
CN109522052A (zh) * | 2018-11-27 | 2019-03-26 | 北京中科寒武纪科技有限公司 | 一种计算装置及板卡 |
CN109543832A (zh) * | 2018-11-27 | 2019-03-29 | 北京中科寒武纪科技有限公司 | 一种计算装置及板卡 |
-
2019
- 2019-04-25 CN CN201910340177.9A patent/CN111857828B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588300A (zh) * | 2004-08-09 | 2005-03-02 | 威盛电子股份有限公司 | 进行硬盘阵列同位运算的装置与相关方法 |
US20090198938A1 (en) * | 2008-02-01 | 2009-08-06 | Arimilli Ravi K | Handling of address conflicts during asynchronous memory move operations |
US20100325395A1 (en) * | 2009-06-19 | 2010-12-23 | Doug Burger | Dependence prediction in a memory system |
US20160342508A1 (en) * | 2014-01-31 | 2016-11-24 | Hewlett Packard Enterprise Development Lp | Identifying memory regions that contain remapped memory locations |
WO2016040666A1 (en) * | 2014-09-10 | 2016-03-17 | Amazon Technologies, Inc. | Scalable log-based transaction management |
CN107347253A (zh) * | 2015-02-25 | 2017-11-14 | 米雷普里卡技术有限责任公司 | 用于专用处理器的硬件指令生成单元 |
WO2017185418A1 (zh) * | 2016-04-29 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行神经网络运算以及矩阵/向量运算的装置和方法 |
US20180341483A1 (en) * | 2017-05-24 | 2018-11-29 | Microsoft Technology Licensing, Llc | Tensor Register Files |
CN109522052A (zh) * | 2018-11-27 | 2019-03-26 | 北京中科寒武纪科技有限公司 | 一种计算装置及板卡 |
CN109543832A (zh) * | 2018-11-27 | 2019-03-29 | 北京中科寒武纪科技有限公司 | 一种计算装置及板卡 |
Non-Patent Citations (1)
Title |
---|
NIGHT李: "CUDNN学习笔记(2)", 《HTTPS://DEVELOPER.ALIYUN.COM/ARTICLE/497075》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113807507A (zh) * | 2020-06-16 | 2021-12-17 | 安徽寒武纪信息科技有限公司 | 数据处理方法及装置以及相关产品 |
WO2022100345A1 (zh) * | 2020-11-13 | 2022-05-19 | 中科寒武纪科技股份有限公司 | 处理方法、处理装置及相关产品 |
CN112767978A (zh) * | 2021-01-11 | 2021-05-07 | 湖南国科微电子股份有限公司 | 一种ddr命令调度方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111857828B (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111857828B (zh) | 处理器操作方法及装置以及相关产品 | |
US20210150325A1 (en) | Data processing method and apparatus, and related product | |
EP3800547A1 (en) | Data processing method and apparatus, and related product | |
US20240111536A1 (en) | Data processing apparatus and related products | |
US20240028334A1 (en) | Data processing method and apparatus, and related product for increased efficiency of tensor processing | |
CN111831337B (zh) | 数据同步方法及装置以及相关产品 | |
CN111782274B (zh) | 数据处理装置及相关产品 | |
CN111783992A (zh) | 数据处理装置及相关产品 | |
CN111857829A (zh) | 处理器操作方法及装置以及相关产品 | |
CN111782267B (zh) | 数据处理方法及装置以及相关产品 | |
CN111831329B (zh) | 数据处理方法及装置以及相关产品 | |
CN111831722A (zh) | 数据同步方法及装置以及相关产品 | |
CN113807507A (zh) | 数据处理方法及装置以及相关产品 | |
CN113806246A (zh) | 数据处理装置及方法以及相关产品 | |
CN113867686A (zh) | 运算方法、装置及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |