System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于多裸片的计算方法及相关设备技术_技高网

一种基于多裸片的计算方法及相关设备技术

技术编号:40966014 阅读:2 留言:0更新日期:2024-04-18 20:46
本申请实施例公开了一种基于多裸片的计算方法及相关设备。该方法包括:获取第一计算图,所述第一计算图包括M个第一算子;对所述M个第一算子分别进行切分,得到所述M个第一算子的切分结果;基于所述M个第一算子的切分结果对所述第一计算图进行切分,得到对应的N个第二计算图;所述N个第二计算图中的每一个第二计算图包括被切分后的第一算子;N、M为大于或者等于1的整数;将所述N个第二计算图分配至N个裸片上执行;所述N个第二计算图与所述N个裸片一一对应。采用本申请实施例可以提升多裸片封装芯片的计算效率。

【技术实现步骤摘要】

本申请涉及计算机,尤其涉及一种基于多裸片的计算方法及相关设备


技术介绍

1、随着摩尔定律的放缓,单个裸片(die)内的晶体管数量无法再持续快速的增长,但是人工智能(artificial intelligent,ai)芯片的算力需求仍然在高速发展。为解决这个问题,业内提出了多die封装的技术,即在一个芯片(chip)内封装多个aidie,从而提供更大的算力。

2、采用多die封装技术时,存在两种不同的网络体系结构:统一内存访问(uniformmemory access,uma)和非统一内存访问(non-uniform memory access,uma)。在uma架构下,chip中的每个die可以平等的使用chip内所有的存储,基于此,uma架构通常要求die间的互连带宽能够和存储器带宽持平,以实现不同位置的存储访问的性能一致。然而,为了提供尽可能高的算力密度,chip内会尽可能的将面积用于ai算力,使得chip内的die间互连可用的面积非常小,并且由于ai芯片通常会使用高宽带存储器(high bandwidth memory,hbm),即chip内的存储器带宽非常高,这就导致die间的互连带宽很难提高到和存储器带宽持平的水平。

3、因此,在多die封装时通常会选择采用numa结构。然而在numa结构下,容易出现跨die访问数据的情况,使得访问时延大大增加,从而降低整体的计算效率。如何提升多die封装芯片的计算效率是亟待解决的问题。


技术实现思路

1、本申请实施例提供一种基于多裸片的计算方法及相关设备,可以有效提升多die封装芯片的计算效率。

2、本申请实施例提供的基于多裸片的计算方法可以由电子设备等执行。电子设备是指能够被抽象为计算机系统的设备,其中,基于多裸片的计算功能的电子设备也可称为基于多裸片的计算装置。基于多裸片的计算装置可以是该电子设备的整机,例如:智能可穿戴设备、智能手机、平板电脑、笔记本电脑、台式电脑、车载计算机或服务器,等等;也可以是由多个整机构成的系统/装置;还可以是该电子设备中的部分器件,例如:基于多裸片的计算功能相关的芯片,如系统芯片(system on a chip,soc),等等,本申请实施例对此不作具体限定。其中,系统芯片也称为片上系统。

3、第一方面,本申请实施例提供了一种基于多裸片的计算方法,所述方法包括:获取第一计算图,所述第一计算图包括m个第一算子;对所述m个第一算子分别进行切分,得到所述m个第一算子的切分结果;基于所述m个第一算子的切分结果对所述第一计算图进行切分,得到对应的n个第二计算图;所述n个第二计算图中的每一个第二计算图包括被切分后的第一算子;n、m为大于或者等于1的整数;将所述n个第二计算图分配至n个裸片上执行;所述n个第二计算图与所述n个裸片一一对应。

4、通过第一方面提供的方法,本申请可以基于算子切分,将计算图中的每一个完整的计算(例如第一算子)切分成多个较小的子计算(例如被切分后的第一算子),并将该多个较小的子计算分配到对应的多个裸片上并行计算。如此,可以充分利用每一个裸片的计算资源,大大提升了多裸片封装芯片的计算效率。

