并行处理虚拟化方法和计算系统技术方案

技术编号:36938441 阅读:49 留言:0更新日期:2023-03-22 19:00
公开了并行处理虚拟化方法和计算系统。虚拟化方法包括根据虚拟函数的逻辑拓扑结构为虚拟并行处理单元(parallel processing unit,简称PPU)确定虚拟函数路由表。生成该虚拟PPU到多个物理PPU的第一组的第一映射。虚拟化方法还可以包括基于该虚拟函数路由表和该虚拟PPU到物理PPU的第一映射为该第一组物理PPU生成第一组物理函数路由表。通过生成该虚拟PPU到多个物理PPU的第二组的第二映射,应用程序可以从第一组物理PPU迁移到第二组物理PPU。可以基于该虚拟函数路由表和该虚拟PPU到物理PPU的第二映射为该第二组物理PPU生成第二组物理函数路由表。二组物理函数路由表。二组物理函数路由表。

【技术实现步骤摘要】
并行处理虚拟化方法和计算系统

技术介绍

[0001]目前,深度神经网络的分布式并行训练方法包括在许多分布式计算节点上同步执行大型小批量随机梯度下降(stochastic gradient descent,简称SGD)处理,以探索基于数据并行的加速。参照图1,图1示出了在CPU主机上运行的一示例性的小批量SGD处理(包括伪代码)。该SGD处理受制于同步部分,这阻碍了整个并行加速处理。如图2所示,为了减少阻碍,需要增加加速器端的网络带宽和/或降低主机与加速器之间通信的频率。
[0002]小批量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函数同时应用于一群变量上。
[0003]尽管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函数可以最佳地利用分布式计算系统的可用网络。
[0004]对于计算上述Reduce和All_Reduce函数以及许多其他函数的系统,多个处理单元的并行执行可受益于虚拟化和迁移技术。然而,虚拟化和迁移技术需要持续改进,以便用于采用并行处理拓扑结构的计算系统。

技术实现思路

