CN117724856B - 数据处理方法、装置、电子设备及存储介质 - Google Patents
数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117724856B CN117724856B CN202410177698.8A CN202410177698A CN117724856B CN 117724856 B CN117724856 B CN 117724856B CN 202410177698 A CN202410177698 A CN 202410177698A CN 117724856 B CN117724856 B CN 117724856B
- Authority
- CN
- China
- Prior art keywords
- matrix data
- sub
- matrix
- data
- position information
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 239000011159 matrix material Substances 0.000 claims abstract description 992
- 230000011218 segmentation Effects 0.000 claims abstract description 132
- 238000000034 method Methods 0.000 claims abstract description 86
- 238000004364 calculation method Methods 0.000 claims abstract description 61
- 230000008569 process Effects 0.000 claims abstract description 48
- 239000013598 vector Substances 0.000 claims description 259
- 230000015654 memory Effects 0.000 claims description 27
- 238000004458 analytical method Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 13
- 238000004891 communication Methods 0.000 abstract description 11
- 238000013500 data storage Methods 0.000 abstract description 7
- 230000006872 improvement Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 13
- 238000010801 machine learning Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开关于一种数据处理方法、装置、电子设备及存储介质,涉及计算机技术领域,该方法包括:分发节点对第一待处理矩阵数据进行第一切分处理,得到第一子矩阵数据和第一位置信息;分发节点对第二待处理矩阵数据进行第二切分处理,得到第二子矩阵数据和第二位置信息;分发节点基于第一位置信息和第二位置信息,对第一子矩阵数据和第二子矩阵数据进行组合处理,得到子矩阵数据对,并将子矩阵数据对分发给计算节点;每个计算节点对子矩阵数据对进行处理得到计算处理结果,并基于目标计算节点对计算处理结果进行叠加处理得到目标矩阵数据。利用本公开实施例可以在兼顾到减少矩阵数据存储占用和减少节点间通讯成本的基础上,实现***计算效率的提升。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
矩阵乘法是一种高效的算法,更是一种应用性极强的算法。矩阵乘法在计算机图形学、信号处理、机器学习等领域具有广泛的应用。示例性的,以最小二乘法线性回归算法为例,通过最小二乘法进行回归,估计自变量对因变量的影响,其中需要计算的自变量系数估计值本质上是一系列矩阵乘法运算。
在现有技术中,为提高矩阵乘法运算效率,可以通过分布式计算实现,即多台计算机由网络互相连接后,共同执行同一个计算任务。例如,可以将两个待处理的矩阵数据中的一个矩阵数据切分为多个子矩阵数据,并将上述多个子矩阵数据各自分发至多个计算节点中的每个计算节点,并将未被切分的矩阵数据也同步分发至每个计算节点;但是,上述方法中,未被切分的矩阵数据会需要较大的存储空间进行存储而导致数据存储空间占用较大。基于此,为了减少存储空间占用,可以通过将上述未被切分的矩阵数据进行切分,并将切分后的子矩阵数据分发至多个计算节点,但是,由于计算过程中存在对于缺失的部分矩阵数据的需要,进而需要通过向节点发送数据请求以获取矩阵数据,会导致节点之间需要大量的通信,而大量的通信开销会导致计算性能严重降低。因此,上述现有的方法无法实现数据存储占用与通信代价之间的平衡。
发明内容
有鉴于上述存在的技术问题,本公开提出了一种数据处理方法、装置、电子设备及存储介质。
根据本公开实施例的一方面,提供一种数据处理方法,应用于数据处理***,所述数据处理***包括分发节点和第一数量个计算节点,所述方法包括:
所述分发节点基于所述第一数量,对第一待处理矩阵数据进行第一切分处理,得到所述第一数量个第一子矩阵数据和每个第一子矩阵数据在所述第一待处理矩阵数据中对应的第一位置信息;所述第一待处理矩阵数据对应的矩阵行数量小于等于预设行数量,所述每个第一子矩阵数据对应的矩阵列数量与所述第一待处理矩阵数据对应的矩阵行数量相同;
所述分发节点基于所述第一数量,对第二待处理矩阵数据进行第二切分处理,得到所述第一数量个第二子矩阵数据和每个第二子矩阵数据在所述第二待处理矩阵数据中对应的第二位置信息;所述第二待处理矩阵数据对应的矩阵列数量小于等于预设列数量,所述每个第二子矩阵数据对应的矩阵列数量与所述第二待处理矩阵数据的矩阵列数量相同;
所述分发节点基于所述第一位置信息和所述第二位置信息,对所述第一数量个第一子矩阵数据和所述第一数量个第二子矩阵数据进行组合处理,得到所述第一数量个子矩阵数据对,并将所述第一数量个子矩阵数据对分别分发给所述第一数量个计算节点,每个计算节点上分发到一个子矩阵数据对;
每个计算节点对所述每个计算节点上的每个子矩阵数据对进行处理,得到所述每个子矩阵数据对对应的计算处理结果,并基于目标计算节点,对所述第一数量个子矩阵数据对各自对应的计算处理结果进行叠加处理,得到目标矩阵数据;所述目标计算节点为所述第一数量个计算节点中的任一计算节点。
根据本公开实施例的另一方面,提供一种数据处理***,所述***包括分发节点和第一数量个计算节点;
所述分发节点用于基于所述第一数量,对第一待处理矩阵数据进行第一切分处理,得到所述第一数量个第一子矩阵数据和每个第一子矩阵数据在所述第一待处理矩阵数据中对应的第一位置信息;所述第一待处理矩阵数据对应的矩阵行数量小于等于预设行数量,所述每个第一子矩阵数据对应的矩阵列数量与所述第一待处理矩阵数据对应的矩阵行数量相同;以及用于基于所述第一数量,对第二待处理矩阵数据进行第二切分处理,得到所述第一数量个第二子矩阵数据和每个第二子矩阵数据在所述第二待处理矩阵数据中对应的第二位置信息;所述第二待处理矩阵数据对应的矩阵列数量小于等于预设列数量,所述每个第二子矩阵数据对应的矩阵列数量与所述第二待处理矩阵数据的矩阵列数量相同;以及用于基于所述第一位置信息和所述第二位置信息,对所述第一数量个第一子矩阵数据和所述第一数量个第二子矩阵数据进行组合处理,得到所述第一数量个子矩阵数据对,并将所述第一数量个子矩阵数据对分别分发给所述第一数量个计算节点,每个计算节点上分发到一个子矩阵数据对;
所述第一数量个计算节点用于对所述每个计算节点上的每个子矩阵数据对进行处理,得到所述每个子矩阵数据对对应的计算处理结果,并基于目标计算节点,对所述第一数量个子矩阵数据对各自对应的计算处理结果进行叠加处理,得到目标矩阵数据;所述目标计算节点为所述第一数量个计算节点中的任一计算节点。
可选的,所述第一数量个计算节点还用于从所述每个子矩阵数据对中,获取多个子矩阵向量对和每个子矩阵向量对对应的向量对位置信息,所述每个子矩阵向量对包括第一向量数据和第二向量数据,所述第一向量数据为所述每个子矩阵数据对中第一子矩阵数据的列向量数据,所述第二向量数据为所述每个子矩阵数据对中第二子矩阵数据的列向量数据,所述向量对位置信息包括所述第一向量数据对应的第一向量位置信息和所述第二向量数据对应的第二向量位置信息;以及用于启动多个线程,并基于所述多个线程中每个线程对每个子矩阵向量对进行向量点积处理,得到所述每个子矩阵向量对对应的向量点积结果;以及用于基于所述每个子矩阵向量对对应的向量对位置信息和所述每个子矩阵向量对对应的向量点积结果,生成所述每个子矩阵数据对对应的计算处理结果。
可选的,所述分发节点还用于基于预设旋转方向,对所述第一待处理矩阵数据进行旋转处理,得到旋转矩阵数据;以及用于基于第一预设切分方向和所述第一数量,对所述旋转矩阵数据进行切分处理,得到所述第一数量个第一子矩阵数据和每个第一子矩阵数据在所述第一待处理矩阵数据中对应的第一位置信息;所述第一预设切分方向与矩阵行方向相同。
可选的,所述分发节点还用于获取所述旋转矩阵数据对应的第一矩阵行数量;以及用于基于所述第一矩阵行数量和所述第一数量,确定第一矩阵切分长度;以及用于基于所述第一矩阵切分长度和所述第一预设切分方向,确定所述旋转矩阵数据对应的多个第一切分位置信息;以及用于基于所述多个第一切分位置信息,对所述旋转矩阵数据进行矩阵切分处理,得到所述第一数量个第一子矩阵数据;以及用于基于所述多个第一切分位置信息和所述旋转矩阵数据,对所述第一数量个第一子矩阵数据进行子矩阵位置分析,得到所述第一位置信息。
可选的,所述分发节点还用于基于第二预设切分方向和所述第一数量,对所述第一待处理矩阵数据进行切分处理,得到所述第一数量个切分子矩阵数据和每个切分子矩阵数据在所述第一待处理矩阵数据中对应的第三位置信息;所述第二预设切分方向与矩阵列方向相同;以及用于对所述每个切分子矩阵数据进行旋转处理,得到所述第一数量个第一子矩阵数据;以及用于基于所述第三位置信息,生成所述每个第一子矩阵数据在所述第一待处理矩阵数据中对应的第一位置信息。
可选的,所述分发节点还用于获取所述第一待处理矩阵数据对应的目标矩阵列数量;以及用于基于所述目标矩阵列数量和所述第一数量,确定第二矩阵切分长度;以及用于基于所述第二矩阵切分长度和所述第二预设切分方向,确定所述第一待处理矩阵数据对应的多个第二切分位置信息;以及用于基于所述多个第二切分位置信息,对所述第一待处理矩阵数据进行矩阵切分处理,得到所述第一数量个切分子矩阵数据;以及用于基于所述多个第二切分位置信息和所述第一待处理矩阵数据,对所述第一数量个切分子矩阵数据进行子矩阵位置分析,得到所述第三位置信息。
可选的,所述分发节点还用于获取所述第二待处理矩阵数据对应的第二矩阵行数量;以及用于基于所述第二矩阵行数量和所述第一数量,确定第三矩阵切分长度;以及用于基于所述第三矩阵切分长度和第一预设切分方向,确定所述第二待处理矩阵数据对应的多个第三切分位置信息;以及用于基于所述多个第三切分位置信息,对所述第二待处理矩阵数据进行矩阵切分处理,得到所述第一数量个第二子矩阵数据;以及用于基于所述多个第三切分位置信息和所述第二待处理矩阵数据,对所述第一数量个第二子矩阵数据进行子矩阵位置分析,得到所述第二位置信息。
可选的,所述分发节点还用于基于所述第一位置信息和所述第二位置信息,对所述第一数量个第一子矩阵数据和所述第一数量个第二子矩阵数据进行位置匹配处理,得到目标位置匹配结果;以及用于对所述目标位置匹配结果中指示所属矩阵数据的位置相同的第一子矩阵数据和第二子矩阵数据进行组合,得到所述第一数量个子矩阵数据对。
根据本公开实施例的另一方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现上述数据处理方法。
根据本公开实施例的另一方面,提供一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行上述数据处理方法。
根据本公开实施例的另一方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述数据处理方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
分发节点基于第一数量,对第一待处理矩阵数据进行第一切分处理,得到第一数量个第一子矩阵数据和每个第一子矩阵数据在第一待处理矩阵数据中对应的第一位置信息,其中,第一待处理矩阵数据对应的矩阵行数量小于等于预设行数量,每个第一子矩阵数据对应的矩阵列数量与第一待处理矩阵数据对应的矩阵行数量相同,可以实现第一数量个第一子矩阵数据的切分,分发节点再基于第一数量,对第二待处理矩阵数据进行第二切分处理,得到第一数量个第二子矩阵数据和每个第二子矩阵数据在第二待处理矩阵数据中对应的第二位置信息,其中,第二待处理矩阵数据对应的矩阵列数量小于等于预设列数量,每个第二子矩阵数据对应的矩阵列数量与第二待处理矩阵数据的矩阵列数量相同,可以实现第一数量个第二子矩阵数据的切分,接着,分发节点基于第一位置信息和第二位置信息,对第一数量个第一子矩阵数据和第一数量个第二子矩阵数据进行组合处理,得到第一数量个子矩阵数据对,并将第一数量个子矩阵数据对分别分发给第一数量个计算节点,每个计算节点上分发到一个子矩阵数据对,可以实现每个计算节点之间计算任务的相互独立,可以减少节点间的通讯成本,且各个计算节点之间分配的矩阵数据之间不存在重复的数据存储,可以减少矩阵数据的内存占用,然后,每个计算节点对每个计算节点上的每个子矩阵数据对进行处理,得到每个子矩阵数据对对应的计算处理结果,并基于目标计算节点,对第一数量个子矩阵数据对各自对应的计算处理结果进行叠加处理,得到目标矩阵数据,可以在兼顾到减少矩阵数据存储占用和减少节点间通讯成本的基础上,实现***计算效率的提升。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种应用***的示意图;
图2是根据一示例性实施例示出的一种数据处理方法的流程图;
图3是根据一示例性实施例示出的一种数据处理方法的示意图;
图4是根据一示例性实施例示出的一种数据处理***的框图;
图5是根据一示例性实施例示出的一种用于生成目标矩阵数据的电子设备的框图;
图6是根据一示例性实施例示出的另一种用于生成目标矩阵数据的电子设备的框图。
具体实施方式
以下将参考附图详细说明本申请的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本申请,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本申请同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。
请参阅图1,图1是根据一示例性实施例示出的一种应用***的示意图。上述应用***可以用于本申请的数据处理方法。该应用***至少可以包括服务器01和终端02。
本申请实施例中,服务器01可以用于生成目标矩阵数据。服务器01可以包括数据处理***。数据处理***可以包括分发节点和第一数量个计算节点。具体地,上述服务器01可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
本申请实施例中,终端02可以用于生成第一待处理矩阵数据和第二待处理矩阵数据。上述终端02可以包括智能手机、台式计算机、平板电脑、笔记本电脑、智能音箱、车载终端、数字助理、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、智能可穿戴设备等类型的实体设备,也可以包括运行于实体设备中的软体,例如应用程序等。本申请实施例中上述终端02上运行的操作***可以包括但不限于安卓***、GNU/Linux***、windows***等。
此外,需要说明的是,图1所示的仅仅是本公开提供的一种应用环境,在实际应用中,还可以包括其他应用环境,例如,第一待处理矩阵数据和第二待处理矩阵数据的生成过程,也可以在服务器上实现。
本说明书实施例中,上述终端02以及服务器01可以通过有线或无线通信方式进行直接或间接地连接,本申请对此不作限定。
需要说明的是,图中示出的是一种可能的步骤顺序,实际上并不限定必须严格按照此顺序。有些步骤可以在互不依赖的情况下并行执行。
具体地,图2是根据一示例性实施例示出的一种数据处理方法的流程图。如图2所示,该数据处理方法可以用于数据处理***等电子设备中,具体可以包括以下步骤:
S201:分发节点基于第一数量,对第一待处理矩阵数据进行第一切分处理,得到第一数量个第一子矩阵数据和每个第一子矩阵数据在第一待处理矩阵数据中对应的第一位置信息。
在一个具体的实施例中,第一数量可以是指数据处理***中用于处理子矩阵数据对的计算节点的数量。具体的,第一数量可以根据实际应用需要进行设定,本公开不作限定。示例性的,第一数量可以是100。
在一个具体的实施例中,第一待处理矩阵数据可以是指需要进行矩阵乘法计算的两个待处理矩阵数据的其中一个矩阵数据。具体的,第一待处理矩阵数据可以是需要进行矩阵乘法计算的矩阵数据。进一步的,第一待处理矩阵数据可以是对应的矩阵行数量小于等于预设行数量的矩阵数据。其中,矩阵行数量可以是指对应的矩阵所包含的行的数量。示例性的,第一待处理矩阵数据对应的矩阵行数量可以是指第一待处理矩阵数据所包含的行的数量。具体的,预设行数量可以根据实际应用需要进行设定;可选的,预设行数量的取值范围可以是100~10000;示例性的,预设行数量可以是5000。可以理解的是,第一待处理矩阵数据的矩阵列数量可以较大(例如可以是远大于上述预设行数量),而第一待处理矩阵数据的矩阵行数量存在限制,即小于等于预设行数量。
在一个具体的实施例中,第一子矩阵数据可以是指第一切分处理后的矩阵数据。具体的,任一第一子矩阵数据可以是对应的矩阵列数量与第一待处理矩阵数据对应的矩阵行数量相同的子矩阵数据。其中,矩阵列向量可以是指对应的矩阵所包含的列的数量。示例性的,任一第一子矩阵数据对应的矩阵列数量可以是指上述任一第一子矩阵数据所包含的列的数量。
在一个具体的实施例中,任一第一子矩阵数据在第一待处理矩阵数据中对应的第一位置信息可以表征上述任一第一子矩阵数据在第一待处理矩阵数据中对应的位置。具体的,任一第一子矩阵数据在第一待处理矩阵数据中对应的第一位置信息可以包括任一第一子矩阵数据对应的起始行向量的向量位置信息和上述任一第一子矩阵数据对应的结束行向量的向量位置信息。其中,任一第一子矩阵数据对应的起始行向量的向量位置信息可以表征上述任一第一子矩阵数据对应的起始行向量在第一待处理矩阵数据中对应的位置;任一第一子矩阵数据对应的起始行向量可以是指上述任一第一子矩阵数据中第一行的行向量。任一第一子矩阵数据对应的结束行向量的向量位置信息可以表征上述任一第一子矩阵数据对应的结束行向量在第一待处理矩阵数据中对应的位置;上述任一第一子矩阵数据对应的结束行向量可以是指上述任一第一子矩阵数据中最后一行的行向量。
在一个具体的实施例中,分发节点可以接收到矩阵数据处理请求;其中,上述矩阵数据处理请求可以包括第一待处理矩阵数据和第二待处理矩阵数据。上述矩阵数据处理请求可以用于指示数据处理***对第一待处理矩阵数据和第二待处理矩阵数据进行矩阵乘法处理。具体的,预设机器学***方和来估计自变量对因变量的影响,即,其中,/>为第i个观测值的残差,即实际值与预测值之间的差异;通过最小化残差平方和,可以得到自变量的系数估计值,即/>,其中,/>为自变量的系数估计值,X为自变量的矩阵,y为因变量的向量;而自变量的系数估计值的计算过程中需要矩阵乘法计算,即预设机器学习***在生成自变量的系数估计值的过程中,需要生成至少一个矩阵乘法计算指令。
在一个具体的实施例中,上述步骤S201可以包括:
分发节点基于预设旋转方向,对第一待处理矩阵数据进行旋转处理,得到旋转矩阵数据;
分发节点基于第一预设切分方向和第一数量,对旋转矩阵数据进行切分处理,得到第一数量个第一子矩阵数据和每个第一子矩阵数据在第一待处理矩阵数据中对应的第一位置信息。
在一个具体的实施例中,预设旋转方向可以是顺时针旋转方向。
在一个具体的实施例中,旋转矩阵数据可以是指旋转后的第一待处理矩阵数据。
在一个具体的实施例中,分发节点可以基于预设旋转方向,将第一待处理矩阵数据顺时针旋转90度,得到旋转矩阵数据。
在一个具体的实施例中,第一预设切分方向可以是指切分处理过程中矩阵的切分方向。具体的,第一预设切分方向可以是与矩阵行方向相同的方向。
在一个具体的实施例中,上述分发节点基于第一预设切分方向和第一数量,对旋转矩阵数据进行切分处理,得到第一数量个第一子矩阵数据和每个第一子矩阵数据在第一待处理矩阵数据中对应的第一位置信息,可以包括:
分发节点获取旋转矩阵数据对应的第一矩阵行数量;
分发节点基于第一矩阵行数量和第一数量,确定第一矩阵切分长度;
分发节点基于第一矩阵切分长度和第一预设切分方向,确定旋转矩阵数据对应的多个第一切分位置信息;
分发节点基于多个第一切分位置信息,对旋转矩阵数据进行矩阵切分处理,得到第一数量个第一子矩阵数据;
分发节点基于多个第一切分位置信息和旋转矩阵数据,对第一数量个第一子矩阵数据进行子矩阵位置分析,得到第一位置信息。
在一个具体的实施例中,第一矩阵行数量可以是指旋转矩阵数据的矩阵行数量。
在一个具体的实施例中,分发节点可以基于旋转矩阵数据,确定旋转矩阵数据中所包含的行的数量,即可以得到旋转矩阵数据的矩阵行数量;相应的,分发节点可以将旋转矩阵数据的矩阵行数量,作为上述第一矩阵行数量。
在一个具体的实施例中,第一矩阵切分长度可以是指切分处理过程中相邻两个切分位置之间的间隔长度。
在一个具体的实施例中,分发节点可以将第一矩阵行数量除以上述第一数量,得到第一矩阵切分长度。
在一个具体的实施例中,第一切分位置信息可以用于针对旋转矩阵数据的切分处理过程中指示切分的位置。具体的,第一切分位置信息可以是位于切分线两侧的向量在旋转矩阵数据对应的位置信息。第一切分位置信息可以包括两个切分向量位置信息。任一切分向量位置信息可以包括向量方向信息和对应的向量位置信息。其中,向量方向信息可以用于指示对应的向量属于行向量或列向量;向量方向信息对应的向量位置信息可以用于指示对应的向量所属的行数或列数。示例性的,在切分向量位置信息为(1,10)的情况下,可以确定上述切分向量位置信息指示的是第10行的行向量;在切分向量信息为(0,6)的情况下,可以确定上述切分向量位置信息指示的是第6列的列向量。可以理解的是,两个切分向量位置信息对应的切分线可以是介于上述两个切分向量位置信息各自对应的向量的之间。
在一个具体的实施例中,分发节点可以基于第一预设切分方向,确定第一切分位置信息中的向量方向信息;相应的,分发节点可以基于第一矩阵切分长度,确定第一切分位置信息中的向量位置信息。具体的,在第一预设切分方向与矩阵行方向相同的情况下,可以确定第一切分位置信息中的向量方向信息指示的方向为矩阵行方向;相应的,第一切分位置信息中的向量位置信息可以通过以下公式确定:
其中,P i1为第i个第一切分位置信息包含的两个切分向量位置信息其中一个切分位置信息对应的向量位置信息;P i2为第i个第一切分位置信息包含的两个切分向量位置信息另一个切分位置信息对应的向量位置信息;l为第一矩阵切分长度;i为1~N之间的任一自然数;N为第一矩阵行数量。
在一个具体的实施例中,分发节点可以基于上述多个第一切分位置信息,确定每个第一切分位置信息对应的切分线;分发节点可以基于上述每个第一切分位置信息对应的切分线,依次对旋转矩阵数据进行矩阵切分处理,得到第一数量个第一子矩阵数据。
在一个具体的实施例中,分发节点可以将任一第一子矩阵数据与旋转矩阵数据进行匹配处理,得到上述任一第一子矩阵数据所属的矩阵区域,并将多个第一切分位置信息与上述任一第一子矩阵数据所属的矩阵区域进行匹配处理,可以得到上述任一第一子矩阵数据对应的边界向量信息;接着,分发节点可以基于上述任一第一子矩阵数据对应的边界向量信息,确定上述任一第一子矩阵数据对应的第一位置信息。具体的,可以将多个第一切分位置信息中属于上述任一第一子矩阵数据所属的矩阵区域内的向量位置信息,作为上述任一第一子矩阵数据对应的边界向量信息;在上述任一第一子矩阵数据对应的边界向量信息包含两个向量位置信息的情况下,可以基于上述边界向量信息和垂直于上述第一预设切分方向的方向信息,生成上述任一第一子矩阵数据对应的第一位置信息;在上述任一第一子矩阵数据对应的边界向量信息包含一个向量位置信息的情况下,可以结合预设位置信息和上述任一第一子矩阵数据对应的边界向量信息,以及垂直于上述第一预设切分方向的方向信息,生成上述任一第一子矩阵数据对应的第一位置信息。具体的,预设位置信息可以包括预设起始位置信息和预设结束位置信息。
示例性的,假设第一待处理矩阵数据为A(K*N),分发节点可以先对上述第一待处理矩阵数据A(K*N)进行旋转处理,得到旋转矩阵数据A’(N*K);接着,分发节点可以对旋转矩阵数据A’(N*K)进行切分处理,得到第一数量个第一子矩阵数据,其中,每个第一子矩阵数据的尺寸均为N’*K,其中,N’为基于第一矩阵行数量和第一数量确定的第一矩阵切分长度。
在上述实施例中,分发节点基于预设旋转方向,对第一待处理矩阵数据进行旋转处理,得到旋转矩阵数据,分发节点基于第一预设切分方向和第一数量,对旋转矩阵数据进行切分处理,得到第一数量个第一子矩阵数据和每个第一子矩阵数据在第一待处理矩阵数据中对应的第一位置信息,上述对于第一待处理矩阵数据的预处理方法简单,可以实现分发节点的分发效率的提高。
在一个具体的实施例中,上述步骤S201可以包括:
分发节点基于第二预设切分方向和第一数量,对第一待处理矩阵数据进行切分处理,得到第一数量个切分子矩阵数据和每个切分子矩阵数据在第一待处理矩阵数据中对应的第三位置信息;
分发节点对每个切分子矩阵数据进行旋转处理,得到第一数量个第一子矩阵数据;
分发节点基于第三位置信息,生成每个第一子矩阵数据在第一待处理矩阵数据中对应的第一位置信息。
在一个具体的实施例中,第二预设切分方向可以是与矩阵列方向相同的方向。
在一个具体的实施例中,切分子矩阵数据可以是指切分后的子矩阵数据。
在一个具体的实施例中,任一切分子矩阵数据对应的第三位置信息可以是指上述任一切分子矩阵数据在第一待处理矩阵数据中的位置信息。
在一个具体的实施例中,上述分发节点基于第二预设切分方向和第一数量,对第一待处理矩阵数据进行切分处理,得到第一数量个切分子矩阵数据和每个切分子矩阵数据在第一待处理矩阵数据中对应的第三位置信息,可以包括:
分发节点获取第一待处理矩阵数据对应的目标矩阵列数量;
分发节点基于目标矩阵列数量和第一数量,确定第二矩阵切分长度;
分发节点基于第二矩阵切分长度和第二预设切分方向,确定第一待处理矩阵数据对应的多个第二切分位置信息;
分发节点基于多个第二切分位置信息,对第一待处理矩阵数据进行矩阵切分处理,得到第一数量个切分子矩阵数据;
分发节点基于多个第二切分位置信息和第一待处理矩阵数据,对第一数量个切分子矩阵数据进行子矩阵位置分析,得到第三位置信息。
在一个具体的实施例中,目标矩阵列数量可以是指第一待处理矩阵数据中所包含的列的数量。
在一个具体的实施例中,第二矩阵切分长度可以是指切分处理过程中相邻两个切分位置之间的间隔长度。
在一个具体的实施例中,分发节点可以将目标矩阵列数量除以上述第一数量,得到第二矩阵切分长度。
在一个具体的实施例中,第二切分位置信息可以用于针对旋转矩阵数据的切分处理过程中指示切分的位置。具体的,第二切分位置信息可以是切分线两侧的向量在旋转矩阵数据对应的位置信息。第二切分位置信息可以包括两个切分向量位置信息。任一切分向量位置信息可以包括向量方向信息和对应的向量位置信息。
在一个具体的实施例中,分发节点确定第二切分位置信息的具体过程,可以参照上述分发节点确定第一切分位置信息的具体过程,本公开不再赘述。
在一个具体的实施例中,分发节点基于第二切分位置信息对第一待处理矩阵数据进行矩阵切分处理的具体过程,可以参照上述分发节点基于第一切分位置信息对第一待处理矩阵数据进行矩阵切分处理的过程,本公开不再赘述。
在一个具体的实施例中,分发节点可以将任一切分子矩阵数据与第一待处理矩阵数据进行匹配处理,得到上述任一切分子矩阵数据所属的矩阵区域,并将多个第二切分位置信息与上述任一切分子矩阵数据所属的矩阵区域进行匹配处理,可以得到上述任一切分子矩阵数据对应的边界向量信息;接着,分发节点可以基于上述任一切分子矩阵数据对应的边界向量信息,确定上述任一切分子矩阵数据对应的第三位置信息。具体的,可以将多个第二切分位置信息中属于上述任一切分子矩阵数据所属的矩阵区域内的向量位置信息,作为上述任一切分子矩阵数据对应的边界向量信息;在上述任一切分子矩阵数据对应的边界向量信息包含两个向量位置信息的情况下,可以基于上述边界向量信息和上述第二预设切分方向的方向信息,生成上述任一切分子矩阵数据对应的第三位置信息;在上述任一切分子矩阵数据对应的边界向量信息包含一个向量位置信息的情况下,可以结合预设位置信息和上述任一切分子矩阵数据对应的边界向量信息,以及上述第二预设切分方向的方向信息,生成上述任一切分子矩阵数据对应的第三位置信息。具体的,预设位置信息可以包括预设起始位置信息和预设结束位置信息。
在一个具体的实施例中,分发节点可以基于预设旋转方向,对每个切分子矩阵数据进行旋转处理,得到第一数量个第一子矩阵数据。具体的,分发节点可以将每个切分子矩阵数据顺时针旋转90度,得到第一数量个第一子矩阵数据。
在一个具体的实施例中,分发节点可以将每个切分子矩阵数据对应的第三位置信息,作为上述每个切分子矩阵数据对应的第一子矩阵数据的第一位置信息。
示例性的,假设第一待处理矩阵数据为A(K*N),分发节点可以先对上述第一待处理矩阵数据A(K*N)进行切分处理,得到第一数量个切分子矩阵数据A”(K*N”),其中,N”为基于目标矩阵列数量和第一数量确定的第二矩阵切分长度;接着,分发节点可以对每个切分子矩阵数据进行旋转处理,得到第一数量个第一子矩阵数据,其中,每个第一子矩阵数据的尺寸均为N”*K。
在上述实施例中,分发节点基于第二预设切分方向和第一数量,对第一待处理矩阵数据进行切分处理,得到第一数量个切分子矩阵数据和每个切分子矩阵数据在第一待处理矩阵数据中对应的第三位置信息,分发节点对每个切分子矩阵数据进行旋转处理,得到第一数量个第一子矩阵数据,分发节点基于第三位置信息,生成每个第一子矩阵数据在第一待处理矩阵数据中对应的第一位置信息,上述对于第一待处理矩阵数据的预处理方法简单,可以实现分发节点的分发效率的提高。
S203:分发节点基于第一数量,对第二待处理矩阵数据进行第二切分处理,得到第一数量个第二子矩阵数据和每个第二子矩阵数据在第二待处理矩阵数据中对应的第二位置信息。
在一个具体的实施例中,第二待处理矩阵数据可以是指需要进行矩阵乘法计算的两个待处理矩阵数据的另一个矩阵数据。具体的,第二待处理矩阵数据可以是对应的矩阵列数量小于等于预设列数量的矩阵数据。
在一个具体的实施例中,第二子矩阵数据可以是指切分后的子矩阵数据。每个第二子矩阵数据可以是对应的矩阵列数量与第二待处理矩阵数据的矩阵列数量相同的子矩阵数据。
在一个具体的实施例中,任一第二子矩阵数据对应的第二位置信息可以表征上述任一第二子矩阵数据在第二待处理矩阵数据中对应的位置。具体的,任一第二子矩阵数据在第二待处理矩阵数据中对应的第二位置信息可以包括任一第二子矩阵数据对应的起始行向量的向量位置信息和上述任一第二子矩阵数据对应的结束行向量的向量位置信息。
在一个具体的实施例中,上述步骤S203可以包括:
分发节点获取第二待处理矩阵数据对应的第二矩阵行数量;
分发节点基于第二矩阵行数量和第一数量,确定第三矩阵切分长度;
分发节点基于第三矩阵切分长度和第一预设切分方向,确定第二待处理矩阵数据对应的多个第三切分位置信息;
分发节点基于多个第三切分位置信息,对第二待处理矩阵数据进行矩阵切分处理,得到第一数量个第二子矩阵数据;
分发节点基于多个第三切分位置信息和第二待处理矩阵数据,对第一数量个第二子矩阵数据进行子矩阵位置分析,得到第二位置信息。
在一个具体的实施例中,第二矩阵行数量可以是指第二待处理矩阵数据的矩阵行数量。具体的,分发节点可以基于第二待处理矩阵数据,确定第二待处理矩阵数据中所包含的行向量的数量,即可以得到第二待处理矩阵数据的矩阵行数量;相应的,分发节点可以将第二待处理矩阵数据的矩阵行数量,作为上述第二矩阵行数量。
在一个具体的实施例中,第三矩阵切分长度可以是指切分处理过程中相邻两个切分位置之间的间隔长度。
在一个具体的实施例中,分发节点可以将第二矩阵行数量除以上述第一数量,得到第三矩阵切分长度。
在一个具体的实施例中,第三切分位置信息可以用于针对第二待处理矩阵数据的切分处理过程中指示切分的位置。具体的,第三切分位置信息可以是位于切分线两侧的向量在第二待处理矩阵数据对应的位置信息。第三切分位置信息可以包括两个切分向量位置信息。其中,任一切分向量位置信息可以包括向量方向信息和对应的向量位置信息。
在一个具体的实施例中,分发节点对于第三切分位置信息的具体确定过程可以参照上述第一切分位置信息的具体确定过程,本公开不再赘述。
在一个具体的实施例中,分发节点基于第三切分位置信息对第二待处理矩阵数据进行矩阵切分处理的具体过程,可以参照上述分发节点基于第一切分位置信息对旋转矩阵数据进行矩阵切分处理的过程,本公开不再赘述。
在一个具体的实施例中,分发节点可以将任一第二子矩阵数据与第二待处理矩阵数据进行匹配处理,得到上述任一第二子矩阵数据所属的矩阵区域,并将多个第三切分位置信息与上述任一第二子矩阵数据所属的矩阵区域进行匹配处理,可以得到上述任一第二子矩阵数据对应的边界向量信息;接着,分发节点可以基于上述任一第二子矩阵数据对应的边界向量信息,确定上述任一第二子矩阵数据对应的第二位置信息。具体的,可以将多个第三切分位置信息中属于上述任一第二子矩阵数据所属的矩阵区域内的向量位置信息,作为上述任一第二子矩阵数据对应的边界向量信息;在上述任一第二子矩阵数据对应的边界向量信息包含两个向量位置信息的情况下,可以基于上述边界向量信息和第一预设切分方向的方向信息,生成上述任一第二子矩阵数据对应的第二位置信息;在上述任一第二子矩阵数据对应的边界向量信息包含一个向量位置信息的情况下,可以结合预设位置信息和上述任一第二子矩阵数据对应的边界向量信息,以及上述第一预设切分方向的方向信息,生成上述任一第二子矩阵数据对应的第二位置信息。具体的,预设位置信息可以包括预设起始位置信息和预设结束位置信息。
S205:分发节点基于第一位置信息和第二位置信息,对第一数量个第一子矩阵数据和第一数量个第二子矩阵数据进行组合处理,得到第一数量个子矩阵数据对,并将第一数量个子矩阵数据对分别分发给第一数量个计算节点。
在一个具体的实施例中,任一子矩阵数据对可以包括任一第一子矩阵数据和任一第一子矩阵数据对应的第二子矩阵数据。其中,任一第一子矩阵数据对应的第二子矩阵数据可以是指对应的第二位置信息与上述任一第一子矩阵数据对应的第一位置信息相同的第二子矩阵数据。
在一个具体的实施例中,上述步骤S205可以包括:
分发节点基于第一位置信息和第二位置信息,对第一数量个第一子矩阵数据和第一数量个第二子矩阵数据进行位置匹配处理,得到目标位置匹配结果;
分发节点对目标位置匹配结果中指示所属矩阵数据的位置相同的第一子矩阵数据和第二子矩阵数据进行组合,得到第一数量个子矩阵数据对。
在一个具体的实施例中,目标位置匹配结果可以用于指示所属矩阵数据的区域的位置相同的第一子矩阵数据和第二子矩阵数据。目标位置匹配结果可以包括多个位置匹配结果。其中,任一位置匹配结果可以包括两个相互匹配的子矩阵数据的标识信息。示例性的,在第一子矩阵数据M1和第二子矩阵数据M2相匹配的情况下,目标位置匹配结果可以包括位置匹配结果(M1,M2)。
在一个具体的实施例中,分发节点可以对每个第一子矩阵数据对应的第一位置信息和每个第二子矩阵数据对应的第二位置信息进行匹配处理,得到多个目标匹配结果;相应的,分发节点可以基于上述多个目标匹配结果,生成上述目标位置匹配结果。其中,目标匹配结果可以用于指示任一第一子矩阵数据对应的第一位置信息和任一第二子矩阵数据对应的第二位置信息之间是否相互匹配。具体的,在任一目标匹配结果指示任一第一子矩阵数据对应的第一位置信息和任一第二子矩阵数据对应的第二位置信息之间匹配的情况下,可以基于上述任一第一子矩阵数据对应的标识信息和上述任一第二子矩阵数据对应的标识信息,生成上述任一目标匹配结果对应的目标匹配结果。
示例性的,在基于第一待处理矩阵数据得到的第一数量个第一子矩阵数据按照位置从先至后的顺序排序依次包括MA1、MA2、MA3、MA4和MA5,且基于第二待处理矩阵数据得到的第一数量个第二子矩阵数据按照位置从先至后的顺序排序依次包括MB1、MB2、MB3、MB4和MB5的情况下,可以确定第一数量个子矩阵数据对包括(MA1,MB1)、(MA2,MB2)、(MA3,MB3)、(MA4,MB4)和(MA5,MB5)。
在一个具体的实施例中,每个计算节点上可以分发到一个子矩阵数据对。具体的,分发节点可以将任一子矩阵数据对分发至任一计算节点,以使每个计算节点上分发到一个子矩阵数据对。进一步的,分发节点可以向任一计算节点发送携带上述任一子矩阵数据对的第一计算指令;第一计算指令可以用于指示上述任一计算节点对上述任一子矩阵数据对进行向量点积处理。
在上述实施例中,分发节点基于第一位置信息和第二位置信息,对第一数量个第一子矩阵数据和第一数量个第二子矩阵数据进行位置匹配处理,得到目标位置匹配结果,分发节点对目标位置匹配结果中指示所属矩阵数据的位置相同的第一子矩阵数据和第二子矩阵数据进行组合,得到第一数量个子矩阵数据对,分发节点将第一数量个子矩阵数据对分别分发给第一数量个计算节点,可以实现每个计算节点之间计算任务的相互独立,可以减少节点间的通讯成本,且各个计算节点之间分配的矩阵数据之间不存在重复的数据存储,可以减少矩阵数据所需的***内存占用。
S207:每个计算节点对每个计算节点上的每个子矩阵数据对进行处理,得到每个子矩阵数据对对应的计算处理结果,并基于目标计算节点,对第一数量个子矩阵数据对各自对应的计算处理结果进行叠加处理,得到目标矩阵数据。
在一个具体的实施例中,每个子矩阵数据对对应的计算处理结果可以是指上述每个子矩阵数据对对应的计算节点对上述每个子矩阵数据对计算处理得到的结果。具体的,每个子矩阵数据对对应的计算处理结果可以是矩阵数据。
在一个具体的实施例中,目标计算节点可以为第一数量个计算节点中的任一计算节点。目标计算节点可以用于对第一数量个计算处理结果进行叠加处理。
在一个具体的实施例中,目标矩阵数据可以是指需要计算得到的矩阵数据。具体的,目标矩阵数据可以是对应的矩阵行数量与第一待处理矩阵数据的矩阵行数量相等,且对应的矩阵列数量与第二待处理矩阵数据的矩阵列数量相等的矩阵数据。
在一个具体的实施例中,任一计算节点在接收到子矩阵数据对的情况下,可以对子矩阵数据进行存储,相应的,上述任一计算节点可以对子矩阵数据进行处理,得到计算处理结果。
在一个具体的实施例中,每个计算节点对每个计算节点上的每个子矩阵数据对进行处理,得到每个子矩阵数据对对应的计算处理结果,可以包括:
每个计算节点从每个子矩阵数据对中,获取多个子矩阵向量对和每个子矩阵向量对对应的向量对位置信息;
每个计算节点启动多个线程,并基于多个线程中每个线程对每个子矩阵向量对进行向量点积处理,得到每个子矩阵向量对对应的向量点积结果;
每个计算节点基于每个子矩阵向量对对应的向量对位置信息和每个子矩阵向量对对应的向量点积结果,生成每个子矩阵数据对对应的计算处理结果。
在一个具体的实施例中,每个子矩阵向量对可以包括第一向量数据和第二向量数据。其中,第一向量数据可以为每个子矩阵数据对中第一子矩阵数据的列向量数据。第二向量数据可以为每个子矩阵数据对中第二子矩阵数据的列向量数据。
在一个具体的实施例中,向量对位置信息可以包括第一向量数据对应的第一向量位置信息和第二向量数据对应的第二向量位置信息。其中,第一向量位置信息可以是指第一向量数据在第一子矩阵数据中的位置信息。第二向量位置信息可以是指第二向量数据在第二子矩阵数据中的位置信息。
在一个具体的实施例中,任一计算节点可以从其接收到的子矩阵数据对中,获取上述接收到的子矩阵数据对对应的多个子矩阵向量对,以及上述多个子矩阵向量对中的每个子矩阵向量对对应的向量对位置信息。具体的,任一计算节点可以对接收到的子矩阵数据对中的第一子矩阵数据进行分解,得到多个第一矩阵向量数据;上述任一计算节点可以对接收到的子矩阵数据对中的第二子矩阵数据进行分解,得到多个第二矩阵向量数据;上述任一计算节点可以从上述多个第一矩阵向量数据和上述多个第二矩阵向量数据中选出任意一个第一矩阵向量数据和任意一个第二矩阵向量数据,生成目标子矩阵向量对。其中,上述目标子矩阵向量对可以是指多个子矩阵向量对中的任意一个。可以理解的是,在第一子矩阵数据包含K个列向量,且第二子矩阵数据包含M个列向量的情况下,可以生成K*M个子矩阵向量对。
在一个具体的实施例中,任一计算节点可以启动第二数量个线程,并基于上述第二数量个线程对第二数量个子矩阵向量对进行向量点积处理,得到第二数量个子矩阵向量对对应的向量点积结果。其中,第二数量可以是指任一子矩阵数据对对应的子矩阵向量对的数量。具体的,每个线程可以分发到一个子矩阵向量对;每个线程可以对接收到的子矩阵向量对进行向量点积处理,得到向量点积结果。
在一个具体的实施例中,每个线程可以通过以下公式进行向量点积处理得到向量点积结果:
其中,c为任一子矩阵向量对对应的向量点积结果;V1为任一子矩阵向量对中的第一向量数据;V2为任一子矩阵向量对中的第二向量数据。
在一个具体的实施例中,任一计算节点可以基于任一子矩阵向量对对应的向量对位置信息,确定上述任一子矩阵向量对对应的点积结果位置信息,相应的,可以得到多个子矩阵向量对对应的点积结果位置信息;接着,上述任一计算节点可以基于上述多个子矩阵向量对各自对应的点积结果位置信息和上述多个子矩阵向量对各自对应的向量点积结果,生成计算处理结果。其中,任一子矩阵向量对对应的点积结果位置信息可以用于指示上述任一子矩阵向量对对应的向量点积结果在计算处理结果中对应的位置。具体的,任一子矩阵向量对对应的点积结果位置信息(P row,P col)可以通过以下公式得到:
其中,P row为任一子矩阵向量对对应的向量点积结果在计算处理结果中对应的行数;P col为任一子矩阵向量对对应的向量点积结果在计算处理结果中对应的列数;n为上述任一子矩阵向量对所属的子矩阵数据对中第一子矩阵数据包含的列数;i为上述任一子矩阵向量对中第一向量数据在第一子矩阵数据中对应的列数;j为上述任一子矩阵向量对中第二向量数据在第二子矩阵数据中对应的列数。
示例性的,在任一子矩阵数据对对应的多个向量点积结果包括R1、R2、R3和R4的情况下,假设向量点积结果R1对应的点击结果位置信息为(1,1),向量点积结果R2对应的点击结果位置信息为(1,2),向量点积结果R3对应的点击结果位置信息为(2,1),向量点积结果R4对应的点击结果位置信息为(2,2),可以生成对应的计算处理结果为。
在一个具体的实施例中,每个计算节点可以基于列存数据库进行子矩阵向量对的向量点积处理。
在一个具体的实施例中,第一计算指令还可以包括目标计算节点的节点标识信息。分发节点在生成第一计算节点之前,可以从第一数量个计算节点中,随机选出任一计算节点,作为目标计算节点;相应的,分发节点可以向每个计算节点发送携带任一子矩阵数据对和目标计算节点的节点标识信息的第一计算指令,以使每个计算节点在对上述任一子矩阵数据对进行处理得到计算处理结果的情况下,将计算处理结果发送至目标计算节点,以及目标计算节点在接收到第一数量个计算节点中除目标节点之外其他计算节点发送的计算处理结果的情况下,可以对第一数量个计算节点各自对应的计算处理结果进行叠加处理,得到目标矩阵数据。具体的,计算节点在处理得到计算处理结果后,可以将计算处理结果发送至目标计算节点;目标计算节点在处理得到计算处理结果后,可以等待其他计算节点发送计算处理结果,直至在获取到第一数量个计算节点各自对应的计算处理结果后,对第一数量个计算节点各自对应的计算处理结果进行叠加处理,得到目标矩阵数据。可以理解的是,第一数量个计算处理结果的叠加处理过程的计算量较小,通过从第一数量个计算节点中选出一个计算节点作为目标计算节点,每个计算节点分发到一个子矩阵数据进行处理,可以使计算节点的算力最大化的应用在子矩阵数据对的处理过程,从而提升***整体处理效率。
在一个具体的实施例中,第一数量个计算节点中每个计算节点在计算得到计算处理结果后,可以将计算处理结果返回至分发节点;分发节点可以在接收到第一数量个计算处理结果的情况下,从第一数量个计算节点中选出目标计算节点,并向目标计算节点发送携带第一数量个计算处理结果的第二计算指令;目标计算节点在接收到第二计算指令的情况下,可以对上述第一数量个计算处理结果进行叠加处理,得到目标矩阵数据。
在一个具体的实施例中,目标计算节点可以对第一数量个计算处理结果进行矩阵加法处理,得到目标矩阵数据。具体的,目标计算节点可以将第一数量个计算处理结果中相同位置对应的矩阵元素进行叠加,可以得到目标矩阵数据中在该位置的矩阵元素。进一步的,目标计算节点可以通过以下公式计算得到目标矩阵数据:
其中,C为目标矩阵数据;C1为第一个子矩阵数据对对应的计算处理结果;C2为第二个子矩阵数据对对应的计算处理结果;Cn为第n个子矩阵数据对对应的计算处理结果;n为第一数量。
在一个具体的实施例中,目标计算节点在计算得到目标矩阵数据的情况下,可以将目标矩阵数据返回给分发节点。相应的,分发节点可以基于矩阵数据处理请求中请求发送方的地址信息,返回上述目标矩阵数据。
在上述实施例中,每个计算节点从每个子矩阵数据对中,获取多个子矩阵向量对和每个子矩阵向量对对应的向量对位置信息,每个计算节点启动多个线程,并基于多个线程中每个线程对每个子矩阵向量对进行向量点积处理,得到每个子矩阵向量对对应的向量点积结果,通过线程并行处理子矩阵向量对可以进一步提高***的计算处理效率,每个计算节点基于每个子矩阵向量对对应的向量对位置信息和每个子矩阵向量对对应的向量点积结果,生成每个子矩阵数据对对应的计算处理结果,可以在兼顾到减少矩阵数据存储占用和减少节点间通讯成本的基础上,实现***计算效率的提升。
在上述实施例中,分发节点基于第一数量,对第一待处理矩阵数据进行第一切分处理,得到第一数量个第一子矩阵数据和每个第一子矩阵数据在第一待处理矩阵数据中对应的第一位置信息,其中,第一待处理矩阵数据对应的矩阵行数量小于等于预设行数量,每个第一子矩阵数据对应的矩阵列数量与第一待处理矩阵数据对应的矩阵行数量相同,可以实现第一数量个第一子矩阵数据的切分,分发节点再基于第一数量,对第二待处理矩阵数据进行第二切分处理,得到第一数量个第二子矩阵数据和每个第二子矩阵数据在第二待处理矩阵数据中对应的第二位置信息,其中,第二待处理矩阵数据对应的矩阵列数量小于等于预设列数量,每个第二子矩阵数据对应的矩阵列数量与第二待处理矩阵数据的矩阵列数量相同,可以实现第一数量个第二子矩阵数据的切分,接着,分发节点基于第一位置信息和第二位置信息,对第一数量个第一子矩阵数据和第一数量个第二子矩阵数据进行组合处理,得到第一数量个子矩阵数据对,并将第一数量个子矩阵数据对分别分发给第一数量个计算节点,每个计算节点上分发到一个子矩阵数据对,可以实现每个计算节点之间计算任务的相互独立,可以减少节点间的通讯成本,且各个计算节点之间分配的矩阵数据之间不存在重复的数据存储,可以减少矩阵数据的内存占用,然后,每个计算节点对每个计算节点上的每个子矩阵数据对进行处理,得到每个子矩阵数据对对应的计算处理结果,并基于目标计算节点,对第一数量个子矩阵数据对各自对应的计算处理结果进行叠加处理,得到目标矩阵数据,可以在兼顾到减少矩阵数据存储占用和减少节点间通讯成本的基础上,实现***计算效率的提升。
图3是根据一示例性实施例示出的一种数据处理方法的示意图。具体的,如图3所示,分发节点可以基于第一数量,对第一待处理矩阵数据A进行第一切分处理,得到第一数量个第一子矩阵数据Ai’和每个第一子矩阵数据Ai’在第一待处理矩阵数据中对应的第一位置信息;分发节点基于第一数量,对第二待处理矩阵数据B进行第二切分处理,可以得到第一数量个第二子矩阵数据Bi’和每个第二子矩阵数据Bi’在第二待处理矩阵数据中对应的第二位置信息;分发节点基于第一位置信息和第二位置信息,对第一数量个第一子矩阵数据和第一数量个第二子矩阵数据进行组合处理,可以得到第一数量个子矩阵数据对,并将第一数量个子矩阵数据对分别分发给第一数量个计算节点,每个计算节点上可以分发到一个子矩阵数据对;每个计算节点对每个计算节点上的每个子矩阵数据对进行处理,可以得到每个子矩阵数据对对应的计算处理结果Ci’,并基于目标计算节点,对第一数量个子矩阵数据对各自对应的计算处理结果Ci’进行叠加处理,可以得到目标矩阵数据C。
图4是根据一示例性实施例示出的一种数据处理***的框图。如图4所示,该***可以包括分发节点和第一数量个计算节点;
分发节点可以用于基于第一数量,对第一待处理矩阵数据进行第一切分处理,得到第一数量个第一子矩阵数据和每个第一子矩阵数据在第一待处理矩阵数据中对应的第一位置信息;第一待处理矩阵数据对应的矩阵行数量小于等于预设行数量,每个第一子矩阵数据对应的矩阵列数量与第一待处理矩阵数据对应的矩阵行数量相同;以及可以用于基于第一数量,对第二待处理矩阵数据进行第二切分处理,得到第一数量个第二子矩阵数据和每个第二子矩阵数据在第二待处理矩阵数据中对应的第二位置信息;第二待处理矩阵数据对应的矩阵列数量小于等于预设列数量,每个第二子矩阵数据对应的矩阵列数量与第二待处理矩阵数据的矩阵列数量相同;以及可以用于基于第一位置信息和第二位置信息,对第一数量个第一子矩阵数据和第一数量个第二子矩阵数据进行组合处理,得到第一数量个子矩阵数据对,并将第一数量个子矩阵数据对分别分发给第一数量个计算节点,每个计算节点上分发到一个子矩阵数据对;
第一数量个计算节点可以用于对每个计算节点上的每个子矩阵数据对进行处理,得到每个子矩阵数据对对应的计算处理结果,并基于目标计算节点,对第一数量个子矩阵数据对各自对应的计算处理结果进行叠加处理,得到目标矩阵数据;目标计算节点为第一数量个计算节点中的任一计算节点。
在一个具体的实施例中,上述第一数量个计算节点还可以用于从每个子矩阵数据对中,获取多个子矩阵向量对和每个子矩阵向量对对应的向量对位置信息,每个子矩阵向量对包括第一向量数据和第二向量数据,第一向量数据为每个子矩阵数据对中第一子矩阵数据的列向量数据,第二向量数据为每个子矩阵数据对中第二子矩阵数据的列向量数据,向量对位置信息包括第一向量数据对应的第一向量位置信息和第二向量数据对应的第二向量位置信息;以及用于启动多个线程,并基于多个线程中每个线程对每个子矩阵向量对进行向量点积处理,得到每个子矩阵向量对对应的向量点积结果;以及用于基于每个子矩阵向量对对应的向量对位置信息和每个子矩阵向量对对应的向量点积结果,生成每个子矩阵数据对对应的计算处理结果。
在一个具体的实施例中,上述分发节点还可以用于基于预设旋转方向,对第一待处理矩阵数据进行旋转处理,得到旋转矩阵数据;以及用于基于第一预设切分方向和第一数量,对旋转矩阵数据进行切分处理,得到第一数量个第一子矩阵数据和每个第一子矩阵数据在第一待处理矩阵数据中对应的第一位置信息;第一预设切分方向与矩阵行方向相同。
在一个具体的实施例中,上述分发节点还可以用于获取旋转矩阵数据对应的第一矩阵行数量;以及用于基于第一矩阵行数量和第一数量,确定第一矩阵切分长度;以及用于基于第一矩阵切分长度和第一预设切分方向,确定旋转矩阵数据对应的多个第一切分位置信息;以及用于基于多个第一切分位置信息,对旋转矩阵数据进行矩阵切分处理,得到第一数量个第一子矩阵数据;以及用于基于多个第一切分位置信息和旋转矩阵数据,对第一数量个第一子矩阵数据进行子矩阵位置分析,得到第一位置信息。
在一个具体的实施例中,上述分发节点还可以用于基于第二预设切分方向和第一数量,对第一待处理矩阵数据进行切分处理,得到第一数量个切分子矩阵数据和每个切分子矩阵数据在第一待处理矩阵数据中对应的第三位置信息;第二预设切分方向与矩阵列方向相同;以及用于对每个切分子矩阵数据进行旋转处理,得到第一数量个第一子矩阵数据;以及用于基于第三位置信息,生成每个第一子矩阵数据在第一待处理矩阵数据中对应的第一位置信息。
在一个具体的实施例中,上述分发节点还可以用于获取第一待处理矩阵数据对应的目标矩阵列数量;以及用于基于目标矩阵列数量和第一数量,确定第二矩阵切分长度;以及用于基于第二矩阵切分长度和第二预设切分方向,确定第一待处理矩阵数据对应的多个第二切分位置信息;以及用于基于多个第二切分位置信息,对第一待处理矩阵数据进行矩阵切分处理,得到第一数量个切分子矩阵数据;以及用于基于多个第二切分位置信息和第一待处理矩阵数据,对第一数量个切分子矩阵数据进行子矩阵位置分析,得到第三位置信息。
在一个具体的实施例中,上述分发节点还可以用于获取第二待处理矩阵数据对应的第二矩阵行数量;以及用于基于第二矩阵行数量和第一数量,确定第三矩阵切分长度;以及用于基于第三矩阵切分长度和第一预设切分方向,确定第二待处理矩阵数据对应的多个第三切分位置信息;以及用于基于多个第三切分位置信息,对第二待处理矩阵数据进行矩阵切分处理,得到第一数量个第二子矩阵数据;以及用于基于多个第三切分位置信息和第二待处理矩阵数据,对第一数量个第二子矩阵数据进行子矩阵位置分析,得到第二位置信息。
在一个具体的实施例中,上述分发节点还可以用于基于第一位置信息和第二位置信息,对第一数量个第一子矩阵数据和第一数量个第二子矩阵数据进行位置匹配处理,得到目标位置匹配结果;以及用于对目标位置匹配结果中指示所属矩阵数据的位置相同的第一子矩阵数据和第二子矩阵数据进行组合,得到第一数量个子矩阵数据对。
关于上述实施例中的***,其中各个模块和单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图5是根据一示例性实施例示出的一种用于生成目标矩阵数据的电子设备的框图,该电子设备可以是服务器,其内部结构图可以如图5所示。该电子设备包括通过***总线连接的处理器、存储器和网络接口。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据处理方法。
图6是根据一示例性实施例示出的另一种用于生成目标矩阵数据的电子设备的框图,该电子设备可以是终端,其内部结构图可以如图6所示。该电子设备包括通过***总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据处理方法。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5或图6中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在示例性实施例中,还提供了一种电子设备,包括:处理器;用于存储该处理器可执行指令的存储器;其中,该处理器被配置为执行该指令,以实现如本公开实施例中的数据处理方法。
在示例性实施例中,还提供了一种计算机可读存储介质,当该存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本公开实施例中的数据处理方法。
在示例性实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本公开实施例中的数据处理方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
可以理解的是,在本申请的具体实施方式中,涉及到用户信息等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种数据处理方法,其特征在于,应用于数据处理***,所述数据处理***包括分发节点和第一数量个计算节点,所述方法包括:
所述分发节点基于所述第一数量,对第一待处理矩阵数据进行第一切分处理,得到所述第一数量个第一子矩阵数据和每个第一子矩阵数据在所述第一待处理矩阵数据中对应的第一位置信息;所述第一待处理矩阵数据对应的矩阵行数量小于等于预设行数量,所述每个第一子矩阵数据对应的矩阵列数量与所述第一待处理矩阵数据对应的矩阵行数量相同;
所述分发节点基于所述第一数量,对第二待处理矩阵数据进行第二切分处理,得到所述第一数量个第二子矩阵数据和每个第二子矩阵数据在所述第二待处理矩阵数据中对应的第二位置信息,包括:所述分发节点获取所述第二待处理矩阵数据对应的第二矩阵行数量;所述分发节点基于所述第二矩阵行数量和所述第一数量,确定第三矩阵切分长度;所述分发节点基于所述第三矩阵切分长度和第一预设切分方向,确定所述第二待处理矩阵数据对应的多个第三切分位置信息;所述分发节点基于所述多个第三切分位置信息,对所述第二待处理矩阵数据进行矩阵切分处理,得到所述第一数量个第二子矩阵数据;所述分发节点基于所述多个第三切分位置信息和所述第二待处理矩阵数据,对所述第一数量个第二子矩阵数据进行子矩阵位置分析,得到所述第二位置信息;所述第二待处理矩阵数据对应的矩阵列数量小于等于预设列数量,所述每个第二子矩阵数据对应的矩阵列数量与所述第二待处理矩阵数据的矩阵列数量相同;
所述分发节点基于所述第一位置信息和所述第二位置信息,对所述第一数量个第一子矩阵数据和所述第一数量个第二子矩阵数据进行组合处理,得到所述第一数量个子矩阵数据对,并将所述第一数量个子矩阵数据对分别分发给所述第一数量个计算节点,每个计算节点上分发到一个子矩阵数据对;
每个计算节点对所述每个计算节点上的每个子矩阵数据对进行处理,得到所述每个子矩阵数据对对应的计算处理结果,并基于目标计算节点,对所述第一数量个子矩阵数据对各自对应的计算处理结果进行叠加处理,得到目标矩阵数据;所述目标计算节点为所述第一数量个计算节点中的任一计算节点;
其中,所述分发节点基于所述第一位置信息和所述第二位置信息,对所述第一数量个第一子矩阵数据和所述第一数量个第二子矩阵数据进行组合处理,得到所述第一数量个子矩阵数据对,包括:所述分发节点基于所述第一位置信息和所述第二位置信息,对所述第一数量个第一子矩阵数据和所述第一数量个第二子矩阵数据进行位置匹配处理,得到目标位置匹配结果;所述分发节点对所述目标位置匹配结果中指示所属矩阵数据的位置相同的第一子矩阵数据和第二子矩阵数据进行组合,得到所述第一数量个子矩阵数据对。
2.根据权利要求1所述的方法,其特征在于,所述每个计算节点对所述每个计算节点上的每个子矩阵数据对进行处理,得到所述每个子矩阵数据对对应的计算处理结果,包括:
所述每个计算节点从所述每个子矩阵数据对中,获取多个子矩阵向量对和每个子矩阵向量对对应的向量对位置信息,所述每个子矩阵向量对包括第一向量数据和第二向量数据,所述第一向量数据为所述每个子矩阵数据对中第一子矩阵数据的列向量数据,所述第二向量数据为所述每个子矩阵数据对中第二子矩阵数据的列向量数据,所述向量对位置信息包括所述第一向量数据对应的第一向量位置信息和所述第二向量数据对应的第二向量位置信息;
所述每个计算节点启动多个线程,并基于所述多个线程中每个线程对每个子矩阵向量对进行向量点积处理,得到所述每个子矩阵向量对对应的向量点积结果;
所述每个计算节点基于所述每个子矩阵向量对对应的向量对位置信息和所述每个子矩阵向量对对应的向量点积结果,生成所述每个子矩阵数据对对应的计算处理结果。
3.根据权利要求1所述的方法,其特征在于,所述分发节点基于所述第一数量,对第一待处理矩阵数据进行第一切分处理,得到所述第一数量个第一子矩阵数据和每个第一子矩阵数据在所述第一待处理矩阵数据中对应的第一位置信息,包括:
所述分发节点基于预设旋转方向,对所述第一待处理矩阵数据进行旋转处理,得到旋转矩阵数据;
所述分发节点基于第一预设切分方向和所述第一数量,对所述旋转矩阵数据进行切分处理,得到所述第一数量个第一子矩阵数据和每个第一子矩阵数据在所述第一待处理矩阵数据中对应的第一位置信息;所述第一预设切分方向与矩阵行方向相同。
4.根据权利要求3所述的方法,其特征在于,所述分发节点基于第一预设切分方向和所述第一数量,对所述旋转矩阵数据进行切分处理,得到所述第一数量个第一子矩阵数据和每个第一子矩阵数据在所述第一待处理矩阵数据中对应的第一位置信息,包括:
所述分发节点获取所述旋转矩阵数据对应的第一矩阵行数量;
所述分发节点基于所述第一矩阵行数量和所述第一数量,确定第一矩阵切分长度;
所述分发节点基于所述第一矩阵切分长度和所述第一预设切分方向,确定所述旋转矩阵数据对应的多个第一切分位置信息;
所述分发节点基于所述多个第一切分位置信息,对所述旋转矩阵数据进行矩阵切分处理,得到所述第一数量个第一子矩阵数据;
所述分发节点基于所述多个第一切分位置信息和所述旋转矩阵数据,对所述第一数量个第一子矩阵数据进行子矩阵位置分析,得到所述第一位置信息。
5.根据权利要求1所述的方法,其特征在于,所述分发节点基于所述第一数量,对第一待处理矩阵数据进行第一切分处理,得到所述第一数量个第一子矩阵数据和每个第一子矩阵数据在所述第一待处理矩阵数据中对应的第一位置信息,包括:
所述分发节点基于第二预设切分方向和所述第一数量,对所述第一待处理矩阵数据进行切分处理,得到所述第一数量个切分子矩阵数据和每个切分子矩阵数据在所述第一待处理矩阵数据中对应的第三位置信息;所述第二预设切分方向与矩阵列方向相同;
所述分发节点对所述每个切分子矩阵数据进行旋转处理,得到所述第一数量个第一子矩阵数据;
所述分发节点基于所述第三位置信息,生成所述每个第一子矩阵数据在所述第一待处理矩阵数据中对应的第一位置信息。
6.根据权利要求5所述的方法,其特征在于,所述分发节点基于第二预设切分方向和所述第一数量,对所述第一待处理矩阵数据进行切分处理,得到所述第一数量个切分子矩阵数据和每个切分子矩阵数据在所述第一待处理矩阵数据中对应的第三位置信息,包括:
所述分发节点获取所述第一待处理矩阵数据对应的目标矩阵列数量;
所述分发节点基于所述目标矩阵列数量和所述第一数量,确定第二矩阵切分长度;
所述分发节点基于所述第二矩阵切分长度和所述第二预设切分方向,确定所述第一待处理矩阵数据对应的多个第二切分位置信息;
所述分发节点基于所述多个第二切分位置信息,对所述第一待处理矩阵数据进行矩阵切分处理,得到所述第一数量个切分子矩阵数据;
所述分发节点基于所述多个第二切分位置信息和所述第一待处理矩阵数据,对所述第一数量个切分子矩阵数据进行子矩阵位置分析,得到所述第三位置信息。
7.一种数据处理***,其特征在于,所述***包括分发节点和第一数量个计算节点;
所述分发节点用于基于所述第一数量,对第一待处理矩阵数据进行第一切分处理,得到所述第一数量个第一子矩阵数据和每个第一子矩阵数据在所述第一待处理矩阵数据中对应的第一位置信息;所述第一待处理矩阵数据对应的矩阵行数量小于等于预设行数量,所述每个第一子矩阵数据对应的矩阵列数量与所述第一待处理矩阵数据对应的矩阵行数量相同;以及用于基于所述第一数量,对第二待处理矩阵数据进行第二切分处理,得到所述第一数量个第二子矩阵数据和每个第二子矩阵数据在所述第二待处理矩阵数据中对应的第二位置信息;所述第二待处理矩阵数据对应的矩阵列数量小于等于预设列数量,所述每个第二子矩阵数据对应的矩阵列数量与所述第二待处理矩阵数据的矩阵列数量相同;以及用于基于所述第一位置信息和所述第二位置信息,对所述第一数量个第一子矩阵数据和所述第一数量个第二子矩阵数据进行组合处理,得到所述第一数量个子矩阵数据对,并将所述第一数量个子矩阵数据对分别分发给所述第一数量个计算节点,每个计算节点上分发到一个子矩阵数据对;
所述第一数量个计算节点用于对所述每个计算节点上的每个子矩阵数据对进行处理,得到所述每个子矩阵数据对对应的计算处理结果,并基于目标计算节点,对所述第一数量个子矩阵数据对各自对应的计算处理结果进行叠加处理,得到目标矩阵数据;所述目标计算节点为所述第一数量个计算节点中的任一计算节点;
其中,所述分发节点基于所述第一数量,对第二待处理矩阵数据进行第二切分处理,得到所述第一数量个第二子矩阵数据和每个第二子矩阵数据在所述第二待处理矩阵数据中对应的第二位置信息,包括:所述分发节点获取所述第二待处理矩阵数据对应的第二矩阵行数量;所述分发节点基于所述第二矩阵行数量和所述第一数量,确定第三矩阵切分长度;所述分发节点基于所述第三矩阵切分长度和第一预设切分方向,确定所述第二待处理矩阵数据对应的多个第三切分位置信息;所述分发节点基于所述多个第三切分位置信息,对所述第二待处理矩阵数据进行矩阵切分处理,得到所述第一数量个第二子矩阵数据;所述分发节点基于所述多个第三切分位置信息和所述第二待处理矩阵数据,对所述第一数量个第二子矩阵数据进行子矩阵位置分析,得到所述第二位置信息;
所述分发节点基于所述第一位置信息和所述第二位置信息,对所述第一数量个第一子矩阵数据和所述第一数量个第二子矩阵数据进行组合处理,得到所述第一数量个子矩阵数据对,包括:所述分发节点基于所述第一位置信息和所述第二位置信息,对所述第一数量个第一子矩阵数据和所述第一数量个第二子矩阵数据进行位置匹配处理,得到目标位置匹配结果;所述分发节点对所述目标位置匹配结果中指示所属矩阵数据的位置相同的第一子矩阵数据和第二子矩阵数据进行组合,得到所述第一数量个子矩阵数据对。
8.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令以实现权利要求1至6中任意一项所述的数据处理方法。
9.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至6中任意一项所述的数据处理方法。
10.一种计算机程序产品,包括计算机指令,其特征在于,所述计算机指令被处理器执行时实现权利要求1至6中任意一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410177698.8A CN117724856B (zh) | 2024-02-08 | 2024-02-08 | 数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410177698.8A CN117724856B (zh) | 2024-02-08 | 2024-02-08 | 数据处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117724856A CN117724856A (zh) | 2024-03-19 |
CN117724856B true CN117724856B (zh) | 2024-04-19 |
Family
ID=90211042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410177698.8A Active CN117724856B (zh) | 2024-02-08 | 2024-02-08 | 数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117724856B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107301155A (zh) * | 2017-06-27 | 2017-10-27 | 郑州云海信息技术有限公司 | 一种数据处理方法及处理装置 |
CN108671541A (zh) * | 2018-04-27 | 2018-10-19 | 腾讯科技(深圳)有限公司 | 一种数据存储方法和装置以及存储介质 |
CN111158874A (zh) * | 2019-12-20 | 2020-05-15 | 深圳市商汤科技有限公司 | 数据处理方法和装置、电子设备及存储介质 |
CN111243086A (zh) * | 2020-01-19 | 2020-06-05 | 叠境数字科技(上海)有限公司 | 模型顶点的并行处理方法、***、求解器、芯片和介质 |
CN114647818A (zh) * | 2020-12-21 | 2022-06-21 | 深圳市中兴微电子技术有限公司 | 矩阵运算结果的确定方法及装置、存储介质、电子装置 |
CN116415100A (zh) * | 2021-12-30 | 2023-07-11 | 华为技术有限公司 | 业务处理方法、装置、处理器及计算设备 |
WO2024012180A1 (zh) * | 2022-07-15 | 2024-01-18 | 华为技术有限公司 | 一种矩阵计算方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6907700B2 (ja) * | 2017-05-23 | 2021-07-21 | 富士通株式会社 | 情報処理装置、マルチスレッド行列演算方法、およびマルチスレッド行列演算プログラム |
US10726096B2 (en) * | 2018-10-12 | 2020-07-28 | Hewlett Packard Enterprise Development Lp | Sparse matrix vector multiplication with a matrix vector multiplication unit |
-
2024
- 2024-02-08 CN CN202410177698.8A patent/CN117724856B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107301155A (zh) * | 2017-06-27 | 2017-10-27 | 郑州云海信息技术有限公司 | 一种数据处理方法及处理装置 |
CN108671541A (zh) * | 2018-04-27 | 2018-10-19 | 腾讯科技(深圳)有限公司 | 一种数据存储方法和装置以及存储介质 |
CN111158874A (zh) * | 2019-12-20 | 2020-05-15 | 深圳市商汤科技有限公司 | 数据处理方法和装置、电子设备及存储介质 |
CN111243086A (zh) * | 2020-01-19 | 2020-06-05 | 叠境数字科技(上海)有限公司 | 模型顶点的并行处理方法、***、求解器、芯片和介质 |
CN114647818A (zh) * | 2020-12-21 | 2022-06-21 | 深圳市中兴微电子技术有限公司 | 矩阵运算结果的确定方法及装置、存储介质、电子装置 |
CN116415100A (zh) * | 2021-12-30 | 2023-07-11 | 华为技术有限公司 | 业务处理方法、装置、处理器及计算设备 |
WO2024012180A1 (zh) * | 2022-07-15 | 2024-01-18 | 华为技术有限公司 | 一种矩阵计算方法及装置 |
Non-Patent Citations (1)
Title |
---|
"面向多核向量处理器的矩阵乘法向量化方法";刘仲等;《计算机学报》;20170630(第10期);第79-92页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117724856A (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9208189B2 (en) | Distributed request processing | |
US10482392B2 (en) | Robust large-scale machine learning in the cloud | |
CN111767508B (zh) | 计算机实现张量数据计算的方法、装置、介质和设备 | |
CN111242165B (zh) | 商户聚类方法、装置、计算机设备和存储介质 | |
CN111324471A (zh) | 服务调整方法、装置、设备及存储介质 | |
US20100257220A1 (en) | Multi-dimensional transform for distributed memory network | |
CN113032007A (zh) | 一种数据处理方法及装置 | |
CN111709415B (zh) | 目标检测方法、装置、计算机设备和存储介质 | |
US9582474B2 (en) | Method and apparatus for performing a FFT computation | |
KR101827167B1 (ko) | Sift 병렬 처리를 이용한 고속 영상 스티칭 방법 및 장치 | |
CN117724856B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
KR102239588B1 (ko) | 이미지 처리 방법 및 장치 | |
CN117608855A (zh) | 一种动态负载均衡方法及***及装置及介质 | |
EP3096308B1 (en) | Element replication device, element replication method, and program | |
US8938484B2 (en) | Maintaining dependencies among supernodes during repeated matrix factorizations | |
CN111712811A (zh) | Hd地图的可扩展图形slam | |
CN113360744B (zh) | 媒体内容的推荐方法、装置、计算机设备和存储介质 | |
CN114549945A (zh) | 遥感影像变化检测方法及相关装置 | |
CN115471550B (zh) | 2.5维图像空间几何方位角校正方法、装置、设备及介质 | |
EP4354415A1 (en) | Secure computing device, secure computing system, secure computing method, and program | |
EP3579135B1 (en) | Methods and devices for hardware characterization of computing devices | |
CN117076790A (zh) | 地址匹配方法、装置、计算机设备、存储介质和程序产品 | |
Shiriaev et al. | Modification of the Projection Method to Correct Errors in RNS | |
Yamamoto et al. | Estimating the processing time of a model of cloud computing | |
CN114238408A (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 |