[发明专利]利用多维硬件加速器处理对大型数据集的归约和广播操作在审
申请号: | 202080062344.9 | 申请日: | 2020-09-04 |
公开(公告)号: | CN114365082A | 公开(公告)日: | 2022-04-15 |
发明(设计)人: | 比亚克·哈默肖特·鲁纳;萨米尔·库马尔 | 申请(专利权)人: | 谷歌有限责任公司 |
主分类号: | G06F9/28 | 分类号: | G06F9/28;G06N3/04;G06N3/08 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 邓聪惠;周亚荣 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 利用 多维 硬件 加速器 处理 大型 数据 广播 操作 | ||
1.一种使用处理硬件处理训练数据的方法,所述方法包括:
在多个节点中的每个节点上训练机器学习模型的相应副本,所述多个节点是在包括节点的行和列的多维拓扑中组织的,其中,每个节点是在相应的一批训练数据上并行地训练的,以此在所述训练之后每个节点保存从所述训练所得到的相应梯度向量;以及
通过执行操作,组合所述节点中的相应梯度向量,以生成最终梯度向量,所述操作包括:
通过在所述节点上执行的代码,并行地对所述多维拓扑的每一行执行圆算法的第一阶段,以在所述行的每个节点中为所述梯度向量的部分生成不同的组合数据;
通过在所述节点上执行的代码,并行地对所述多维拓扑的每一列执行所述圆算法的所述第一阶段的第二部分,以在所述列的每个节点中生成不同的列结果,所述列结果包括来自每一行的组合数据的部分;
通过在所述节点上执行的代码,并行地对所述多维拓扑的每一列执行所述圆算法的第二阶段的第一部分,以在每一列中生成包括每个列结果的最终梯度向量的部分;以及
通过在所述节点上执行的代码,并行地对所述多维拓扑的每一行执行所述圆算法的所述第二阶段的第二部分,以在每一行中生成最终梯度向量,所述最终梯度向量包括来自每一列的最终梯度向量的每个部分。
2.根据权利要求1所述的方法,所述方法进一步包括:
确定所述多个节点的多维拓扑的类型;
基于所述类型,将所述第一阶段的第一部分映射到第一节点集以及所述第一节点集之间的第一链路集;以及
将所述第一阶段的第二部分映射到第二节点集以及所述节点之间的第二链路集,所述第一链路集与所述第二链路集不同。
3.根据权利要求1或2所述的方法,所述方法进一步包括:
确定所述多个节点的多维拓扑包括环绕链路;以及
使用所述环绕链路对所述多维拓扑的每一行和每一列进行配置以执行所述圆算法。
4.根据前述权利要求中任一项所述的方法,其中,所述多维拓扑的每个节点包括至少两个子节点。
5.根据权利要求4所述的方法,其中,所述多维拓扑包括环面拓扑,以及其中,对于每一行和每一列,每个节点的子节点被配置为所述圆算法的相邻节点。
6.根据权利要求4所述的方法,其中,所述多维拓扑包括网格拓扑,以及其中,对于每一行和每一列,所述网格的边缘节点的子节点被配置为所述圆算法的相邻节点。
7.根据前述权利要求中任一项所述的方法,其中,除了所述行和所述列,所述多维拓扑包括第三维的节点集,其中,所述方法进一步包括:
通过在所述第三维的节点集上执行的代码,并行地执行所述圆算法的所述第一阶段的第三部分,以在所述列的每个节点中生成不同的第三维结果,所述第三维结果包括来自每一列的列结果的部分;以及
通过在所述第三维的节点集上执行的代码,并行地执行所述圆算法的所述第一阶段的第三部分,以在所述第三维的节点集中的每个节点中从每一列生成所述最终梯度向量。
8.根据前述权利要求中任一项所述的方法,所述方法进一步包括在执行所述圆算法的所述第一阶段和执行所述圆算法的所述第二阶段期间,利用每个节点上的代码的执行,管道化每个节点之间的数据传输。
9.根据前述权利要求中任一项所述的方法,其中,所述圆算法包括旋转钳形算法,其中,所述第一阶段包括所述旋转钳形算法的归约-分散阶段,以及其中,所述第二阶段包括所述旋转钳形算法的全局聚集阶段。
10.根据前述权利要求中任一项所述的方法,其中,所述梯度向量的部分的组合数据包括来自所述行的两个或两个以上的节点的总和数据,以及其中,来自每一行的组合数据的部分包括总和数据,所述数据包括来自所述列的两个或两个以上的节点的组合数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于谷歌有限责任公司,未经谷歌有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202080062344.9/1.html,转载请声明来源钻瓜专利网。