[0005]通过参照以下描述和附图,可很好地理解本公开实施例,这些描述和附图用于说明关于并行处理单元虚拟化和迁移的本公开实施例。
[0006]在一个实施例中,并行处理虚拟化方法可以包括确定由虚拟函数使用的虚拟并行处理单元。根据所述虚拟函数的逻辑拓扑结构,可以为所述虚拟并行处理单元确定虚拟函数路由表。所述虚拟并行处理单元可以映射到第一组物理并行处理单元。基于所述虚拟函数路由表和所述虚拟并行处理单元到所述第一组物理并行处理单元的映射,可以为所述第一组物理并行单元生成第一组物理函数路由表。所述方法还可以包括接收迁移事件。响应于所述迁移事件,所述虚拟并行处理单元可以映射到第二组物理并行处理单元。基于所述虚拟函数路由表和所述虚拟并行处理单元到所述第二组物理并行处理单元的映射,可以为所述第二组物理并行处理单元生成第二组物理函数路由表。来自所述第一组物理并行处理单元的数据,可以基于所述虚拟并行处理单元到所述第一组物理并行处理单元的映射和所述虚拟并行处理单元到所述第二组物理并行处理单元的映射,迁移到所述第二组物理并行处理单元。
[0007]在另一个实施例中,并行处理虚拟化方法可以包括确定由虚拟函数使用的虚拟并行处理单元。根据所述虚拟函数的逻辑拓扑结构,可以为所述虚拟并行处理单元确定虚拟函数路由表。识别多个物理并行处理单元的第一分区,并且所述虚拟并行处理单元可以映射到所述第一分区中的第一组物理并行处理单元。基于所述虚拟函数路由表和所述虚拟并行处理单元到所述第一组物理并行处理单元的映射,可以确定关于所述第一组物理并行处理单元的包括在用通信链路标识符的第一组物理函数路由表。此后,使用所述虚拟并行处理单元到所述第一组物理并行处理单元的映射以及包括在用通信链路标识符的所述第一组物理函数路由表,可以在所述第一组物理并行处理单元上执行应用程序。响应于迁移事件,识别多个并行处理单元的第二分区。所述虚拟并行处理单元可以映射到所述第二分区中的第二组物理并行处理单元。基于所述虚拟函数路由表和所述虚拟并行处理单元到所述第二组物理并行处理单元的映射,可以生成关于所述第二组物理并行处理单元的包括在用通信链路标识符的第二组物理函数路由表。然后基于所述虚拟并行处理单元到所述第一组物理并行处理单元的映射和所述虚拟并行处理单元到所述第二组物理并行处理单元的映射,可以将数据从所述第一组物理并行处理单元迁移到所述第二组物理并行处理单元。此后,使用所述虚拟并行处理单元到所述第二组物理并行处理单元的映射以及包括在用通信链路标识符的所述第二组物理函数路由表,可以在所述第二组物理并行处理单元上执行应用程序。
[0008]提供上述概要本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种并行处理虚拟化方法,包括:确定由虚拟函数使用的虚拟并行处理单元;根据所述虚拟函数的逻辑拓扑结构为所述虚拟并行处理单元确定虚拟函数路由表;将所述虚拟并行处理单元映射到第一组物理并行处理单元;以及基于所述虚拟函数路由表和所述虚拟并行处理单元到所述第一组物理并行处理单元的映射,为所述第一组物理并行处理单元生成第一组物理函数路由表。2.根据权利要求1所述的并行处理虚拟化方法,还包括:根据所述虚拟函数的逻辑拓扑结构,为所述第一组物理并行处理单元生成第一组在用路由表。3.根据权利要求2所述的并行处理虚拟化方法,还包括:使用所述虚拟并行处理单元到所述第一组物理并行处理单元的映射、所述第一组物理函数路由表和所述第一组在用路由表,在所述第一组物理并行处理单元上执行应用程序。4.根据权利要求1所述的并行处理虚拟化方法,还包括:接收迁移事件;将所述虚拟并行处理单元映射到第二组物理并行处理单元;基于所述虚拟函数路由表和所述虚拟并行处理单元到所述第二组物理并行处理单元的映射,为所述第二组物理并行处理单元生成第二组物理函数路由表;以及,基于所述虚拟并行处理单元到所述第一组物理并行处理单元的映射和所述虚拟并行处理单元到所述第二组物理并行处理单元的映射,将数据从所述第一组物理并行处理单元迁移到所述第二组物理并行处理单元。5.根据权利要求4所述的并行处理虚拟化方法,还包括:根据所述虚拟函数的逻辑拓扑结构,为所述第二组物理并行处理单元生成第二组在用路由表。6.根据权利要求5所述的并行处理虚拟化方法,还包括:使用所述虚拟并行处理单元到所述第二组物理并行处理单元的映射、所述第二组物理函数路由表和所述第二组在用路由表,在所述第二组物理并行处理单元上执行所述应用程序。7.执行权利要求1所述的并行处理虚拟化方法的计算系统,其中,多个物理并行处理单元被组织成多个并行处理单元子集,其中,每个子集中的每个物理并行处理单元都通过两条双向通信链路与同一并行处理单元子集中的每个其他物理并行处理单元耦合,而且每个物理并行处理单元都通过一条双向通信链路与该并行处理单元子集的对应其他子集的对应物理并行处理单元耦合。8.根据权利要求7所述的计算系统,其中:所述多个物理并行处理单元包括八个物理并行处理单元;所述多个物理并行处理单元被组织成各有四个物理并行处理单元的两个子集;两条双向通信链路将每个物理并行处理单元都耦合到同一并行处理单元子集中的其他三个物理并行处理单元;以及,一条双向通信链路将每个物理并行处理单元都耦合到另一并行处理单元子集的对应物理并行处理单元。9.一种并行处理虚拟化方法,包括:确定由虚拟函数使用的虚拟并行处理单元;
根据所述虚拟函数的逻辑拓扑结构,为所述虚拟并行处理单元确定虚拟函数路由表;识别多个物理并行处理...

【专利技术属性】
技术研发人员:韩亮朱国余吴政原钟嵘
申请(专利权)人:平头哥上海半导体技术有限公司
类型:发明
国别省市:

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

1