CN111158907A - 数据处理方法及装置、电子设备和存储介质 - Google Patents
数据处理方法及装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN111158907A CN111158907A CN201911364894.1A CN201911364894A CN111158907A CN 111158907 A CN111158907 A CN 111158907A CN 201911364894 A CN201911364894 A CN 201911364894A CN 111158907 A CN111158907 A CN 111158907A
- Authority
- CN
- China
- Prior art keywords
- data
- computing unit
- processed
- processing
- computing
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 23
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 181
- 238000000034 method Methods 0.000 claims abstract description 96
- 238000004364 calculation method Methods 0.000 claims description 62
- 238000004590 computer program Methods 0.000 claims description 8
- 238000009826 distribution Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 24
- 238000010606 normalization Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 9
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000003062 neural network model Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 235000017166 Bambusa arundinacea Nutrition 0.000 description 1
- 235000017491 Bambusa tulda Nutrition 0.000 description 1
- 241001330002 Bambuseae Species 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 235000015334 Phyllostachys viridis Nutrition 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 239000011425 bamboo Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开涉及一种数据处理方法及装置、电子设备和存储介质,其中,所述方法包括:获取待处理数据中至少一组数据的数据量;根据所述数据量以及至少一个计算单元的缓存容量,为所述待处理数据中每组数据分配计算单元;从内存中读取所述待处理数据,并将所述待处理数据缓存至分配的计算单元的缓存中,以通过所述分配的计算单元对所述缓存中的所述待处理数据进行处理。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据处理方法及装置、电子设备和存储介质。
背景技术
随着人工智能技术的快速发展,一大批人工智能企业如雨后春笋一般建立起来,图像处理器(Graphics Processing Unit,GPU)的计算任务由小规模逐渐向大规模、高速网络互连发展。为了满足不同任务对GPU的不同要求,可以将GPU划分为多个计算单元,利用多个计算单元对不同任务进行处理。
通常,一个GPU上的多个计算单元是相对独立的,多个计算单元可以共享GPU的全局存储器。但是,如何利用计算单元实现任务的高效处理,是尚待解决的一个技术问题。
发明内容
本公开提出了一种数据处理技术方案。
根据本公开的一方面,提供了一种数据处理方法,包括:
获取待处理数据中至少一组数据的数据量;根据所述数据量以及至少一个计算单元的缓存容量,为所述待处理数据中每组数据分配计算单元;从内存中读取所述待处理数据,并将所述待处理数据缓存至分配的计算单元的缓存中,以通过所述分配的计算单元对所述缓存中的所述待处理数据进行处理。
在一个可能的实现方式中,在所述从内存中读取所述待处理数据之后,所述方法还包括:通过所述分配的计算单元对所述待处理数据进行第一处理,得到处理结果;所述通过所述分配的计算单元对所述缓存中的所述待处理数据进行处理,包括:从所述缓存中获取所述待处理数据;通过所述分配的计算单元,对所述处理结果以及从所述缓存中获取的所述待处理数据进行第二处理。
在一个可能的实现方式中,所述根据所述数据量以及至少一个计算单元的缓存容量,为所述待处理数据中每组数据分配计算单元,包括:在所述数据量小于或等于所述至少一个计算单元中每个计算单元的缓存容量的情况下,将内存中的所述每组数据分配给一个计算单元。
在一个可能的实现方式中,所述根据所述数据量以及至少一个计算单元的缓存容量,为所述待处理数据中每组数据分配计算单元,包括:在所述数据量大于所述至少一个计算单元中每个计算单元的缓存容量的情况下,将内存中的所述每组数据分配给多个计算单元。
在一个可能的实现方式中,所述根据所述数据量以及至少一个计算单元的缓存容量,为所述待处理数据中每组数据分配计算单元,包括:在所述数据量小于或等于所述至少一个计算单元中部分计算单元的缓存容量,和/或所述数据量大于所述至少一个计算单元中部分计算单元的缓存容量的情况下,将内存中部分组数据中的每组数据分配给一个计算单元,并将内存中除所述部分组数据以外的每组数据分配给多个计算单元。
在一个可能的实现方式中,对于分配给多个计算单元的一组数据,所述通过所述分配的计算单元对所述缓存中的所述待处理数据进行处理,包括:从分配的多个计算单元中每个计算单元的缓存中获取属于一组数据的目标数据;通过所述多个计算单元中的每个计算单元,分别对所述处理结果以及所述目标数据进行第二处理。
在一个可能的实现方式中,所述通过所述多个计算单元中的每个计算单元,分别对所述处理结果以及所述目标数据进行第二处理,包括:在所述多个计算单元中每个计算单元完成所述第一处理的情况下,通过所述多个计算单元中每个计算单元,分别对所述处理结果以及所述目标数据进行第二处理。
在一个可能的实现方式中,所述通过所述多个计算单元中每个计算单元,分别对所述处理结果以及所述目标数据进行第二处理之前,还包括:确定所述多个计算单元中完成所述第一处理的计算单元的数量;在完成所述第一处理的计算单元的数量大于或等于所述多个计算单元的总数量的情况下,确定所述多个计算单元中每个计算单元完成所述第一处理。
在一个可能的实现方式中,所述待处理数据包括图像数据;所述图像数据包括多个通道的数据;所述每组数据对应所述图像数据中一个通道的数据。
根据本公开的一方面,提供了一种数据处理装置,包括:
获取模块,用于获取待处理数据中至少一组数据的数据量;
分配模块,用于根据所述数据量以及至少一个计算单元的缓存容量,为所述待处理数据中每组数据分配计算单元;
处理模块,用于从内存中读取所述待处理数据,并将所述待处理数据缓存至分配的计算单元的缓存中,以通过所述分配的计算单元对所述缓存中的所述待处理数据进行处理。
在一个可能的实现方式中,所述处理模块,还用于通过所述分配的计算单元对所述待处理数据进行第一处理,得到处理结果;
所述处理模块,具体用于从所述缓存中获取所述待处理数据;通过所述分配的计算单元,对所述处理结果以及从所述缓存中获取的所述待处理数据进行第二处理。
在一个可能的实现方式中,所述分配模块,具体用于在所述数据量小于或等于所述至少一个计算单元中每个计算单元的缓存容量的情况下,将内存中的所述每组数据分配给一个计算单元。
在一个可能的实现方式中,所述分配模块,具体用于在所述数据量大于所述至少一个计算单元中每个计算单元的缓存容量的情况下,将内存中的所述每组数据分配给多个计算单元。
在一个可能的实现方式中,所述分配模块,具体用于在所述数据量小于或等于所述至少一个计算单元中部分计算单元的缓存容量,和/或所述数据量大于所述至少一个计算单元中部分计算单元的缓存容量的情况下,将内存中部分组数据中的每组数据分配给一个计算单元,并将内存中除所述部分组数据以外的每组数据分配给多个计算单元。
在一个可能的实现方式中,所述处理模块,具体用于从分配的多个计算单元中每个计算单元的缓存中获取属于一组数据的目标数据;通过所述多个计算单元中的每个计算单元,分别对所述处理结果以及所述目标数据进行第二处理。
在一个可能的实现方式中,所述处理模块,具体用于在所述多个计算单元中每个计算单元完成所述第一处理的情况下,通过所述多个计算单元中每个计算单元,分别对所述处理结果以及所述目标数据进行第二处理。
在一个可能的实现方式中,所述处理模块,还用于确定所述多个计算单元中完成所述第一处理的计算单元的数量;在完成所述第一处理的计算单元的数量大于或等于所述多个计算单元的总数量的情况下,确定所述多个计算单元中每个计算单元完成所述第一处理。
在一个可能的实现方式中,所述待处理数据包括图像数据;所述图像数据包括多个通道的数据;所述每组数据对应所述图像数据中一个通道的数据。
根据本公开的另一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:执行上述数据处理方法。
根据本公开的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述数据处理方法。
在本公开实施例中,可以获取待处理数据中至少一组数据的数据量,然后根据至少一组数据的数据量以及至少一个计算单元的缓存容量,为待处理数据中每组数据分配计算单元,从内存中读取待处理数据,并将待处理数据缓存至分配的计算单元的缓存中,以通过分配的计算单元对缓存中的待处理数据进行处理。这样,通过将待处理数据缓存在分配的计算单元的缓存中,在再次或多次读取待处理数据的情况下,可以在计算单元的缓存中读取,从而可以提高待处理数据的处理效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1示出根据本公开实施例的数据处理方法的流程图。
图2示出根据本公开实施例的数据处理过程一示例的框图。
图3示出根据本公开实施例的数据处理过程一示例的流程图。
图4示出根据本公开实施例的计算单元同步过程一示例的框图。
图5示出根据本公开实施例的数据处理过程一示例的流程图。
图6示出根据本公开实施例的数据处理装置的框图。
图7示出根据本公开实施例的电子设备示例的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
本公开实施例提供的数据处理方案,可以获取待处理数据中至少一组数据的数据量,根据至少一组数据的数据量以及至少一个计算单元的缓存容量,为待处理数据中每组数据分配计算单元,然后从内存中读取所述待处理数据,并将待处理数据缓存至分配的计算单元的缓存中,以通过所述分配的计算单元对缓存中的待处理数据进行处理。这样,可以在对待处理数据处理的过程中,可以将待处理数据存储在计算单元的缓存中,在再次或多次读取待处理数据的情况下,可以在计算单元的缓存中直接获取,减少通过计算单元向内存重复请求待处理数据的次数。
这里,计算单元可以是将GPU划分的更小物理单元,多个计算单元可以并行处理GPU的待处理数据。通常,利用计算单元读取内存中存储的待处理数据可以实现对待处理数据的处理,在对待处理数据的处理过程中,可能会利用计算单元多次读取待处理数据,即,需要通过计算单元多次读取内存来获取待处理数据,这会影响待处理数据的处理效率。本公开实施例提供的数据处理方案,可以减少计算单元访问内存的次数,从而减少计算单元访问内存消耗的时间,提高待处理数据的处理效率。这里内存可以理解为全局存储器。
本公开实施例提供的技术方案可以应用于GPU的任务处理、计算单元的调度、神经网络的使用及训练的扩展等等,本公开实施例对此不做限定。
图1示出根据本公开实施例的数据处理方法的流程图。该数据处理方法可以由终端设备、服务器或其它类型的电子设备执行,其中,终端设备可以为用户设备(UserEquipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(PersonalDigital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该数据处理方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。下面以电子设备作为执行主体为例对本公开实施例的数据处理方法进行说明。
步骤S11,获取待处理数据中至少一组数据的数据量。
在本公开实施例中,待处理数据可以是图像数据、文本数据、音频数据等多种类型的数据。待处理数据可以包括一组或多组数据,每组数据的数据量可以相同,也可以不同。电子设备可以按照预设规则将待处理数据划分为至少一组数据,例如,按照预设数据量将待处理数据平均分为至少一组数据。或者,电子设备也可以接收已经包括至少一组数据的待处理数据。
在待处理数据包括图像数据的情况下,图像数据可以包括多个通道的数据,上述每组数据对应图像数据中一个通道的数据。这里,通道可以表示待处理数据的一个维度参数。例如,在神经网络的训练过程中,待处理数据可以是多个样本图像,待处理数据可以表示为N×C×H×W,其中,N可以表示多个样本图像的个数,C可以表示通道的个数,H可以表示每个样本图像的高度,W可以表示每个样本图像的宽度,一个通道的数据可以表示为N×H×W,其中,N、C、H、W均为大于0的整数。这样,通过将图像数据中一个通道的数据作为一组数据,可以利用计算单元对图像数据包括的至少一个通道的数据进行并行处理,提高处理数据的效率。
这里,在每组数据的数据量相同的情况下,可以获取处理数据中一组数据的数据量,通过一组数据的数据量即可以确定待处理数据中每组数据的数据量。例如,在待处理数据包括图像数据的情况下,每组数据可以对应图像数据中一个通道的数据,这里可以获取图像数据包括的一个通道中数据的数据量,通过一个通道中数据的数据量,可以确定每个通过中数据的数据量。
步骤S12,根据所述数据量以及至少一个计算单元的缓存容量,为所述待处理数据中每组数据分配计算单元。
在本公开实施例中,不同计算单元的缓存容量可以相同,也可以不同。每个计算单元的缓存容量可以是每个计算单元的可容纳数据量的最大容量,即,可以是计算单元的缓存容量可以是最大缓存容量。或者,每个计算单元的缓存容量可以是每个计算单元的可容纳数据量的标准容量,即可以理解为,该缓存容量与最大缓存容量存在一定的空余容量,例如,可以是最大缓存容量的80%。
这里,可以根据至少一组数据的数据量以及至少一个计算单元的缓存容量,为每组数据分配处理该组数据的一个或多个计算单元。例如,可以将至少一组数据的数据量与至少一个计算单元的缓存容量进行比较,为每组数据分配缓存容量与该组数据的数据量相匹配的一个或多个计算单元。
步骤S13,从内存中读取所述待处理数据,并将所述待处理数据缓存至分配的计算单元的缓存中,以通过所述分配的计算单元对所述缓存中的所述待处理数据进行处理。
在本公开实施例中,在为每组数据分配的一个或多个计算单元之后,可以利用分配的一个或多个计算单元在内存中读取该被分配的每组数据,对每组数据进行处理,并可以将在内存中读取的每组数据缓存在分配的一个或多个计算单元的缓存中。在利用分配的一个或多个计算单元在对每组数据处理的过程中,当需要再次或多次读取待处理数据的情况下,可以利用分配的一个或多个计算单元直接在缓存中读取被分配的每组数据,从而可以减少访问全局内存的次数,节省待处理数据处理的时间。
这里,每个计算单元可以具有相应的缓存,不同的计算单元对应的缓存可以不同。在将待处理数据缓存在一个或多个计算单元的缓存中的情况下,可以将待处理数据中每组数据缓存在多个计算单元中,每个计算单元缓存一组数据的部分数据。在利用分配的计算单元对缓存中待处理数据进行处理的情况下,可以利用每个计算单元处理该计算单元缓存的部分数据。
在一个可能的实现方式中,通过分配的计算单元对待处理数据进行第一处理,得到处理结果,然后从缓存中获取所述待处理数据,再通过分配的计算单元,对处理结果以及从缓存中获取的所述待处理数据进行第二处理。
在该实现方式中,可以利用分配的一个或多个计算单元对待处理数据进行处理,每个计算单元的处理过程可以相同。该处理过程可以包括第一处理和第二处理。第一处理可以是前部分处理,不同计算单元的第一处理过程可以相同且相互独立,在利用一个或多个计算单元对待处理数据进行第一处理之后,可以利用每个计算单元得到的第一处理结果对内存中的全局参数进行更新,得到全局参数更新后可以得到总的处理结果。第二处理可以是后部分处理,不同计算单元的第二处理过程可以相同且相互独立。在得到总的处理结果之后,可以通过一个或多个计算单元在缓存中获取待处理数据,利用一个或多个计算单元对待处理数据和处理结果进行第二处理,利用每个计算单元得到的第二处理,从而可以减少访问内存的次数,提高数据处理的效率。
举例来说,可以利用至少一个计算单元对每组数据进行批归一化处理。批归一化处理可以是卷积神经网络中常用的操作。神经网络模型在训练过程中,神经网络模型中某些网络层的输入数据的数值分布不均匀,会出现方差过大的现象,这种现象会引起训练过程中反向传播的梯度消失,影响神经网络模型的训练速度。批归一化可以通过对网络层的输入数据(待处理数据)进行处理,将输入数据处理为均值为0、方差为1的分布。这里,可以利用至少一个计算单元对输入数据的每组数据进行批归一化处理,批归一化处理过程涉及两次输入数据的读取,从而可以在从内存中读取输入数据并将输入数据缓存至分配的计算单元的缓存中,通过分配的计算单元对输入数据进行第一处理,得到输入数据的均值和方差(处理结果),然后可以在计算单元的缓存中读取输入数据,进一步通过计算单元对读取的输入数据以及均值和方差进行第二处理,得到批归一化的结果。这样可以减少访问内存的次数,减少批归一化处理的时间。
通过上述数据处理方案,可以将待处理数据缓存在至少一个计算单元中,利用计算单元对待处理数据进行处理,在再次读取待处理数据的情况下,可以在计算单元的缓存中读取,从而减少对内存的访问次数,提高待处理数据的处理效率。
在一个可能的实现方式中,在所述数据量小于或等于所述至少一个计算单元中每个计算单元的缓存容量的情况下,将内存中的所述每组数据分配给一个计算单元。
在该可能的实现方式中,可以将每组数据的数据量与每个计算单元的缓存容量进行对比,如果每组数据的数据量小于或等于每个计算单元的缓存容量,则可以表明一个计算单元的缓存可以对一组数据进行缓存,进而可以将内存中待处理数据的每组数据分配给一个计算单元,利用一个计算单元处理待处理数据的一组数据。通过将每组数据的数据量与每个计算单元的缓存容量进行比较,可以快速地确定为每组数据分配的计算单元。
例如,一个计算单元的缓存容量为64KB,在每组数据的数据量小于或等于64KB的情况下,则可以将每组数据分配给一个计算单元。这里,一个计算单元的缓存可以包括共享内存部分和寄存器部分,其中,共享内存部分可以是该计算单元的共享内存全部存储空间,寄存器部分可以是该计算单元的寄存器的部分存储空间,假设一个计算单元的共享内存是96KB,寄存器是256KB,在利用计算单元处理待处理数据过程中会占用寄存器的存储资源,从而该计算单元的缓存可以包括96KB的共享内存部分和16KB的寄存器部分,该计算单元的缓存容量可以设置为共享内存的全部存储空间与寄存器的部分存储空间之和。
在该实现方式的一个示例中,在从内存中读取所述待处理数据之后,可以将每组数据缓存在分配的一个计算单元的缓存中,在利用分配的计算单元再次或多次读取每组数据的情况下,在分配的计算单元的缓存中读取每组数据。
在该示例中,在将内存中存储的每组数据分配给一个计算单元之后,可以利用该计算单元对该组数据进行缓存,并利用该计算单元对该组数据进行处理。在利用该计算单元对该组数据进行处理的过程中,可能会再次或多次读取该每组数据,在这种情况下,可以利用该计算单元在该计算单元的缓存中再次或多次读取该每组数据,从而可以减少对内存的访问次数,提高待处理数据的处理效率。
图2示出根据本公开实施例的数据处理过程一示例的框图。在对待处理数据进行批归一化的应用场景中,待处理数据可以是2个样本图像,对应2个通道,即样本图像的个数N=2,通道的数量C=2。待处理数据包括的每组数据可以对应一个通道的数据,待处理数据首先保存在内存中。当每组数据的数据量小于或等于一个计算单元的缓存容量的情况下,可以将每组数据分配给一个计算单元中,即,将通道1的数据分配给计算单元1,将通道2的数据分配给计算单元2。然后可以将每组数据缓存在为该组数据分配的计算单元的缓存中,并利用该计算单元计算该每组数据的均值和方差。后续在根据均值和方差计算该组数据的归一化值的情况下,可以利用该计算单元直接读取缓存中的该组数据,从而减少访问内存的次数,提高批归一化处理的效率。这里,计算单元的缓存可以是片上高速缓存。
在一个可能的实现方式中,在所述数据量大于所述至少一个计算单元中每个计算单元的缓存容量的情况下,将内存中的所述每组数据分配给多个计算单元。
在该实现方式中,可以将每组数据的数据量与至少一个计算单元中每个计算单元的缓存容量进行对比,在每组数据的数据量大于每个计算单元的缓存容量的情况下,可以表明一个计算单元的缓存不足以对一组数据进行缓存,需要多个计算单元的缓存对每组数据进行共同缓存,从而可以将内存中的每组数据分配给多个计算单元,利用这多个计算单元共同对该每组数据进行处理。这样,在一个计算单元的缓存不足以对一组数据进行缓存的情况下,可以将每组数据分配给多个计算单元。
这里,可以将每组数据分成多个部分数据,例如,可以每组数据按照预设数据量平均分为多个部分数据,将每组数据的多个部分数据分别分配给多个计算单元中,或者,可以根据多个计算单元的缓存容量,将一组数据分为与计算单元的缓存容量相匹配的多个部分数据,即,一个计算单元的缓存容量较大,可以为该计算单元分配数据量较大的部分数据,一个计算单元的缓存容量较小,可以为该计算单元分配数据量较小的部分数据。
在一个可能的实现方式中,在所述数据量小于或等于所述至少一个计算单元中部分计算单元的缓存容量,和/或所述数据量大于所述至少一个计算单元中部分计算单元的缓存容量的情况下,将内存中部分组数据中的每组数据分配给一个计算单元,并将内存中除所述部分组数据以外的每组数据分配给多个计算单元。
在该实现方式中,由于每组数据的数据量可以不同,或者,由于每个计算单元的缓存容量不同,从而待处理数据中的多组数据中存在一组或多组数据的数据量小于或等于部分计算单元的缓存容量,同时,还存在一组或多组数据的数据量大于部分计算单元的缓存容量的情况,在这种情况下,可以将内存中部分组数据中的每组数据分配给一个计算单元,即,将待处理数据中数据量小于或等于部分计算单元的缓存容量的一组或多组数据中的每组数据,分配给一个计算单元。相应地,可以将内存中另一部分组数据中的每组数据分配给多个计算单元,即,将待处理数据中数据量大于部分计算单元的缓存容量的一组或多组数据的每组数据,分配给多个计算单元。
这里,为了节省计算资源,可以为每组数据分配数量最少的计算单元,例如,在一个计算单元的缓存可容纳一组数据的情况下,可以将该组数据分配给一个计算单元。在一个计算单元的缓存难以容纳一组数据的情况下,可以将该组数据分配给数量最少的多个计算单元。这样可以节省计算资源,优化计算资源的配置。
举例来说,待处理数据包括3组数据,第一组数据的数据量小于或等于至少一个计算单元中的第一部分计算单元的缓存容量,可以将第一组数据分配给第一部分计算单元中的一个计算单元。第二组数据的数据量小于或等于至少一个计算单元中的第二部分计算单元的缓存容量,可以将第二组数据分配给第二部分计算单元中的一个计算单元。第三组数据的数据量大于至少一个计算单元中的第一部分计算单元和第二部分计算单元的缓存容量,可以将第三组数据分配给第一部分计算单元和第二部分计算单元中的多个计算单元,为了节省计算资源,还可以将第三组数据分配给数量最少的多个计算单元。这样,可以实现计算资源的合理配置。
在一个示例中,可以从分配的多个计算单元中每个计算单元的缓存中获取属于所述一组数据的目标数据,通过多个计算单元中的每个计算单元,分别对处理结果以及目标数据进行第二处理。
在该示例中,在将待处理数据中的一组数据分配给多个计算单元的情况下,可以利用多个计算单元对该组数据进行共同缓存,即,多个计算单元中的每个计算单元缓存分配的该组数据的部分数据,每个计算单元缓存的部分数据可以是目标数据。从而在通过分配的计算单元对缓存中的待处理数据进行处理的情况下,可以从该组数据分配的多个计算单元中的每个计算单元中获取属于每组数据的目标数据,利用每个计算单元对该计算单元的分配的目标数据进行第二处理。多个计算单元可以协同完成对该组数据的第二处理,从而可以减少对内存的访问次数,提高待处理数据的处理效率。
在一个示例中,可以在多个计算单元中每个计算单元完成第一处理的情况下,通过多个计算单元中每个计算单元,分别对处理结果以及目标数据进行第二处理。
在该示例中,可以利用多个计算单元中每个计算单元对目标数据进行相同的处理。该处理过程可以包括上述第一处理和上述第二处理。由于第二处理会涉及多个计算单元在第一处理后得到的处理结果,从而在多个计算单元中每个计算单元完成第一处理的情况下,即,在多个计算单元均完成第一处理之后,通过多个计算单元中每个计算单元对缓存的目标数据和处理结果进行第二处理。这样可以使处理一组数据的多个计算单元进行同步,从而使第二处理过程中使用的处理结果可以统一。
在一个示例中,在通过多个计算单元中每个计算单元,分别对处理结果以及目标数据进行第二处理之前,还可以确定多个计算单元中完成第一处理的计算单元的数量,在完成第一处理的计算单元的数量大于或等于多个计算单元的总数量的情况下,确定多个计算单元中每个计算单元完成第一处理。
在该示例中,可以通过多个计算单元中完成第一处理的计算单元的数量,确定多个计算单元中每个计算单元是否完成第一处理。例如,可以利用一个计算单元检测多个计算单元中每个计算单元的任务处理进程,在检测到每个计算单元完成第一处理的情况下,该计算单元可以通知其他多个计算单元进行第二处理。或者,可以利用内存中的协同参数指示这多个计算单元中完成第一处理的计算单元的数据,每当多个计算单元中的一个计算单元完成第一处理之后,可以利用该计算单元对协同参数进行更新,如,将协同参数初始的参数值设置为0,在某个计算单元对分配的目标数据进行第一处理之后,可以将协同参数的参数值加1,实现协同参数的累加。在多个计算单元读取协同参数大于或等于多个计算单元的总数量的情况下,可以确定多个计算单元均完成第一处理。
图3示出根据本公开实施例的数据处理过程一示例的流程图。假设存在两个计算单元,计算单元1和计算单元2,在利用计算单元1进行第一处理之后,可以先执行内存栅栏操作。内存栅栏操作可以理解为异步执行的两组操作,在第一组操作执行完成之后,才可以开始执行第二组操作。这种情况下,可以在第一组操作之后***内存栅栏操作,可以将第一处理和第二处理两个异步执行的处理进行分割,以使第一处理在执行完毕并将处理结果写入内存之后,开始执行第二处理。每计算单元1完成第一处理之后,可以将协同参数counter加1,然后判断协同参数counter是否大于或等于2,如果counter≥2,则可以用计算单元1进行第二处理。否则,可以重复判断counter是否大于或等于2。相应地,可以利用计算单元2对分配的目标数据进行与计算单元1相同的处理。这里,将协同参数counter加1的操作可以是原子操作。原子操作可以理解为,在利用当前的计算单元对内存中的某个参数进行原子操作的情况下,其他计算单元无法对该参数进行操作,在利用当前的计算单元对该参数进行的操作完成之后,其他计算单元可以对该参数进行操作。
在一个示例中,可以为分配有不同组数据的计算单元设置不同的协同参数。
图4示出根据本公开实施例的计算单元同步过程一示例的框图。在该示例中,被分配有不同的每组数据的计算单元可以对应不同的协同参数,这样,利用不同的协同参数可以使被分配有不同组数据的计算单元分别进行同步。举例来说,假设存在5个计算单元,其中,计算单元1、计算单元3、计算单元5对应数据组1,计算单元1、计算单元3、计算单元5需要进行同步。计算单元2和计算单元4对应数据组2,计算单元2和计算单元4需要进行同步。这种情况下,可以设置两个协同参数counter1和counter2,counter1对应每组数据1,counter2对应每组数据2。在利用计算单元1、计算单元3、计算单元5分别对每组数据1的目标数据进行第一处理之后,可以分别将counter1加1,在counter1≥3的情况下,可以利用计算单元1、计算单元3、计算单元5分别进行第二处理。在利用计算单元2和计算单元4分别对每组数据2的目标数据进行第一处理之后,可以分别将counter2加1,当counter2≥2的情况下,可以利用计算单元2和计算单元4分别进行第二处理。这样可以实现了任意多个计算单元的灵活同步,使多个计算单元协同工作。并且,在同步过程中,能够将一部分计算单元采取一种同步方式,并对另一部分计算单元采取另一种同步方式,在每种同步方式执行的过程中,只需要考虑采取当前这一种同步方式进行同步的这部分计算单元即可。比如,上述的计算单元1、计算单元3、计算单元5进行同步,计算单元2和计算单元4进行同步。
图5示出根据本公开实施例的数据处理过程一示例的流程图。在一个示例中,可以利用多个计算单元对每组数据进行批归一化处理。在该示例中,对于较大数据量的每组数据,单个计算单元的缓存无法容纳一个每组数据,从而可以将一组数据分配给多个计算单元,同时利用这些计算单元的缓存一个通道的数据。在批归一化处理过程中,可以分别利用多个计算单元计算在内存中获取被分配的目标数据,然后分别利用每个计算单元计算目标数据的总和sum1以及平方和squaresum1,然后利用计算的总和sum1以及平方和squaresum1对内存中存储的每组数据的总和sum以及平方和squaresum进行更新,即,sum=sum0+sum1,squaresum=squaresum+squaresum1。这里,对每组数据的总和sum以及平方和squaresum进行更新的操作可以均是原子操作,sum和squaresum的初始值为0。然后每当一个计算单元对每组数据的总和sum以及平方和squaresum进行更新之后,可以先进行内存栅栏操作,然后将内存中的协同参数加1。在协同参数的参数值大于或等于n的情况下,可以利用每个计算单元读取内存中的sum和squaresum,并在每个计算单元的缓存中获取相应的目标数据,利用读取sum和squaresum对目标数据中的每个数据进行归一化,实现对该组数据的批归一化处理。
这里,在对待处理数据的批归一化处理过程中,利用每个计算单元对分配的目标数据进行缓存,在再次读取部分数据的情况下,可以直接在相应的计算单元的缓存中获取,减少对内存的访问次数,提高批归一化处理的效率。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。
此外,本公开还提供了装置、电子设备、计算机可读存储介质、程序,上述均可用来实现本公开提供的任一种数据处理方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
图6示出根据本公开实施例的数据处理装置的框图,如图6所示,所述装置包括:
获取模块61,用于获取待处理数据中至少一组数据的数据量;
分配模块62,用于根据所述数据量以及至少一个计算单元的缓存容量,为所述待处理数据中每组数据分配计算单元;
处理模块63,用于从内存中读取所述待处理数据,并将所述待处理数据缓存至分配的计算单元的缓存中,以通过所述分配的计算单元对所述缓存中的所述待处理数据进行处理。
在一个可能的实现方式中,所述处理模块63,还用于通过所述分配的计算单元对所述待处理数据进行第一处理,得到处理结果;
所述处理模块63,具体用于从所述缓存中获取所述待处理数据;通过所述分配的计算单元,对所述处理结果以及从所述缓存中获取的所述待处理数据进行第二处理。
在一个可能的实现方式中,所述分配模块62,具体用于在所述数据量小于或等于所述至少一个计算单元中每个计算单元的缓存容量的情况下,将内存中的所述每组数据分配给一个计算单元。
在一个可能的实现方式中,所述分配模块62,具体用于在所述数据量大于所述至少一个计算单元中每个计算单元的缓存容量的情况下,将内存中的所述每组数据分配给多个计算单元。
在一个可能的实现方式中,所述分配模块62,具体用于在所述数据量小于或等于所述至少一个计算单元中部分计算单元的缓存容量,和/或所述数据量大于所述至少一个计算单元中部分计算单元的缓存容量的情况下,将内存中部分组数据中的每组数据分配给一个计算单元,并将内存中除所述部分组数据以外的每组数据分配给多个计算单元。
在一个可能的实现方式中,所述处理模块62,具体用于从分配的多个计算单元中每个计算单元的缓存中获取属于一组数据的目标数据;通过所述多个计算单元中的每个计算单元,分别对所述处理结果以及所述目标数据进行第二处理。
在一个可能的实现方式中,所述处理模块62,具体用于在所述多个计算单元中每个计算单元完成所述第一处理的情况下,通过所述多个计算单元中每个计算单元,分别对所述处理结果以及所述目标数据进行第二处理。
在一个可能的实现方式中,所述处理模块62,还用于确定所述多个计算单元中完成所述第一处理的计算单元的数量;在完成所述第一处理的计算单元的数量大于或等于所述多个计算单元的总数量的情况下,确定所述多个计算单元中每个计算单元完成所述第一处理。
在一个可能的实现方式中,所述待处理数据包括图像数据;所述图像数据包括多个通道的数据;所述每组数据对应所述图像数据中一个通道的数据。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为上述方法。
电子设备可以被提供为终端、服务器或其它形态的设备。
图7是根据一示例性实施例示出的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器。参照图7,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作***,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以完成上述方法。
本公开可以是***、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (20)
1.一种数据处理方法,其特征在于,包括:
获取待处理数据中至少一组数据的数据量;
根据所述数据量以及至少一个计算单元的缓存容量,为所述待处理数据中每组数据分配计算单元;
从内存中读取所述待处理数据,并将所述待处理数据缓存至分配的计算单元的缓存中,以通过所述分配的计算单元对所述缓存中的所述待处理数据进行处理。
2.根据权利要求1所述的方法,其特征在于,在所述从内存中读取所述待处理数据之后,所述方法还包括:
通过所述分配的计算单元对所述待处理数据进行第一处理,得到处理结果;
所述通过所述分配的计算单元对所述缓存中的所述待处理数据进行处理,包括:
从所述缓存中获取所述待处理数据;
通过所述分配的计算单元,对所述处理结果以及从所述缓存中获取的所述待处理数据进行第二处理。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述数据量以及至少一个计算单元的缓存容量,为所述待处理数据中每组数据分配计算单元,包括:
在所述数据量小于或等于所述至少一个计算单元中每个计算单元的缓存容量的情况下,将内存中的所述每组数据分配给一个计算单元。
4.根据权利要求1或2所述的方法,其特征在于,所述根据所述数据量以及至少一个计算单元的缓存容量,为所述待处理数据中每组数据分配计算单元,包括:
在所述数据量大于所述至少一个计算单元中每个计算单元的缓存容量的情况下,将内存中的所述每组数据分配给多个计算单元。
5.根据权利要求1或2所述的方法,其特征在于,所述根据所述数据量以及至少一个计算单元的缓存容量,为所述待处理数据中每组数据分配计算单元,包括:
在所述数据量小于或等于所述至少一个计算单元中部分计算单元的缓存容量,和/或所述数据量大于所述至少一个计算单元中部分计算单元的缓存容量的情况下,将内存中部分组数据中的每组数据分配给一个计算单元,并将内存中除所述部分组数据以外的每组数据分配给多个计算单元。
6.根据权利要求4或5所述的方法,其特征在于,对于分配给多个计算单元的一组数据,所述通过所述分配的计算单元对所述缓存中的所述待处理数据进行处理,包括:
从分配的多个计算单元中每个计算单元的缓存中获取属于一组数据的目标数据;
通过所述多个计算单元中的每个计算单元,分别对所述处理结果以及所述目标数据进行第二处理。
7.根据权利要求6所述的方法,其特征在于,所述通过所述多个计算单元中的每个计算单元,分别对所述处理结果以及所述目标数据进行第二处理,包括:
在所述多个计算单元中每个计算单元完成所述第一处理的情况下,通过所述多个计算单元中每个计算单元,分别对所述处理结果以及所述目标数据进行第二处理。
8.根据权利要求7所述的方法,其特征在于,所述通过所述多个计算单元中每个计算单元,分别对所述处理结果以及所述目标数据进行第二处理之前,还包括:
确定所述多个计算单元中完成所述第一处理的计算单元的数量;
在完成所述第一处理的计算单元的数量大于或等于所述多个计算单元的总数量的情况下,确定所述多个计算单元中每个计算单元完成所述第一处理。
9.根据权利要求1至8任意一项所述的方法,其特征在于,所述待处理数据包括图像数据;所述图像数据包括多个通道的数据;所述每组数据对应所述图像数据中一个通道的数据。
10.一种数据处理装置,其特征在于,包括:
获取模块,用于获取待处理数据中至少一组数据的数据量;
分配模块,用于根据所述数据量以及至少一个计算单元的缓存容量,为所述待处理数据中每组数据分配计算单元;
处理模块,用于从内存中读取所述待处理数据,并将所述待处理数据缓存至分配的计算单元的缓存中,以通过所述分配的计算单元对所述缓存中的所述待处理数据进行处理。
11.根据权利要求10所述的装置,其特征在于,所述处理模块,还用于通过所述分配的计算单元对所述待处理数据进行第一处理,得到处理结果;
所述处理模块,具体用于从所述缓存中获取所述待处理数据;通过所述分配的计算单元,对所述处理结果以及从所述缓存中获取的所述待处理数据进行第二处理。
12.根据权利要求10或11所述的装置,其特征在于,所述分配模块,具体用于在所述数据量小于或等于所述至少一个计算单元中每个计算单元的缓存容量的情况下,将内存中的所述每组数据分配给一个计算单元。
13.根据权利要求10或11所述的装置,其特征在于,所述分配模块,具体用于在所述数据量大于所述至少一个计算单元中每个计算单元的缓存容量的情况下,将内存中的所述每组数据分配给多个计算单元。
14.根据权利要求10或11所述的装置,其特征在于,所述分配模块,具体用于在所述数据量小于或等于所述至少一个计算单元中部分计算单元的缓存容量,和/或所述数据量大于所述至少一个计算单元中部分计算单元的缓存容量的情况下,将内存中部分组数据中的每组数据分配给一个计算单元,并将内存中除所述部分组数据以外的每组数据分配给多个计算单元。
15.根据权利要求13或14所述的装置,其特征在于,所述处理模块,具体用于从分配的多个计算单元中每个计算单元的缓存中获取属于一组数据的目标数据;通过所述多个计算单元中的每个计算单元,分别对所述处理结果以及所述目标数据进行第二处理。
16.根据权利要求15所述的装置,其特征在于,所述处理模块,具体用于在所述多个计算单元中每个计算单元完成所述第一处理的情况下,通过所述多个计算单元中每个计算单元,分别对所述处理结果以及所述目标数据进行第二处理。
17.根据权利要求16所述的装置,其特征在于,所述处理模块,还用于确定所述多个计算单元中完成所述第一处理的计算单元的数量;在完成所述第一处理的计算单元的数量大于或等于所述多个计算单元的总数量的情况下,确定所述多个计算单元中每个计算单元完成所述第一处理。
18.根据权利要求10至17任意一项所述的装置,其特征在于,所述待处理数据包括图像数据;所述图像数据包括多个通道的数据;所述每组数据对应所述图像数据中一个通道的数据。
19.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为调用所述存储器存储的指令,以执行权利要求1至9中任意一项所述的方法。
20.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至9中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911364894.1A CN111158907B (zh) | 2019-12-26 | 2019-12-26 | 数据处理方法及装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911364894.1A CN111158907B (zh) | 2019-12-26 | 2019-12-26 | 数据处理方法及装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111158907A true CN111158907A (zh) | 2020-05-15 |
CN111158907B CN111158907B (zh) | 2024-05-17 |
Family
ID=70558151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911364894.1A Active CN111158907B (zh) | 2019-12-26 | 2019-12-26 | 数据处理方法及装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111158907B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113011563A (zh) * | 2021-03-19 | 2021-06-22 | 北京大学 | 基于gpu的卷积神经网络批归一化处理方法 |
WO2022105473A1 (en) * | 2020-11-17 | 2022-05-27 | Zhejiang Dahua Technology Co., Ltd. | Systems and methods for data storage and computing |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103608768A (zh) * | 2013-04-01 | 2014-02-26 | 华为技术有限公司 | 一种数据预取方法、相关装置及*** |
CN103778071A (zh) * | 2014-01-20 | 2014-05-07 | 华为技术有限公司 | 缓存的空间分配方法及装置 |
CN105426322A (zh) * | 2015-12-31 | 2016-03-23 | 华为技术有限公司 | 一种数据的预取方法及装置 |
CN106201980A (zh) * | 2015-01-21 | 2016-12-07 | 联发科技(新加坡)私人有限公司 | 处理单元及其处理方法 |
CN107810490A (zh) * | 2015-06-18 | 2018-03-16 | 华为技术有限公司 | 用于基于目录的缓存一致性的***和方法 |
-
2019
- 2019-12-26 CN CN201911364894.1A patent/CN111158907B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103608768A (zh) * | 2013-04-01 | 2014-02-26 | 华为技术有限公司 | 一种数据预取方法、相关装置及*** |
CN103778071A (zh) * | 2014-01-20 | 2014-05-07 | 华为技术有限公司 | 缓存的空间分配方法及装置 |
CN106201980A (zh) * | 2015-01-21 | 2016-12-07 | 联发科技(新加坡)私人有限公司 | 处理单元及其处理方法 |
CN107810490A (zh) * | 2015-06-18 | 2018-03-16 | 华为技术有限公司 | 用于基于目录的缓存一致性的***和方法 |
CN105426322A (zh) * | 2015-12-31 | 2016-03-23 | 华为技术有限公司 | 一种数据的预取方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022105473A1 (en) * | 2020-11-17 | 2022-05-27 | Zhejiang Dahua Technology Co., Ltd. | Systems and methods for data storage and computing |
CN113011563A (zh) * | 2021-03-19 | 2021-06-22 | 北京大学 | 基于gpu的卷积神经网络批归一化处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111158907B (zh) | 2024-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11442779B2 (en) | Method, device and computer program product for determining resource amount for dedicated processing resources | |
CN110413812B (zh) | 神经网络模型的训练方法、装置、电子设备及存储介质 | |
CN110288625B (zh) | 用于处理图像的方法和装置 | |
CN111984400A (zh) | 神经网络的内存分配方法及装置 | |
CN111158907B (zh) | 数据处理方法及装置、电子设备和存储介质 | |
CN112799793B (zh) | 调度方法及装置、电子设备和存储介质 | |
CN112785676B (zh) | 一种图像渲染方法、装置、设备和存储介质 | |
CN114819084A (zh) | 模型推理方法、装置、设备及存储介质 | |
CN112801882B (zh) | 图像处理方法及装置、存储介质和电子设备 | |
CN111915689A (zh) | 用于生成目标函数的方法、装置、电子设备和计算机可读介质 | |
US11531782B1 (en) | Systems and methods for finding a value in a combined list of private values | |
CN111756833B (zh) | 节点处理方法、装置、电子设备及计算机可读介质 | |
CN115346099A (zh) | 基于加速器芯片的图像卷积方法、芯片、设备及介质 | |
CN114595047A (zh) | 一种批量任务处理方法和装置 | |
CN110209851B (zh) | 模型训练方法、装置、电子设备及存储介质 | |
CN112163176A (zh) | 数据存储方法、装置、电子设备和计算机可读介质 | |
CN112380883A (zh) | 模型训练方法、机器翻译方法、装置、设备及存储介质 | |
CN110917625A (zh) | 一种游戏装备显示方法、装置、电子设备及存储介质 | |
CN112839071A (zh) | 训练***、训练数据访问方法及装置、电子设备、介质 | |
CN113781494A (zh) | 图像分割方法、装置、电子设备和计算机可读介质 | |
CN114205416B (zh) | 资源缓存方法、装置、电子设备和计算机可读介质 | |
CN112215774B (zh) | 模型训练和图像去雾方法、装置、设备和计算机可读介质 | |
CN118093143B (zh) | 大语言模型解码阶段的数据调度方法和装置 | |
CN112215789B (zh) | 图像去雾方法、装置、设备和计算机可读介质 | |
CN115965070B (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 |