5、在一种可能的实施方式中,所述对所述m个第一算子分别进行切分,得到所述m个第一算子的切分结果,包括:确定所述m个第一算子中的第i个第一算子的最优切分轴;基于所述第i个第一算子的最优切分轴,对所述第i个第一算子进行切分,获得所述第i个第一算子的切分结果;i为大于或者等于1,且小于或者等于m的整数。

6、在本申请实施例中,原始计算图中的每个算子(例如第一算子)可以对应有多个切分轴。基于此,本申请实施例针对每个第一算子,首先需要从其对应的多个切分轴中确定一个最优切分轴,然后再基于该最优切分轴对该第一算子进行切分,从而确保每个第一算子被切分后得到的多个算子在多个裸片上的计算效率。

7、在一种可能的实施方式中,所述第i个第一算子包括k个切分轴;所述确定所述m个第一算子中的第i个第一算子的最优切分轴,包括:确定所述第i个第一算子包括的所述k个切分轴各自对应的计算收益和通信耗时;基于所述k个切分轴各自对应的所述计算收益和所述通信耗时的差值,确定所述k个切分轴各自对应的切分收益;其中,所述切分收益最大的切分轴为所述第i个第一算子的最优切分轴;k为大于或者等于1的整数。

8、在本申请实施例中,可以基于当前算子中每个切分轴对应的计算收益(即计算耗时的减少量)和通信耗时,计算出每个切分轴实际可以带来的切分收益。然后,从中确定收益最大的切分轴作为当前算子的最优切分轴,以保证每个算子切分后分配到多个裸片上执行时的计算效率。此外,在一些可能的实施例中,k也可以等于0,即一个算子可以没有切分轴。显然,在算子没有切分轴的情况下,该算子将无法进行切分处理,此时可以将该算子分别部署到n个裸片上,以使得n个裸片进行相同的计算。相应的,若该算子的前置算子已经做了切分处理,那么n个裸片在执行该算子时需要通过跨裸片的通信获取计算需要的数据。

9、在一种可能的实施方式中,所述第i个第一算子的第j个切分轴对应的计算收益为第一计算耗时与第二计算耗时的差值;所述第一计算耗时为单个裸片执行所述第i个第一算子所需的时间,所述第二计算耗时为多个裸片并行执行被所述第j个切分轴切分后的所述第i个第一算子所需的时间;j为大于或者等于1,且小于或者等于k的整数。

10、在本申请实施例中,可以将一个完整数据的计算(例如第一算子)被当前切分轴切分后分布到多个裸片上后计算耗时的减少量作为当前切分轴对应的计算收益,从而为后续最优切分轴的确定提供支持,保证算子切分后的计算效率。例如,第i个第一算子在单个裸片上的计算耗时为t,第i个第一算子被其第j个切分轴切分后分布到4个裸片上计算时的计算耗时理论上可以为t/4,那么该第j个切分轴的计算收益为(t-t/4)。

11、在一种可能的实施方式中,所述第i个第一算子的第j个切分轴对应的通信耗时为第p个裸片从其他裸片上获取目标数据所需的时间;所述第p个裸片为所述第i个第一算子被所述第j个切分轴切分后对应分配的多个裸片中的一个;所述目标数据为所述第p个裸片执行被所述第j个切分轴切分后的所述第i个第一算子时所需的数据;所述通信耗时与所述目标数据的数量以及所述目标数据的内存排布相关;p为大于或者等于1,且小于或者等于n的整数。

12、在本申请实施例中,可以基于被切分轴切分后的算子在对应裸片上计算时,需要从其他裸片上获取计算所需数据所消耗的时间,确定每个切分轴对应的通信耗时。显然,切分轴对应的通信耗时越小或者为零,能够带来更大的切分收益。如此,本申请可以基于通信耗时这一参数,尽可能让最优切分轴切分后分配到每个裸片上的计算仅需要访问本裸片中的存储,避免了跨裸片访问数据带来的延时。基于此,即使在较低的die间带宽下,本申请仍然可以达到较高的计算性能,从而可以将多裸片封装芯片的面积尽可能应用于计算,提升多裸片封装芯片的算力密度。需要本文档来自技高网...

