当前位置: 首页 > 专利查询>苹果公司专利>正文

优化的分布式私有矩阵乘法制造技术

技术编号:37200856 阅读:16 留言:0更新日期:2023-04-20 22:56
本申请涉及优化的分布式私有矩阵乘法。公开了用于对矩阵数据结构进行分布式处理的方法、系统和计算机程序。在一个方面,该方法可包括获得第一矩阵数据结构(DS);将所获得的矩阵DS分割成M个不同的矩阵DS部分的集合;将不同的M个矩阵DS部分中的每一者分割成K个矩阵DS子部分的相应集合;对于K个矩阵DS子部分的相应集合中的每一者:生成具有与该K个矩阵DS子部分中的每一者相同的维度的混淆矩阵,以及由一个或多个计算机生成K个矩阵DS子部分的每个相应集合的混淆表示,该混淆表示包括(i)该K个矩阵DS子部分和(ii)该混淆矩阵;以及将表示该M个矩阵DS部分的相应集合的该(K个)矩阵DS子部分的(N个)混淆表示中的每一者的数据传输到不同计算机以用于处理。不同计算机以用于处理。不同计算机以用于处理。

【技术实现步骤摘要】
优化的分布式私有矩阵乘法
[0001]相关申请的交叉引用
[0002]本申请要求美国临时专利申请第63/243,726号以及美国专利申请第17/942,087号的权益,这些申请全文以引用方式并入本文。


[0003]本公开涉及矩阵运算。

技术介绍

[0004]存在用于获得矩阵(A)并且执行将所获得的矩阵(A)单次分离成K个条带A
i
的常规系统,这些条带A
i
将被混淆并且然后分发在不同的工作器计算机之间以用于处理。将矩阵(A)分离成K个条带A
i
的目标是通过使用多个工作器计算机并行处理K个条带以实现整体速度增加。

技术实现思路

