CN116048797A - 数据处理方法、装置、电子设备及存储介质 - Google Patents
数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116048797A CN116048797A CN202310024827.5A CN202310024827A CN116048797A CN 116048797 A CN116048797 A CN 116048797A CN 202310024827 A CN202310024827 A CN 202310024827A CN 116048797 A CN116048797 A CN 116048797A
- Authority
- CN
- China
- Prior art keywords
- data
- sub
- target
- data sets
- processed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 30
- 230000015654 memory Effects 0.000 claims abstract description 118
- 230000006399 behavior Effects 0.000 claims abstract description 26
- 230000003068 static effect Effects 0.000 claims abstract description 19
- 238000004364 calculation method Methods 0.000 claims description 42
- 238000000034 method Methods 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 20
- 239000012634 fragment Substances 0.000 claims description 14
- 238000013507 mapping Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 8
- 230000000903 blocking effect Effects 0.000 description 7
- 238000000638 solvent extraction Methods 0.000 description 6
- 108091028043 Nucleic acid sequence Proteins 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 108090000623 proteins and genes Proteins 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 238000011524 similarity measure Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 239000000758 substrate Substances 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/5061—Partitioning or combining of resources
-
- 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
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- 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
技术领域
本公开涉及近存计算领域,尤其涉及一种数据处理方法、装置、电子设备、存储介质和程序产品。
背景技术
由于内存技术与处理器技术之间长期不同步的发展,内存性能限制导致高性能处理器难以发挥应有的功效,这种内存瓶颈现象被称为“存储墙”(Memory Wall)。
为了解决“存储墙”问题,现有技术中通常采用近存计算(near memoryprocessing,NMP)模型执行计算任务。近存计算模型将数据为核心主体,把计算部件尽可能靠近数据存放的位置,由此缩短数据在存储和计算部件之间的传输路径,从而降低了访存延迟和功耗。
但现有的近存计算模型存在需要处理器进行频繁通信以完成远程访问和数据传递,引入较大的中断处理开销和增加访问远程的延时和功耗。或者,处理器会被分配到很多无效的计算任务,导致***中大量的计算资源和访存带宽被严重浪费,有效利用比例低下。
发明内容
鉴于上述问题,本公开提供了一种数据处理方法、装置、电子设备、存储介质和程序产品。
根据本公开的第一个方面,提供了一种数据处理方法,包括:根据待处理数据集的访存行为特征,将待处理数据集划分为多个子数据集;根据多个子数据集的动态特征和静态特征,确定多个子数据集的目标内存地址,使多个子数据集分别被存入对应的目标内存地址中;从多个子数据集中预测得到与目标计算任务关联的至少一个目标子数据集;以及通过至少一个目标子数据集对应的目标内存地址,访问至少一个目标子数据集,以在本地执行目标计算任务。
根据本公开的实施例,根据待处理数据集的访存行为特征,将待处理数据集划分为多个子数据集,包括:分别获取待处理数据集中多个待处理数据的数据类别;根据数据类别,分别确定多个待处理数据的访存行为特征,访存行为特征包括待处理数据的数据量、局域性特征、访存频次和多个待处理数据之间的相关性;在确定待处理数据的数据量、局域性特征和访存频次均符合第一预设条件的情况下,将待处理数据划分到多个子数据集中;以及根据确定多个待处理数据之间的相关性符合第二预设条件的情况下,将多个待处理数据划分到相同的子数据集中;其中,多个子数据集中的每个子数据集包括至少一个待处理数据,多个待处理数据中的每个待处理数据被划分到至少一个子数据集中。
根据本公开的实施例,根据多个子数据集的动态特征和静态特征,确定多个子数据集的目标内存地址,使多个子数据集分别被存入对应的目标内存地址中,包括:分别获取多个子数据集的动态特征和静态特征,动态特征包括子数据集的计算特征,静态特征包括子数据集的数据特征;根据计算特征和数据特征,将多个子数据集映射为多个数据组,多个数据组中的每个数据组包括至少一个子数据集,使多个数据组之间满足计算负载均衡或数据负载均衡;分别将多个数据组与多个存储控制器进行关联,以根据多个存储控制器与内存的对应关系,计算多个数据组中至少一个子数据集的目标内存地址;以及将多个数据组中至少一个子数据集存入对应的目标内存地址。
根据本公开的实施例,分别将多个数据组与多个存储控制器进行关联,包括:分别获取多个存储控制器在内存中对应的存储容量;在存储容量的约束下,分别将多个数据组与多个存储控制器进行关联,使数据组的数据量小于或等于关联的存储控制器对应的存储容量。
根据本公开的实施例,从多个子数据集中预测得到与目标计算任务关联的至少一个目标子数据集,包括:获取目标计算任务的运算逻辑;分别计算多个子数据集与运算逻辑的关联度;以及根据关联度,从多个子数据集中确定至少一个目标子数据集。
根据本公开的实施例,在多个子数据集包括N个子数据集,执行目标计算任务需要m个指定子数据集,从多个子数据集中预测得到与目标计算任务关联的至少一个目标子数据集,还包括:从N个子数据集中预测得到与目标计算任务关联的n个目标子数据集,n个目标子数据集包括m个指定子数据集,N≥n≥m。
根据本公开的实施例,通过至少一个目标子数据集对应的目标内存地址,访问至少一个目标子数据集,以在本地执行目标计算任务,包括:将目标计算任务分发至多个处理器,多个处理器与多个存储控制器对应;利用多个存储控制器在目标内存地址中访问对应的目标子数据集,使对应的多个处理器分别基于对应的目标子数据集在本地执行目标计算任务。
根据本公开的实施例,待处理数据集包括参考序列和索引数据,根据待处理数据集的访存行为特征,将待处理数据集映射为多个子数据集,包括:根据参考序列的访存行为特征,将参考序列划分为多个子序列片段;根据索引数据与多个子序列片段的关联性,分别构建多个子索引数据,多个子索引数据分别与多个子序列片段对应;以及将多个子索引数据和多个子序列片段映射为多个子数据集。
本公开的第二方面提供了一种数据处理装置,包括:划分模块,用于根据待处理数据集的访存行为特征,将待处理数据集划分为多个子数据集;确定模块,用于根据多个子数据集的动态特征和静态特征,确定多个子数据集的目标内存地址,使多个子数据集分别被存入对应的目标内存地址中;预测模块,用于从多个子数据集中预测得到与目标计算任务关联的至少一个目标子数据集;以及访问模块,用于通过至少一个目标子数据集对应的目标内存地址,访问至少一个目标子数据集,以在本地执行目标计算任务。
本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行上述方法。
本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述方法。
本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述方法。
根据本公开提供的数据处理方法、装置、设备、介质和程序产品,通过数据集分块机制保证数据处理过程的局部性,这使得处理器只在局部数据集上完成计算任务。此外,通过任务预测分发,避免了将计算任务分发给无需参与计算的处理器,降低数据处理过程的冗余性。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的数据处理方法、装置、设备、介质和程序产品的***架构图;
图2示意性示出了根据本公开实施例的数据处理方法的流程图;
图3示意性示出了根据本公开实施例的存储子数据集的流程图;
图4示意性示出了根据本公开实施例的预测子数据集的流程图;
图5示意性示出了根据本公开实施例的预测子数据集的流程图;
图6A示意性示出了根据本公开实施例的存储子数据集的示意图;
图6B示意性示出了根据本公开实施例的预测子数据集的示意图;
图7示意性示出了根据本公开实施例的数据处理装置的结构框图;以及
图8示意性示出了根据本公开实施例的适于实现数据处理方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。
在本公开的技术方案中,所涉及的数据(如包括但不限于用户个人信息)的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
本公开的实施例提供了一种数据处理方法,包括:根据待处理数据集的访存行为特征,将待处理数据集划分为多个子数据集;根据多个子数据集的动态特征和静态特征,确定多个子数据集的目标内存地址,使多个子数据集分别被存入对应的目标内存地址中;从多个子数据集中预测得到与目标计算任务关联的至少一个目标子数据集;以及通过至少一个目标子数据集对应的目标内存地址,访问至少一个目标子数据集,以在本地执行目标计算任务。
在本公开的技术方案中,所涉及的数据(如包括但不限于用户个人信息)的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
图1示意性示出了根据本公开实施例的数据处理方法、装置、设备、介质和程序产品的***架构图。
如图1所示,在近存计算模型的***架构100中,计算任务110会被分发至多个处理器120、130、140中,由多个处理器120、130、140对应的存储控制器(Memory Controller,MC)150、160、170访问内存180内存块(bank)中的数据,使多个处理器120、130、140基于访问到的数据完成计算任务110。例如,内存块1可以为处理器120的本地内存块,内存块2可以为处理器130的本地内存块,内存块3可以为处理器140的本地内存块。
图1中所示出的处理器、MC和内存块的数量仅为示意性地说明,并不对近存计算模型的***架构100中的处理器、MC和内存块的数量进行限定。
近存计算模型的***架构100可以为基于近3D动态随机存取内存(DynamicRandom Access Memory,DRAM)计算模型的***架构。3D DRAM使用3D堆叠技术将多个晶片堆叠在一起,并使用硅通孔(through silicon via,TSV)或混合键合(hybrid bonding,HB)技术将多个晶片之间互联,实现垂直方向的数据通信。其中,计算芯片作为近3D DRAM计算模型的逻辑层,一层或多层DRAM芯片作为近3D DRAM计算模型的存储层。
3D DRAM计算模型通过集成逻辑层与存储层可以实现近存计算,降低数据处理过程的访存延时。此外,由于TSV/HB技术使得逻辑层可以直接访问内存块(bank)中的数据,因此3D DRAM计算模型具有良好的访存带宽。
3D DRAM计算模型内部具有大量空域独立的MC接口,多个MC 150、160、170可以通过MC接口访问本地bank中的数据。多个MC 150、160、170同时工作时,会产生巨大的内部访问带宽。多个MC 150、160、170对应的多个处理器120、130、140为3D DRAM内部的多个处理器。
多个MC 150、160、170还可以通过逻辑层的互联网络访问远程bank中的数据。例如,MC 150通过逻辑层的互联网络访问内存块2中的数据。由于多个MC 150、160、170在晶片上物理距离较远,使得MC之间可能产生较大的通信延迟,因此MC 150、160、170通过逻辑层的互联网络访问远程bank的延时会远大于MC 150、160、170直接访问本地bank中的数据的延迟,MC 150、160、170访问远程bank还会引入额外的数据通信开销。
例如,计算任务110所需要的数据集可以分布在内存180的不同bank中,计算任务110被分配到不同的处理器120、130、140中,以对全局数据进行并行计算。处理器120、130、140在完成所分配到的计算任务时,可以分别通过对应的MC 150、160、170访问本地bank中的数据,也可以通过互联网络与其它处理器进行数据通信以进行全局数据访问。例如,处理器120通过对应的MC 150访问内存块1中的数据,处理器120通过数据远程存储访问或远程函数调用与处理器130进行通信,以通过MC 160访问内存块2中的数据。
但是,在全局数据访问时,处理器之间需要进行频繁通信以完成远程访问和数据传递。频繁通信会对处理器引入较大的中断处理开销,数据在互联网络中的传递也会增加访问远程MC的延时和功耗。此外,3D DRAM虽然能够实现晶片间的互联,但所能提供的通信带宽可能远远小于片内MC提供的访存带宽,因此处理器通过互联网络访问远程bank的通信带宽受限。
例如,计算任务110所需要的数据集划分为多个独立的子数据集并分配到不同的bank中,分别形成MC 150、160、170的本地bank,由MC 150、160、170独立访问,处理器120、130、140分别通过本地bank中的数据执行计算任务。计算任务110基于广播模型被广播到所有的处理器120、130、140中,处理器120、130、140接收到计算任务110后则开始对对应的MC150、160、170管理的局部数据进行相应计算。
但是,每个计算任务110往往只涉及较少数量的子数据集,每个接收到计算任务110的处理器120、130、140不一定需要处理该计算任务110。但广播模型为了保证计算结果的准确性和完整性,会将每个计算任务110都发送至所有处理器120、130、140,这使得处理器120、130、140中的部分处理器会被分配到很多无效的任务,造成数据处理过程的冗余性,从而会导致3D DRAM计算模型中大量的计算资源和访存带宽被严重浪费,有效利用比例低下,无法充分发挥其潜力。
通过本公开实施例,基于计算任务和多个子数据集之间的关联性,对计算任务所需的子数据集进行预测,使计算任务只由所需的子数据集对应的处理器执行,从而保证计算过程的高访存并行性和较好的局部性,充分发挥3D DRAM的高带宽和低延迟优势。高访存并行性确保多个独立MC提供的带宽能够被充分利用,而局部性确保处理器尽可能只通过本地MC访问本地bank中的数据,尽可能地减少远程访问以避免通信开销和延时。
图2示意性示出了根据本公开实施例的数据处理方法的流程图。
如图2所示,数据处理方法包括操作S210~操作S240。
在操作S210,根据待处理数据集的访存行为特征,将待处理数据集划分为多个子数据集。
在本公开实施例中,待处理数据集为目标计算任务的相关领域所涉及的数据集。例如,待处理数据集为计算任务开始之前应当存放于内存中的数据,例如图计算任务中的图结构,神经网络中的网络结构数据,基因序列匹配中的参考序列与其索引数据等。
对待处理数据集中待处理数据的访存行为特征进行分析,以对数据集进行粗粒度分块,得到多个独立子数据集。多个独立子数据集之间可以由多个处理器进行并行处理。
在操作S220,根据多个子数据集的动态特征和静态特征,确定多个子数据集的目标内存地址,使多个子数据集分别被存入对应的目标内存地址中。
在本公开实施例中,根据多个子数据集的动态特征和静态特征,可以对多个子数据集进行重新排序和聚类,从而确定所有子数据集在3D DRAM存储层中的数据布局,实现子数据集到3D DRAM存储层的空域映射。
位于3D DRAM存储层的子数据集分别由多个独立的MC访问,每个MC对应的子数据集形成MC的本地数据。
在操作S230,从多个子数据集中预测得到与目标计算任务关联的至少一个目标子数据集。
在本公开实施例中,可以采用可重构预测器对每个输入的目标计算任务所涉及的子数据集进行预测,确定与目标计算任务关联的至少一个目标子数据集,从而可以将目标计算任务分发到预测得到的至少一个目标子数据集对应的处理器。由与目标计算任务关联的至少一个目标子数据集对应的处理器处理目标计算任务,可以实现计算过程的高访存并行性和局部性,充分发挥3D DRAM的高带宽和低延迟优势,减少通信开销和延时。
在操作S240,通过至少一个目标子数据集对应的目标内存地址,访问至少一个目标子数据集,以在本地执行目标计算任务。
根据预测得到的至少一个目标子数据集,由与目标计算任务关联的至少一个目标子数据集对应的处理器基于本地数据执行目标计算任务,得到计算结果,并可以将计算结果通过片上网络写回到预先定义的地址空间。
处理器基于本地数据执行目标计算任务时,每个处理器仅需要通过对应的MC防问本地数据,而不需要通过互联资源访问远程MC之间的数据或者与其它处理器进行任何数据交互。多个处理器之间可以并行通过对应MC访问本地数据,且并行完成不同的计算任务,从而提高计算效率。
在本公开实施例中,在操作S210,根据待处理数据集的访存行为特征,将待处理数据集划分为多个子数据集的操作可以包括:分别获取待处理数据集中多个待处理数据的数据类别;根据数据类别,分别确定多个待处理数据的访存行为特征,访存行为特征包括待处理数据的数据量、局域性特征、访存频次和多个待处理数据之间的相关性;在确定待处理数据的数据量、局域性特征和访存频次均符合第一预设条件的情况下,将待处理数据划分到多个子数据集中;以及根据确定多个待处理数据之间的相关性符合第二预设条件的情况下,将多个待处理数据划分到相同的子数据集中。
例如,多个子数据集中的每个子数据集包括至少一个待处理数据,多个待处理数据中的每个待处理数据被划分到至少一个子数据集中。
数据类别为按照记录信息的不同而划分的数据种类,例如图结构中的节点和边属于不同数据类别,基因序列匹配中序列信息和索引信息属于不同数据类别。数据类别对应的访存行为特征可以包括单种数据类别内部的访存特征各多种数据类别之间的相关性特征等。
例如,单种数据类别内部的访存特征可以包括数据量大小、局域性特征和访存频次特征等。数据量大小包括该数据类别的待处理数据包含的总数量以及目标计算任务中每次访问该数据类别的待处理数据的平均数据量。局域性特征为目标计算任务所需的数据是否在时域上或空域上被连续访问。访存频次特征为该数据类别的待处理数据在目标计算任务的执行中被访问的频率。
多种数据类别之间的相关性特征为在目标计算任务中多个数据类别的待处理数据之间访存行为的关联性和依赖性。例如,不同数据类别的待处理数据是否会被同时访问,或一种数据类别的待处理数据的访问依赖于其它数据类别的待处理数据。
对于单种数据类别,数据量较大、访存局域性较弱、访存频次较高的数据类别可以为关键类别。第一预设条件可以为数据量大于预设值,访存局域性小于预设值和访存频次大于预设值。在确定待处理数据的,数据量较大、访存局域性较弱、访存频次较高的情况下,将待处理数据划分到多个不同的子数据集,以使待处理数据在完成后续数据集映射后能够被分配到充足的并行访问带宽。
对于数据量较小和访存频次较低的待处理数据,可以被划分到较少的子数据集中,使待处理数据在完成后续数据集映射后被分配到较少的访问带宽,将有效带宽分配给数据量较大、访存局域性较弱、访存频次较高的待处理数据。
例如,可以为不同访存行为特征设置相应的权重,权重当由具体应用需求决定。例如,在基因序列匹配算法中,索引数据集具有数据量大、单次访问数据量多、随机访问以及高访存频次的特点,因此可以将索引数据划分到所有的子数据集中,确保并行访问带宽。
对于多种数据类别,具有关联性和依赖性较强的数据类别的待处理数据可以被划分到相同的一个或多个子数据集中,以使待处理数据在完成后续数据映射后能够被分配到相同的内存区域,从而保证局域性,避免子数据集间通信。第二预设条件可以为多个待处理数据之间的关联性和依赖性大于预设值。
相关性较弱的数据类别的待处理数据可以划分到不同的子数据集中。例如,在基因序列匹配算法中,参考序列数据片段以及参考序列数据片段对应的索引信息具有较强的相关性,应当保证参考序列数据片段与对应索引信息被划分为分到同一子数据集中。
分块得的多个子数据集之间的依赖关系较弱,存在依赖关系的子数据集可以合并为较大的子数据集,从而确保在接收到一个粗粒度的目标计算任务后,每个子数据集能够独立完成计算,在单个目标计算任务执行过程中不需要依赖其他子数据集。
分块得的多个子数据集之间具有差异性,使得目标计算任务能够通过预测而被精确地分配到较少的子数据集上。差异性与具体应用领域相关,例如在基因序列匹配中,不同的参考序列片段之间在碱基序列分布上具备差异性,当输入一段序列与参考序列进行匹配时,可以通过碱基信息预测参考序列片段中与该输入序列相关的子数据集,从而由该指数句子完成相应的匹配任务。
通过本公开实施例,数据集分块机制保证数据处理过程的局部性,这使得处理器只需要在局部数据集上完成计算任务。通过任务预测分发,避免了将计算任务分发给无需参与计算的处理器,降低数据处理过程的广冗余性问题。
图3示意性示出了根据本公开实施例的存储子数据集的流程图。
如图3所示,操作S220根据多个子数据集的动态特征和静态特征,确定多个子数据集的目标内存地址,使多个子数据集分别被存入对应的目标内存地址中可以包括操作S321~操作S324。
在操作S321,分别获取多个子数据集的动态特征和静态特征。
例如,动态特征包括子数据集的计算特征,静态特征包括子数据集的数据特征。计算特征包括使用该子数据集的平均带宽需求和我平均计算负载等。数据特征包括子数据集的数据量大小。平均带宽需求可以由子数据集内所有类型数据的访存频次等计算确定,平均计算负载可以通过在典型输入数据下对目标计算任务进行静态分析确定,数据量大小可以对子数据集内所有类型数据求和确定。
在操作S322,根据计算特征和数据特征,将多个子数据集映射为多个数据组,使多个数据组之间满足计算负载均衡或数据负载均衡。
例如,多个数据组中的每个数据组包括至少一个子数据集。
在操作S323,分别将多个数据组与多个存储控制器进行关联,以根据多个存储控制器与内存的对应关系,计算多个数据组中至少一个子数据集的目标内存地址。
在操作S324,将多个数据组中至少一个子数据集存入对应的目标内存地址。
在本公开实施例中,通过对子数据集进行重组和聚类,将多个子数据集划分为多个数据组。依据计算特征和数据特征对多子数据集进行重新排序,并将多个子数据集合并为一组。每一组子数据集可以对应于3D DRAM中单个MC所管理的内存空间,并由该MC对应的相同处理器完成与该组子数据集相关的目标计算任务。
在对子数据集进行分组时,可以依据实际需求选择不同的分组优化目标。例如,可以让不同组内子数据集的总计算负载类似,以实现多个数据组之间计算负载均衡。或者可以让不同组内子数据集的总带宽需求类似,以实现多个数据组之间带宽利用均衡。
将子数据集到DRAM的空域映射可以将分组后的子数据集,按组与3D DRAM的MC的相互对应关系,并计算出数据组内每个子数据集的各种数据类别的待处理数据对应的内存地址,使处理器能够通过相应内存地址访问组内子数据集的待处理数据。
在本公开实施例中,在操作S220根据多个子数据集的动态特征和静态特征,确定多个子数据集的目标内存地址,使多个子数据集分别被存入对应的目标内存地址中还可以包括分别获取多个存储控制器在内存中对应的存储容量;在存储容量的约束下,分别将多个数据组与多个存储控制器进行关联,使数据组的数据量小于或等于关联的存储控制器对应的存储容量。
例如,每一组子数据集可以映射在3D DRAM中单个MC所管理的内存空间,因此每一数据组的所有子数据集对应的数据量之和需要小于3D DRAM的单个MC对应的存储空间容量,从而确保每个子数据集能够成功存入内存中。
在本公开实施例中,在数据集不发生变化的情况下,只需对待处理数据集进行一次分块处理,分块得到多个子数据集可以被多个目标计算任务复用。
图4示意性示出了根据本公开实施例的预测子数据集的流程图。
如图4所示,操作S230从多个子数据集中预测得到与目标计算任务关联的至少一个目标子数据集可以包括操作S431~操作S433。
在操作S431,获取目标计算任务的运算逻辑。
在操作S432,分别计算多个子数据集与运算逻辑的关联度。
在操作S433,根据关联度,从多个子数据集中确定至少一个目标子数据集。
在本公开实施例中,预测过程可以通过可重构预测器基于一定的预测逻辑实现。可重构预测器的预测逻辑可以通过写入配置信息等方式进行重构,以实现不同应用领域所需的最优任务预测逻辑。例如,在基因序列匹配应用中,预测逻辑可以是输入序列和参考序列片段之间的相似性,并将相似性超过阈值的所有参考序列片段所在的子数据集作为预测结果。
可重构预测器的最优任务预测逻辑可以保证预测过程的高准确性和低冗余性,且计算速度要快。例如,预测器根据最优任务预测逻辑,从多个子数据集中排除部分无关的子数据集,将该计算任务预测分发到至少一个可能相关的个目标子数据集。
例如,目标计算任务的预测过程可以为一对多的映射过程。多个子数据集包括N个子数据集,执行目标计算任务需要m个指定子数据集,从N个子数据集中预测得到与目标计算任务关联的n个目标子数据集,n个目标子数据集包括m个指定子数据集,N≥n≥m。
例如,n个子数据集包含m个指定子数据集,以确保计算结果的高准确性。目标子数据集的数量n与指定子数据集的数量m接近,确定执行目标计算任务时,不会引入过多无关的子数据集,以避免多余的计算和访存开销,降低冗余性。
在本公开实施例中,基于应用领域的近存计算需求,可以针对具体算法特性和数据集特性确定最优任务预测逻辑,使得本公开提供的近存计算模型可以移植到相应的应用场景中,提高通用性。
图5示意性示出了根据本公开实施例的预测子数据集的流程图。
如图5所示,操作S240通过至少一个目标子数据集对应的目标内存地址,访问至少一个目标子数据集,以在本地执行目标计算任务可以包括操作S541~操作S542。
在操作S541,将目标计算任务分发至多个处理器,多个处理器与多个存储控制器对应。
在操作S542,利用多个存储控制器在目标内存地址中访问对应的目标子数据集,使对应的多个处理器分别基于对应的目标子数据集在本地执行目标计算任务。
在本公开实施例中,计算任务可以由芯片输入端传递到相应的处理器中,任务传递可以通过总线、片上网络等互联机制实现。
处理器可以基于本地bank中的本地数据完成目标计算任务。每个处理器在运行目标计算任务时,仅需要通过对应的MC访问目标内存地址内的本地数据,而不通过互联资源访问远程MC之间的数据或与其它处理器进行任何数据交互。多个处理器可以并行访问相应的MC且并行完成不同的目标计算任务。
对于多个不同的目标计算任务,多个目标计算可以以粗粒度流水线的方式输入到3D DRAM中,由预测器、片上网络和处理器依次进行预测、分发和计算过程,以完成目标计算任务的完整计算流程。
处理器完成目标计算任务后,处理器得到的关于目标计算任务的计算结果可以被写入到指定的结果存放地址中。该地址可以为3DDRAM内划定的某片空间,也可以是外部的其它存储***。结果传递的过程也可以由片上网络完成。
本公开还提供了一种应用于基因序列匹配场景的数据处理方法,结合图6A和图6B对数据处理方法进行示意性说明。图6A示意性示出了根据本公开实施例的存储子数据集的示意图。图6B示意性示出了根据本公开实施例的预测子数据集的示意图。
在本实施例中,待处理数据集包括给定的参考序列R和参考序列R对应的索引数据I。目标计算任务为输入一组短序列{r1,r2…,ri,…rn},将每个短序列ri映射到参考序列R上的一个或多个位置,使得R对应位置的子序列和ri相似性最高。
对参考序列R和索引数据I的访存特征进行分析,参考序列R的数据量相对较小、局域性较强且访存频次相对较低,索引数据I的数据量较大、访存局域性差且访存频次高。参考序列R和索引数据I之间相关性较强,存在依赖性,每个匹配任务总是先访问索引数据I,然后根据访问的结果访问对应的参考序列R。
将参考序列R和索引数据I划分为多个子数据集的过程可以包括:根据参考序列的访存行为特征,将参考序列划分为多个子序列片段;根据索引数据与多个子序列片段的关联性,分别构建多个子索引数据,多个子索引数据分别与多个子序列片段对应;以及将多个子索引数据和多个子序列片段映射为多个子数据集。
如图6A所示,根据参考序列R和索引数据I的访存特征,可以对参考序列R和索引数据I进行粗粒度分块,将参考序列R直接切分为多个子序列片段{R1,R2…,Rj,…Rm}。而全局索引数据I无法直接线性切分,可以通过对每个子序列Ri重新构建索引得到分块后的索引数据{I1,I2…,Ii,…Im},其中,Ii为Rj的索引数据,m为正整数,i≤m,j≤m。
Ii和Rj的访存特征互补,对Ii和Rj之间的访问具有依赖性,因此可以将Ii和Ri划分到同一个子数据集中。所有数据子数据集可以为{(I1,R1),(I2,R2)…,Ii,Rj),…(Im,Rm)},记Sij=(Ii,Rj)。分块后的所有子数据集Sij之间相互独立,可以并行完成匹配任务,且由于Rj具备的碱基序列不同,子数据集Sij之间具有差异性,便于后续预测器进行预测。
对所有子数据集Si进行重组和聚类,由于所有子数据集Sij包括的数据类似,因为每个子数据集Sij的总数据量基本相同,但每个子数据集Sij的带宽需求和计算负载可能不相同。
例如,可以基于计算负载对所有子数据集Sij进行重组和聚类。对输入序列进行采样,得到q个输入序列{rp1,rp2…rpq},q为正整数。将q个输入序列{rp1,rp2…rpq}与R进行匹配,统计R的每个子序列片段上所分配到的比对任务总数作为R的每个子序列片段的计算负载指标。将全部子数据集Sij聚类为多个数据组,每数据组包括一个或多个子数据集。约束条件可以为每个数据组内子数据集的大小总和不超过每个MC对应的DRAM空间大小。
以尽可能减小多个数据组之间的总计算量差异,通过以求解优化问题的方式将多个子数据集Sij聚类为多个数据组。例如,通过线性装箱算法进行求解,得到M个分组,记为{C1,C2…,Ci,…CM},M为正整数,i≤M。将Ci分组映射到3D DRAM的第i个MC对应的地址空间,完成数据的空域映射。
如图6B所示,利用预测器对每个待匹配的输入序列ri作为候选子数据集进行预测,预测结果为in个目标子数据集例如,预测器可根据输入序列ri与参考序列Rj之间的相似性来预测ri是否应该被分发到Rj所在的处理器进行计算。例如,可以利用布隆过滤器等算法快速计算出ri中的种子在Rj中有多少命中,用命中总数作为相似性度量,当相似性度量大于预设阈值时,ri会被分发到Rj。在预测完成后,ri通过片上网络传递到所有Rj所在的处理器。同时,预测器可以处理开始处理下一个输入序列,因此多个输入序列的预测和匹配工作以流水线的方式完成。
接收到输入序列ri的所有处理器独立且并行地完成目标计算任务中的匹配任务,每个处理器通过对应的MC访问本地子数据集Sij对ri和Rj完成序列比对工作。匹配完成后,处理器通过片上网络将该次比对结果通过互连网络传送至外部存储***,保存计算结果,并等待接收下一个输入序列。
在本公开实施例中,本公开提供的基于近存计算模型的数据处理方法以数据为中心、兼具高计算和访存并行性和局域性、且能够消除冗余性。此外,本公开提供的数据处理方法适应于多种应用领域,能够综合考虑数据集与计算任务的空域分布特征,兼具灵活性和高效性。
基于上述数据处理方法,本公开还提供了一种数据处理装置。以下将结合图7对该数据处理装置进行详细描述。
图7示意性示出了根据本公开实施例的数据处理装置的结构框图。
如图7所示,该实施例的数据处理装置700包括划分模块710、确定模块720、预测模块730和访问模块740。
划分模块710用于根据待处理数据集的访存行为特征,将待处理数据集划分为多个子数据集。在一实施例中,划分模块710可以用于执行前文描述的操作S210,在此不再赘述。
确定模块720用于据盘点任务列表,确定待盘点资产的资产属性,资产属性包括已知资产和未知资产。在一实施例中,确定模块720可以用于执行前文描述的操作S220,在此不再赘述。
预测模块730用于从多个子数据集中预测得到与目标计算任务关联的至少一个目标子数据集。在一实施例中,预测模块730可以用于执行前文描述的操作S230,在此不再赘述。
防问模块740用于通过至少一个目标子数据集对应的目标内存地址,访问至少一个目标子数据集,以在本地执行目标计算任务。在一实施例中,访问模块740可以用于执行前文描述的操作S240,在此不再赘述。
根据本公开的实施例,划分模块710、确定模块720、预测模块730和访问模块740中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,划分模块710、确定模块720、预测模块730和访问模块740中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,划分模块710、确定模块720、预测模块730和访问模块740中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的适于实现数据处理方法的电子设备的方框图。
如图8所示,根据本公开实施例的电子设备800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有电子设备800操作所需的各种程序和数据。处理器801、ROM802以及RAM 803通过总线804彼此相连。处理器801通过执行ROM 802和/或RAM 803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 802和RAM 803以外的一个或多个存储器中。处理器801也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。电子设备800还可以包括连接至I/O接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/***中所包含的;也可以是单独存在,而未装配入该设备/装置/***中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机***中运行时,该程序代码用于使计算机***实现本公开实施例所提供的数据处理方法。
在该计算机程序被处理器801执行时执行本公开实施例的***/装置中限定的上述功能。根据本公开的实施例,上文描述的***、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分809被下载和安装,和/或从可拆卸介质811被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本公开实施例的***中限定的上述功能。根据本公开的实施例,上文描述的***、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (12)
1.一种数据处理方法,包括:
根据待处理数据集的访存行为特征,将所述待处理数据集划分为多个子数据集;
根据所述多个子数据集的动态特征和静态特征,确定所述多个子数据集的目标内存地址,使所述多个子数据集分别被存入对应的目标内存地址中;
从所述多个子数据集中预测得到与目标计算任务关联的至少一个目标子数据集;以及
通过所述至少一个目标子数据集对应的目标内存地址,访问所述至少一个目标子数据集,以在本地执行所述目标计算任务。
2.根据权利要求1所述的数据处理方法,其中,所述根据待处理数据集的访存行为特征,将所述待处理数据集划分为多个子数据集,包括:
分别获取待处理数据集中多个待处理数据的数据类别;
根据所述数据类别,分别确定所述多个待处理数据的访存行为特征,所述访存行为特征包括待处理数据的数据量、局域性特征、访存频次和多个待处理数据之间的相关性;
在确定待处理数据的数据量、局域性特征和访存频次均符合第一预设条件的情况下,将所述待处理数据划分到多个子数据集中;以及
根据确定多个待处理数据之间的相关性符合第二预设条件的情况下,将所述多个待处理数据划分到相同的子数据集中;
其中,所述多个子数据集中的每个子数据集包括至少一个待处理数据,所述多个待处理数据中的每个待处理数据被划分到至少一个子数据集中。
3.根据权利要求1所述的数据处理方法,其中,所述根据所述多个子数据集的动态特征和静态特征,确定所述多个子数据集的目标内存地址,使所述多个子数据集分别被存入对应的目标内存地址中,包括:
分别获取所述多个子数据集的动态特征和静态特征,所述动态特征包括子数据集的计算特征,所述静态特征包括子数据集的数据特征;
根据所述计算特征和所述数据特征,将所述多个子数据集映射为多个数据组,所述多个数据组中的每个数据组包括至少一个子数据集,使多个数据组之间满足计算负载均衡或数据负载均衡;
分别将所述多个数据组与多个存储控制器进行关联,以根据所述多个存储控制器与内存的对应关系,计算所述多个数据组中至少一个子数据集的目标内存地址;以及
将所述多个数据组中至少一个子数据集存入对应的目标内存地址。
4.根据权利要求3所述的数据处理方法,其中,所述分别将所述多个数据组与多个存储控制器进行关联,包括:
分别获取所述多个存储控制器在内存中对应的存储容量;
在所述存储容量的约束下,分别将所述多个数据组与多个存储控制器进行关联,使数据组的数据量小于或等于关联的存储控制器对应的存储容量。
5.根据权利要求1所述的数据处理方法,其中,所述从所述多个子数据集中预测得到与目标计算任务关联的至少一个目标子数据集,包括:
获取所述目标计算任务的运算逻辑;
分别计算所述多个子数据集与所述运算逻辑的关联度;以及
根据所述关联度,从所述多个子数据集中确定至少一个目标子数据集。
6.根据权利要求5所述的数据处理方法,其中,所述多个子数据集包括N个子数据集,执行所述目标计算任务需要m个指定子数据集,所述从所述多个子数据集中预测得到与目标计算任务关联的至少一个目标子数据集,还包括:
从所述N个子数据集中预测得到与目标计算任务关联的n个目标子数据集,所述n个目标子数据集包括所述m个指定子数据集,N≥n≥m。
7.根据权利要求3所述的数据处理方法,其中,所述通过所述至少一个目标子数据集对应的目标内存地址,访问所述至少一个目标子数据集,以在本地执行所述目标计算任务,包括:
将所述目标计算任务分发至多个处理器,所述多个处理器与所述多个存储控制器对应;以及
利用所述多个存储控制器在所述目标内存地址中访问对应的目标子数据集,使对应的所述多个处理器分别基于对应的目标子数据集在本地执行所述目标计算任务。
8.根据权利要求3所述的数据处理方法,其中,所述待处理数据集包括参考序列和索引数据,所述根据待处理数据集的访存行为特征,将所述待处理数据集映射为多个子数据集,包括:
根据所述参考序列的访存行为特征,将所述参考序列划分为多个子序列片段;
根据所述索引数据与所述多个子序列片段的关联性,分别构建多个子索引数据,所述多个子索引数据分别与所述多个子序列片段对应;以及
将所述多个子索引数据和所述多个子序列片段映射为多个子数据集。
9.一种数据处理装置,包括:
划分模块,用于根据待处理数据集的访存行为特征,将所述待处理数据集划分为多个子数据集;
确定模块,用于根据所述多个子数据集的动态特征和静态特征,确定所述多个子数据集的目标内存地址,使所述多个子数据集分别被存入对应的目标内存地址中;
预测模块,用于从所述多个子数据集中预测得到与目标计算任务关联的至少一个目标子数据集;以及
访问模块,用于通过所述至少一个目标子数据集对应的目标内存地址,访问所述至少一个目标子数据集,以在本地执行所述目标计算任务。
10.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~8中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~8中任一项所述的方法。
12.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310024827.5A CN116048797A (zh) | 2023-01-09 | 2023-01-09 | 数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310024827.5A CN116048797A (zh) | 2023-01-09 | 2023-01-09 | 数据处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116048797A true CN116048797A (zh) | 2023-05-02 |
Family
ID=86116000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310024827.5A Pending CN116048797A (zh) | 2023-01-09 | 2023-01-09 | 数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116048797A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116257760A (zh) * | 2023-05-11 | 2023-06-13 | 浪潮电子信息产业股份有限公司 | 一种数据划分方法、***、设备及计算机可读存储介质 |
CN116560817A (zh) * | 2023-05-29 | 2023-08-08 | 北京百度网讯科技有限公司 | 任务执行方法、装置、电子设备和存储介质 |
-
2023
- 2023-01-09 CN CN202310024827.5A patent/CN116048797A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116257760A (zh) * | 2023-05-11 | 2023-06-13 | 浪潮电子信息产业股份有限公司 | 一种数据划分方法、***、设备及计算机可读存储介质 |
CN116257760B (zh) * | 2023-05-11 | 2023-08-11 | 浪潮电子信息产业股份有限公司 | 一种数据划分方法、***、设备及计算机可读存储介质 |
CN116560817A (zh) * | 2023-05-29 | 2023-08-08 | 北京百度网讯科技有限公司 | 任务执行方法、装置、电子设备和存储介质 |
CN116560817B (zh) * | 2023-05-29 | 2024-05-07 | 北京百度网讯科技有限公司 | 任务执行方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kim et al. | GRIM-Filter: Fast seed location filtering in DNA read mapping using processing-in-memory technologies | |
US11461615B2 (en) | System and method of memory access of multi-dimensional data | |
CN116048797A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110704360B (zh) | 一种基于异构fpga数据流的图计算优化方法 | |
CN101932996B (zh) | 具有降低功耗的并行处理计算机***及提供该***的方法 | |
Zhou et al. | Transpim: A memory-based acceleration via software-hardware co-design for transformer | |
US10984073B2 (en) | Dual phase matrix-vector multiplication system | |
US9420036B2 (en) | Data-intensive computer architecture | |
CN102402399A (zh) | 带有非对称存储器的***中的虚拟机存储器管理 | |
US20220156071A1 (en) | Vector reductions using shared scratchpad memory | |
US11222258B2 (en) | Load balancing for memory channel controllers | |
US20210264257A1 (en) | AI Accelerator Virtualization | |
US20220114270A1 (en) | Hardware offload circuitry | |
JP7492555B2 (ja) | 複数の入力データセットのための処理 | |
Ghasemi et al. | GraphA: An efficient ReRAM-based architecture to accelerate large scale graph processing | |
CN117015767A (zh) | 存储器信道控制器的芯片上互连 | |
Wang et al. | Rerec: In-reram acceleration with access-aware mapping for personalized recommendation | |
CN104778088B (zh) | 一种基于减少进程间通信开销的并行i/o优化方法与*** | |
CN113986816A (zh) | 可重构计算芯片 | |
CN109412865A (zh) | 一种虚拟网络资源分配方法、***及电子设备 | |
CN107533475A (zh) | 可缩放软件栈 | |
Chen et al. | GCIM: Towards Efficient Processing of Graph Convolutional Networks in 3D-Stacked Memory | |
CN112214447A (zh) | 工作量证明运算芯片集群数据动态重构方法、***和装置 | |
CN106155910A (zh) | 一种实现内存访问的方法、装置和*** | |
HeydariGorji et al. | In-storage processing of I/O intensive applications on computational storage drives |
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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Chen Longlong Inventor after: Zhu Jianfeng Inventor after: Wei Shaojun Inventor before: Chen Longlong Inventor before: Zhu Jianfeng Inventor before: Liu Leibo Inventor before: Wei Shaojun |
|
CB03 | Change of inventor or designer information |