本公开涉及计算机,更具体地,涉及计算机通信领域。
背景技术:
1、人工智能在大模型上取得了重大突破,传统方法中采用单加速卡进行人工智能训练已不能满足当前需求,在单机多加速卡或多机多加速卡上进行训练日益普遍。多加速卡通信面对的是复杂的物理拓扑场景,特别是多机多加速卡场景,会涉及机内和机间不同的通信介质互联方式。
2、现有的基于复杂物理拓扑的通信算法的实现,由于通信粒度或拓扑结构等因素的限制,只能将通信算法的多个通信操作或步骤串行执行,通信方法难以保证多加速卡的通信性能,因此迫切需要一种适用于单机多加速卡或多机多加速卡这种复杂物理拓扑场景下的通信优化方法。
技术实现思路
1、本公开提供了一种基于层级逻辑拓扑结构的通信算法的实现方法及相关产品,以实现通信算法的多个通信操作之间的流水化,从而提高通信的理论带宽性能。
2、根据本公开的第一方面,提供一种基于层级逻辑拓扑结构的通信算法的实现方法,其中,所述层级逻辑拓扑结构由多个加速卡通信互联形成,所述层级逻辑拓扑结构包括第一逻辑拓扑结构和第二逻辑拓扑结构;所述通信算法包括多个通信操作,所述多个通信操作包括第一通信操作和第二通信操作,并且所述第一通信操作在所述第一逻辑拓扑结构中执行,所述第二通信操作在所述第二逻辑拓扑结构中执行;所述通信算法的实现方法包括:基于所述第一逻辑拓扑结构构建第一任务队列,用于执行所述第一通信操作,基于所述第二逻辑拓扑结构构建第二任务队列,用于执行所述第二通信操作,并且根据所述通信算法的多个通信操作之间的依赖关系,实现所述多个通信操作之间的同步,从而实现所述通信算法的多个通信操作的流水化。
3、根据本公开第二方面,提供一种计算机可读存储介质,包括计算机可执行指令,当所述计算机可执行指令由一个或多个处理器运行时,执行如上所述的方法。
4、根据本公开第三方面,提供一种电子设备,包括一个或多个处理器和存储器,所述存储器中存有计算机可读程序,所述处理器通过运行所述存储器中的程序,执行如上所述的方法。
1.一种基于层级逻辑拓扑结构的通信算法的实现方法,其特征在于,所述层级逻辑拓扑结构由多个加速卡通信互联形成,所述层级逻辑拓扑结构包括第一逻辑拓扑结构和第二逻辑拓扑结构;所述通信算法包括多个通信操作,所述多个通信操作包括第一通信操作和第二通信操作,并且所述第一通信操作在所述第一逻辑拓扑结构中执行,所述第二通信操作在所述第二逻辑拓扑结构中执行;所述通信算法的实现方法包括:
2.根据权利要求1所述的实现方法,其特征在于,所述多个通信操作还包括第三通信操作,并且所述第三通信操作在所述第一逻辑拓扑结构中执行;所述通信算法的实现方法还包括:
3.根据权利要求2所述的实现方法,其特征在于,所述第一逻辑拓扑结构包括至少两个同构逻辑拓扑结构,所述第一任务队列和第三任务队列分别在不同的同构逻辑拓扑结构中执行。
4.根据权利要求1至3中任一项所述的实现方法,其特征在于,所述第二逻辑拓扑结构包括多个同构逻辑拓扑结构,所述多个同构逻辑拓扑结构包括第一同构逻辑拓扑结构和第二同构逻辑拓扑结构,所述第一同构逻辑拓扑结构和所述第二同构逻辑拓扑结构分别用于执行所述第二通信操作的部分数据。
5.根据权利要求1至3中任一项所述的实现方法,其特征在于,所述多个通信操作还包括第四通信操作,所述第四通信操作在所述第二逻辑拓扑结构中执行;所述实现方法包括:
6.根据权利要求5所述的实现方法,其特征在于,所述第二逻辑拓扑结构包括至少两个同构逻辑拓扑结构,所述第三任务队列和第五任务队列分别在不同的同构逻辑拓扑结构中执行。
7.根据权利要求1至6中任一项所述的实现方法,其特征在于,所述第一逻辑拓扑结构的通信方式为第一通信方式,所述第二逻辑拓扑结构的通信方式为第二通信方式,并且所述第一通信方式的通信性能优于所述第二通信方式。
8.根据权利要求1至7中任一项所述的实现方法,其特征在于,所述第一逻辑拓扑结构包括至少一个横向逻辑拓扑结构,所述第二逻辑拓扑结构包括至少一个纵向逻辑拓扑结构;并且所述横向逻辑拓扑结构中的加速卡属于同一个处理节点,所述纵向逻辑拓扑结构中的加速卡属于不同的处理节点;或者,所述横向逻辑拓扑结构和所述纵向逻辑拓扑结构中的加速卡均属于同一个处理节点。
9.根据权利要求1至8任一项所述的实现方法,其特征在于,所述通信算法包括allreduce、allgather、broadcast、reduce、reducescatter和alltoall通信算法。
10.根据权利要求1至9任一项所述的实现方法,其特征在于,所述通信操作包括在同一逻辑拓扑结构中连续执行的多个通信子操作。
11.根据权利要求1所述的实现方法,其特征在于,所述多个通信操作还包括第三通信操作,并且所述第三通信操作在所述第一逻辑拓扑结构中执行;所述通信算法的实现方法还包括:
12.根据权利要求1至10中任一项所述的实现方法,其特征在于,所述通信算法包括n个通信操作,分别为第一通信操作,第二通信操作,…,第n通信操作;所述n个通信操作中的m个通信操作在所述第一逻辑拓扑结构中执行,所述n个通信操作中的n-m个通信操作在所述第二逻辑拓扑结构中执行;基于所述第一逻辑拓扑结构构建至少m个任务队列,基于所述第二逻辑拓扑结构构建至少n-m个任务队列,所述任务队列包括第一任务队列,第二任务队列,…,第n任务队列,分别用于执行所述通信算法的n个通信操作;所述实现方法包括:
13.根据权利要求1-10中任一项所述的实现方法,其特征在于,所述通信算法为allreduce通信算法,所述allreduce通信算法包括reducescatter、allreduce和allgather三个通信操作;基于所述第一逻辑拓扑结构构建第一任务队列和第三任务队列,分别用于执行所述reducescatter和allgather通信操作,基于所述第二逻辑拓扑结构构建第二任务队列,用于执行所述allreduce通信操作;所述实现方法包括:
14.根据权利要求12或13中所述的实现方法,其特征在于,所述同步操作包括触发器方式和轮询方式中的至少一种。
15.根据权利要求1至14中任一项所述的实现方法,其特征在于,所述第一逻辑拓扑结构和所述第二逻辑拓扑结构分别包括环拓扑、链拓扑、树拓扑、全互联拓扑中的至少一个。
16.一种计算机可读存储介质,包括计算机可执行指令,当所述计算机可执行指令由一个或多个处理器运行时,执行所述权利要求1至15中任一项所述的方法。
17.一种电子设备,包括一个或多个处理器和存储器,所述存储器中存有计算机可读程序,所述处理器通过运行所述存储器中的程序,执行所述权利要求1至15任一项所述的方法。
