[发明专利]并行处理虚拟化方法和计算系统在审
申请号: | 202210942859.9 | 申请日: | 2022-08-08 |
公开(公告)号: | CN115827214A | 公开(公告)日: | 2023-03-21 |
发明(设计)人: | 韩亮;朱国余;吴政原;钟嵘 | 申请(专利权)人: | 平头哥(上海)半导体技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/455;G06F9/48 |
代理公司: | 北京成创同维知识产权代理有限公司 11449 | 代理人: | 李秀霞 |
地址: | 200120 上海市浦东新区中国(上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 并行 处理 虚拟 方法 计算 系统 | ||
公开了并行处理虚拟化方法和计算系统。虚拟化方法包括根据虚拟函数的逻辑拓扑结构为虚拟并行处理单元(parallel processing unit,简称PPU)确定虚拟函数路由表。生成该虚拟PPU到多个物理PPU的第一组的第一映射。虚拟化方法还可以包括基于该虚拟函数路由表和该虚拟PPU到物理PPU的第一映射为该第一组物理PPU生成第一组物理函数路由表。通过生成该虚拟PPU到多个物理PPU的第二组的第二映射,应用程序可以从第一组物理PPU迁移到第二组物理PPU。可以基于该虚拟函数路由表和该虚拟PPU到物理PPU的第二映射为该第二组物理PPU生成第二组物理函数路由表。
背景技术
目前,深度神经网络的分布式并行训练方法包括在许多分布式计算节点上同步执行大型小批量随机梯度下降(stochastic gradient descent,简称SGD)处理,以探索基于数据并行的加速。参照图1,图1示出了在CPU主机上运行的一示例性的小批量SGD处理(包括伪代码)。该SGD处理受制于同步部分,这阻碍了整个并行加速处理。如图2所示,为了减少阻碍,需要增加加速器端的网络带宽和/或降低主机与加速器之间通信的频率。
小批量SGD处理有许多同步算法。一些常见的实现计算节点间通信模式的函数是Reduce函数和All_Reduce函数。如图3所示,在Reduce函数中,多个节点310-340中的每个节点的一组值被传递到多个节点310-340中的一指定节点310,节点310将相应的值相加在一起。一组值的和由指定节点310存储。例如,第一节点310从多个节点310-340接收值5、2、7和4,第一节点310将接收到的值5、2、7和4相加在一起,并且第一节点310存储得到的和18。第一节点310还将值1、3、8和2相加在一起并存储得到的和14。如图4所示,在All_Reduce函数中,多个节点410-440中的每个节点的一组值被传递到多个节点410-440中的一指定节点410,节点410将相应的值相加在一起。得到的一组和值由指定节点410广播给多个节点410-440,并且多个节点410-440存储该组和值。例如,第一节点410将从多个节点410-440接收的值5、2、7和4相加在一起。第一节点410还将值1、3、8和2相加在一起。第一节点410广播18和14这组和值到多个节点410-440,多个节点410-440中的每个节点存储该组和值。如图所示,Reduce函数和All_Reduce函数同时应用于一群变量上。
尽管Reduce函数和All_Reduce函数的简单拓扑实现是基于树的实现,但基于环的实现可以达到较高的带宽利用率和效率。现在参照图5,图5示出了一种传统的在分布式计算机系统上实现的基于环的All_Reduce。在All_Reduce函数中,分布式计算系统的N个节点中的每个节点都与其两个对等节点通信2*(N-1)次。在通信期间,一个节点发送和接收数组值。在第一个(N-1)次迭代中,接收到的值与各自节点的缓冲器中的值相加。在第二个(N-1)次迭代中,接收到的值替换保存在各自节点的缓冲器中的值。例如,图5的510示出了三个节点(N=3),每个节点缓冲一系列各自的输入值。在第一次迭代520中,第一节点将第一组输入值传递给第二节点。第二节点将从第一节点接收的该组输入值加到第二节点持有的相应输入值上。第一节点还从第三节点接收第三组输入值。第一节点将从第三节点接收的该组输入值加到第一节点持有的相应值上。第二节点和第三节点也在第一次迭代520中传递和相加相应组的值。在第二次迭代530中,第一节点将第三组输入值传递给第二节点,第二节点将其加到第二节点持有的相应值上。第一节点还从第三节点接受第二组值,第一节点将其加到第一节点持有的相应值上。第二节点和第三节点也在第二次迭代530中再次传递和相加相应组的值。在第三次迭代540中,第一节点将第二组和值传递给第二节点,第二节点存储该组和值。第一节点还从第三节点接收第一组和值,第一节点存储该组和值。第二节点和第三节点也传递和存储相应组的和值。在第四次迭代550中,第一节点将第一组和值传递给第二节点,第二节点存储该组和值。第一节点还从第三节点接收第三组和值,第一节点存储该组和值。第二节点和第三节点也传递和存储相应组的和值。第四次迭代后,每个节点都有这一系列的和值。如果缓冲器足够大,图5所示的基于环的All_Reduce函数可以最佳地利用分布式计算系统的可用网络。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于平头哥(上海)半导体技术有限公司,未经平头哥(上海)半导体技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210942859.9/2.html,转载请声明来源钻瓜专利网。