[0005]尽管存在用于矩阵A的K个条带的分布式处理的常规系统,但此类系统具有缺点。例如,当K增长得太大时,此类系统通常不能从并行化的增加中获得最大的利益,因为对于如此大数量的K,适应编码过程所必需的系统设计改变常常抵消了可经由增加并行化所实现的益处。
[0006]本公开通过使得能够将矩阵数据结构部分进一步划分为矩阵数据结构子部分而不增加导致常规系统的处理负载,解决了常规系统中的此类缺陷。本公开通过使用混淆过程来实现该解决方案,该混淆过程混淆矩阵数据结构子部分的集合,而不是如常规系统中将发生的那样混淆每个子部分。因此,本公开可以增加并行化和吞吐量,而不以指数或至少多项式增加分发器计算机的计算资源支出。
[0007]本公开整体涉及一种用于优化的分布式私有矩阵乘法的系统和方法,其改进了执行矩阵乘法的系统的性能。该系统通过提供优化的系统相对于常规系统实现了性能的改进,该优化的系统可创建附加条带(例如,子条带),而不增加在常规方法下将被混淆和解码的混淆矩阵数据结构的总数。因此,本公开可以促进矩阵的更大分割,以实现更大并行化,而不会在矩阵数据结构生成和混淆期间在网络的矩阵分发侧上增加计算成本。
[0008]根据本公开的一个创新方面,公开了一种用于对矩阵数据结构进行分布式处理的方法。在一个方面,该方法可包括以下动作:由一个或多个计算机获得第一矩阵数据结构;由一个或多个计算机将所获得的矩阵数据结构分割成M个不同的矩阵数据结构部分的集合,其中M是大于1的整数;由一个或多个计算机将不同的M个矩阵数据结构部分中的每一者分割为K个矩阵数据结构子部分的相应集合,其中K是大于1的整数;对于K个矩阵数据结构子部分的相应集合中的每一者:由一个或多个计算机生成具有与K个矩阵数据结构子部分中的每一者相同的维度的混淆矩阵,由一个或多个计算机生成K个矩阵数据结构子部分的每个相应集合的混淆表示,该混淆表示包括(i)K个矩阵数据结构子部分和(ii)混淆矩阵;
以及由一个或多个计算机将表示M个矩阵数据结构部分的相应集合的(K个)矩阵数据结构子部分的(N个)混淆表示中的每一者的数据传输到不同计算机以用于处理。
[0009]其他方面包括用于执行前述方法的动作的系统、装置和计算机程序。
[0010]该创新方法可包括其他任选的特征。例如,在一些具体实施中,该方法还可包括由一个或多个计算机从不同计算机中的每一者接收包括结式矩阵的结果数据,其中结式矩阵中的每个结式矩阵是(a)不同矩阵和(b)M个矩阵数据结构子部分中的一者的混淆表示的乘积;以及由一个或多个计算机对结果数据进行解码。在此类具体实施中,对结果数据进行解码可包括由一个或多个计算机并且对于每个结式矩阵识别特定结式矩阵,该特定结式矩阵是不同矩阵和K个矩阵数据结构中的一者的乘积。
[0011]在一些具体实施中,由一个或多个计算机生成K个矩阵数据结构子部分的每个相应集合的包括(i)K个矩阵数据结构部分和(ii)混淆矩阵的混淆表示可包括由一个或多个计算机生成对应于多项式的表达式,该多项式具有K个矩阵数据结构子部分中的至少一者作为系数并且具有混淆矩阵作为系数。
[0012]在一些具体实施中,方法还可包括由一个或多个计算机从不同计算机中的每一者接收结果数据集,其中每个结果数据集包括表示与(a)不同矩阵和(b)所生成的表达式的乘积相对应的表达式的数据;以及由一个或多个计算机对结果数据进行解码。在此类具体实施中,对结果数据进行解码可包括由一个或多个计算机确定每个结果数据集中所生成的表达式具有未知参数;以及由一个或多个计算机并且基于所生成的表达式、每个表达式的相关未知参数来识别作为不同矩阵和K个矩阵数据结构中的一者的乘积的特定结式矩阵。
[0013]在一些具体实施中,由一个或多个计算机将表示M个矩阵数据结构部分的相应集合的(K个)矩阵数据结构子部分的(N个)混淆表示中的每一者的数据传输到不同的计算机以用于处理可包括对于N个混淆表示中的每个特定混淆表示:使用一个或多个网络将特定混淆表示传输到远离一个或多个计算机的不同远程计算机。
[0014]在一些具体实施中,由一个或多个计算机将表示M个矩阵数据结构部分的相应集合的(K个)矩阵数据结构子部分的(N个)混淆表示中的每一者的数据传输到不同的计算机以用于处理可包括对于N个混淆表示中的每个特定混淆表示:将特定混淆表示传输到一个或多个计算机中的一者的不同处理核心。
[0015]根据本公开的另一个创新方面,公开了另一种用于对矩阵数据结构进行分布式处理的方法。在一个方面,该方法可包括以下动作:由一个或多个计算机获得第一矩阵数据结构;由一个或多个计算机将所获得的矩阵数据结构分割成K个不同的矩阵数据结构部分的集合,其中K是大于1的整数;由一个或多个计算机生成K个不同的矩阵数据结构部分的混淆表示,该混淆表示包括(i)K个矩阵数据结构部分和(ii)混淆矩阵;生成K个矩阵数据结构部分的N个混淆表示的集合;由一个或多个计算机将K个不同的矩阵数据结构部分中的每一者的N个混淆的表示中的每一者分割成K个矩阵数据结构部分的M个混淆子表示的相应集合,其中M是大于1的整数;以及由一个或多个计算机将表示(K个矩阵数据结构部分的)N*M个混淆子表示的每个相应集合的数据传输到不同的计算机以用于处理。
[0016]其他方面包括用于执行前述方法的动作的系统、装置和计算机程序。
[0017]根据本公开的另一个创新方面,公开了一种用于对矩阵数据结构进行分布式处理的方法。在一个方面,该方法可包括以下动作:由一个或多个计算机获得第一矩阵数据结
构;由一个或多个计算机获得第二矩阵数据结构;由一个或多个计算机将所获得的第一矩阵数据结构分割成K个不同的第一矩阵数据结构部分的集合,其中K是大于1的整数;由一个或多个计算机生成具有与第一矩阵数据结构的K个矩阵数据结构部分中的每一者相同的维度的第一混淆矩阵;由一个或多个计算机生成K个矩阵数据结构部分的集合的N个混淆表示的第一集合,该混淆表示包括(i)K个矩阵数据结构部分和(ii)第一混淆矩阵;由一个或多个计算机将第一矩阵数据结构的K个矩阵数据结构部分的集合的不同的N个混淆表示中的每一者分割成M个第一矩阵数据结构子部分的相应集合,其中M是大于1的整数;由一个或多个计算机将所获得的第二矩阵数据结构分割成L个不同的第二矩阵数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于对矩阵数据结构进行分布式处理的方法,包括:由一个或多个计算机获得第一矩阵数据结构;由一个或多个计算机将所获得的矩阵数据结构分割成M个不同的矩阵数据结构部分的集合,其中M是大于1的整数;由一个或多个计算机将所述不同的M个矩阵数据结构部分中的每一个矩阵数据结构部分分割为K个矩阵数据结构子部分的相应集合,其中K是大于1的整数;对于K个矩阵数据结构子部分的所述相应集合中的每一个相应集合:由一个或多个计算机生成具有与所述K个矩阵数据结构子部分中的每一个矩阵数据结构子部分相同的维度的混淆矩阵;以及由一个或多个计算机生成K个矩阵数据结构子部分的每个相应集合的混淆表示,所述混淆表示包括(i)所述K个矩阵数据结构子部分和(ii)所述混淆矩阵;以及由一个或多个计算机将表示M个矩阵数据结构部分的所述相应集合的所述(K个)矩阵数据结构子部分的(N个)混淆表示中的每一个混淆表示的数据传输到不同计算机以用于处理。2.根据权利要求1所述的方法,所述方法还包括:由一个或多个计算机从所述不同计算机中的每一个计算机接收包括结式矩阵的结果数据,其中所述结式矩阵中的每个结式矩阵是(a)不同矩阵和(b)M个矩阵数据结构子部分中的一个矩阵数据结构子部分的混淆表示的乘积;以及由一个或多个计算机对所述结果数据进行解码,其中对所述结果数据进行解码包括:由一个或多个计算机并且对于每个结式矩阵识别特定结式矩阵,所述特定结式矩阵是所述不同矩阵和所述K个矩阵数据结构中的一个矩阵数据结构的乘积。3.根据权利要求1所述的方法,其中由一个或多个计算机生成K个矩阵数据结构子部分的每个相应集合的包括(i)所述K个矩阵数据结构部分和(ii)所述混淆矩阵的混淆表示包括:由一个或多个计算机生成对应于多项式的表达式,所述多项式具有所述K个矩阵数据结构子部分中的至少一个矩阵数据结构子部分作为系数并且具有混淆矩阵作为系数。4.根据权利要求3所述的方法,所述方法还包括:由一个或多个计算机从所述不同计算机中的每一个计算机接收结果数据集,其中每个结果数据集包括表示与(a)不同矩阵和(b)所生成的表达式的乘积相对应的表达式的数据;以及由一个或多个计算机对所述结果数据进行解码,其中对所述结果数据进行解码包括:由一个或多个计算机确定每个结果数据集中所生成的表达式具有未知参数;由一个或多个计算机并且基于所生成的表达式、每个表达式的相关未知参数来识别作为所述不同矩阵和所述K个矩阵数据结构中的一个矩阵数据结构的乘积的特定结式矩阵。5.根据权利要求1所述的方法,其中由一个或多个计算机将表示M个矩阵数据结构部分的所述相应集合的所述(K个)矩阵数据结构子部分的(所述N个)混淆表示中的每一个混淆表示的数据传输到不同计算机以用于处理包括:对于所述N个混淆表示中的每个特定混淆表示:使用一个或多个网络将所述特定混淆表示传输到远离所述一个或多个计算机的不同
远程计算机。6.根据权利要求1所述的方法,其中由一个或多个计算机将表示M个矩阵数据结构部分的所述相应集合的所述(K个)矩阵数据结构子部分的(所述N个)混淆表示中的每一个混淆表示的数据传输到不同计算机以用于处理包括:对于所述N个混淆表示中的每个特定混淆表示:将所述特定混淆表示传输到所述一个或多个计算机中的一个计算机的不同处理核心。7.一种系统,包括:一个或多个计算机;以及一个或多个存储器,所述一个或多个存储器存储指令,所述指令在由所述一个或多个计算机执行时致使所述一个或多个计算机执行操作,所述操作包括:由一个或多个计算机获得第一矩阵数据结构;由一个或多个计算机将所获得的矩阵数据结构分割成M个不同的矩阵数据结构部分的集合,其中M是大于1的整数;由一个或多个计算机将所述不同的M个矩阵数据结构部分中的每一个矩阵数据结构部分分割为K个矩阵数据结构子部分的相应集合,其中K是大于1的整数;对于K个矩阵数据结构子部分的所述相应集合中的每一个相应集合:由一个或多个计算机生成具有与所述K个矩阵数据结构子部分中的每一个矩阵数据结构子部分相同的维度的混淆矩阵;以及由一个或多个计算机生成K个矩阵数据结构子部分的每个相应集合的混淆表示,所述混淆表示包括(i)所述K个矩阵数据结构子部分和(ii)所述混淆矩阵;以及由一个或多个计算机将表示M个矩阵数据结构部分的所述相应集合的所述(K个)矩阵数据结构子部分的(N个)混淆表示中的每一个混淆表示的数据传输到不同计算机以用于处理。8.根据权利要求7所述的系统,所述操作还包括:由一个或多个计算机从所述不同计算机中的每一个计算机接收包括结式矩阵的结果数据,其中所述结式矩阵中的每个结式矩阵是(a)不同矩阵和(b)M个矩阵数据结构子部分中的一个矩阵数据结构子部分的混淆表示的乘积;以及由一个或多个计算机对所述结果数据进行解码,其中对所述结果数据进行解码包括:由一个或多个计算机并且对于每个结式矩阵识别特定结式矩阵,所述特定结式矩阵是所述不同矩阵和所述K个矩阵数据结构中的一个矩阵数据结构的乘积。9.根据权利要求7所述的系统,其中由一个或多个计算机生成K个矩阵数据结构子部分的每个相应集合的包括(i)所述K个矩阵数据结构部分和(...

【专利技术属性】
技术研发人员:S
申请(专利权)人:苹果公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1