【技术保护点】

1.一种基于多裸片的计算方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述对所述M个第一算子分别进行切分,得到所述M个第一算子的切分结果,包括:

3.根据权利要求2所述的方法,其特征在于,所述第i个第一算子包括K个切分轴;所述确定所述M个第一算子中的第i个第一算子的最优切分轴,包括:

4.根据权利要求3所述的方法,其特征在于,所述第i个第一算子的第j个切分轴对应的计算收益为第一计算耗时与第二计算耗时的差值;所述第一计算耗时为单个裸片执行所述第i个第一算子所需的时间,所述第二计算耗时为多个裸片并行执行被所述第j个切分轴切分后的所述第i个第一算子所需的时间;j为大于或者等于1,且小于或者等于K的整数。

5.根据权利要求4所述的方法,其特征在于,所述第i个第一算子的第j个切分轴对应的通信耗时为第p个裸片从其他裸片上获取目标数据所需的时间;所述第p个裸片为所述第i个第一算子被所述第j个切分轴切分后对应分配的多个裸片中的一个;所述目标数据为所述第p个裸片执行被所述第j个切分轴切分后的所述第i个第一算子时所需的数据;所述通信耗时与所述目标数据的数量以及所述目标数据的内存排布相关;p为大于或者等于1,且小于或者等于N的整数。

6.根据权利要求5所述的方法,其特征在于,所述第i个第一算子的切分结果包括:所述第i个第一算子的输出张量列表,所述第i个第一算子对应的一个或多个输入张量和输出张量的原始形状,所述第i个第一算子对应的一个或多个输入张量和/或输出张量被所述最优切分轴切分后的形状,以及所述第i个第一算子被所述最优切分轴切分后对应分配的一个或多个裸片。

7.根据权利要求6所述的方法,其特征在于,所述N个第二计算图中的第p个第二计算图包括多个第二算子;所述多个第二算子包括被所述最优切分轴切分后的所述第i个第一算子;所述第p个第二计算图为分配到第p个裸片上执行的第二计算图。

8.根据权利要求7所述的方法,其特征在于,所述第p个第二计算图中的所述多个第二算子还包括切分算子、通信算子和归约算子中的一个或多个;其中,

9.一种电子设备,所述电子设备包括N个裸片,所述电子设备用于实现如权利要求1-8所述的方法;N为大于或者等于1的整数。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被计算机或处理器执行时实现上述权利要求1-8所述的方法。

...

【技术特征摘要】

1.一种基于多裸片的计算方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述对所述m个第一算子分别进行切分,得到所述m个第一算子的切分结果,包括:

3.根据权利要求2所述的方法,其特征在于,所述第i个第一算子包括k个切分轴;所述确定所述m个第一算子中的第i个第一算子的最优切分轴,包括:

4.根据权利要求3所述的方法,其特征在于,所述第i个第一算子的第j个切分轴对应的计算收益为第一计算耗时与第二计算耗时的差值;所述第一计算耗时为单个裸片执行所述第i个第一算子所需的时间,所述第二计算耗时为多个裸片并行执行被所述第j个切分轴切分后的所述第i个第一算子所需的时间;j为大于或者等于1,且小于或者等于k的整数。

5.根据权利要求4所述的方法,其特征在于,所述第i个第一算子的第j个切分轴对应的通信耗时为第p个裸片从其他裸片上获取目标数据所需的时间;所述第p个裸片为所述第i个第一算子被所述第j个切分轴切分后对应分配的多个裸片中的一个;所述目标数据为所述第p个裸片执行被所述第j个切分轴切分后的所述第i个第一算子时所需的数据;所述通信耗时与所述目标数据的数量以及所述目标数据的内存排布相关;p为大...

【专利技术属性】
技术研发人员:刘锡明朱思宇林惠敏葛根华
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1