System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本披露一般涉及数据处理领域。更具体地,本披露涉及一种在多核系统上执行运算任务的方法、装置、计算机可读存储介质、计算机程序产品、处理装置、芯片和板卡。
技术介绍
1、混合专家模型(moe,mixture of experts)是一种机器学习架构,它将人工智能模型划分为不同的子网络(或称为“专家”),每个子网络专注于输入数据的一个子集,共同完成一个任务。这种架构使得即使是包含数十亿参数的大型模型也能在预训练和推理时显著降低计算成本,通过有选择地激活特定任务所需的专家,而不是对每个任务激活整个神经网络,从而提高了效率。
2、群组通用矩阵乘法(group gemm,group general matrix multiplication)是moe中的核心算子,它处理的是批量矩阵乘法问题。但是,与普通批量矩阵乘法不同,groupgemm中每个专家的矩阵维度都是可变的。这种设计使得group gemm在处理不同专家时具有灵活性,但也带来了计算上的挑战。在多核之间计算任务的划分对于group gemm性能的影响非常大。好的任务划分可以使得多核能共同协作,极大地提升group gemm的性能。
3、有鉴于此,亟需提供一种在多核系统上执行运算任务的方案,以支持多核高效并行处理group gemm这类的计算任务。
技术实现思路
1、为了至少解决如上所提到的一个或多个技术问题,本披露在多个方面中提出了一种在多核系统上执行运算任务的方案。
2、在第一方面中,本披露提供一种
3、根据预先确定的任务拆分信息,将所述群组矩阵乘法类运算任务中的各组矩阵乘拆分为多个任务块;
4、所述多核系统调整群组矩阵乘法类运算任务中输出矩阵的任务块在对应维度的网格顺序;
5、所述多核系统将各组矩阵乘的任务块统一管理,各个运算单位按照调整后的所述输出矩阵的任务块在m维度和n维度的网格顺序执行运算,使得所述多核系统在每一循环计算输入矩阵的任务块后,获得sm×sn个网格大小的输出矩阵块,其中,m是输出矩阵的行维度,n是输出矩阵的列维度,sm是在m维度上的输出矩阵块的数目;sn是在n维度上的输出矩阵块的数目。
6、在第二方面中,本披露提供一种在多核系统上执行运算任务的装置,包括处理器和存储器,其中:处理器配置用于执行程序指令;存储器配置用于存储所述程序指令;当所述程序指令由处理器加载并执行时,使得处理器执行根据第一方面所述的在多核系统上执行运算任务的方法。
7、在第三方面中,本披露提供一种计算机可读存储介质,其中存储有程序指令,当所述程序指令由处理器加载并执行时,使得所述处理器执行根据第一方面所述的在多核系统上执行运算任务的方法。
8、在第四方面中,本披露提供一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被处理器执行时实现根据第一方面所述的在多核系统上执行运算任务的方法。
9、在第五方面中,本披露提供一种芯片,包括根据第五方面所述的在多核系统上执行运算任务的装置。
10、在第六方面中,本披露提供一种板卡,包括根据第五方面所述的芯片。
11、通过如上所提供的一种在多核系统上执行运算任务的方法、装置及相关产品,本披露实施例为群组矩阵乘法类的运算任务在多核系统上的实现提供了优化的方案,可以有效减少频繁的数据交换和加载,避免输入/输出(i/o)瓶颈问题,同时充分利用多核架构的并行运行特性,提升处理效率。
本文档来自技高网...【技术保护点】
1.一种在多核系统上执行运算任务的方法,所述任务包括群组矩阵乘法类运算任务,所述群组矩阵乘法类运算任务包括多组矩阵乘,各组矩阵乘的矩阵尺寸是可变的,所述多核系统包括多个运算单位和全局缓存器,每个运算单位包括一或多个处理器核,所述全局缓存器,用于缓存数据,以供所述运算单位从所述全局缓存器中优先加载需要缓存的数据;所述方法包括:
2.根据权利要求1所述的方法,其中,所述运算单位按如下执行任务块:
3.根据权利要求1所述的方法,其中,所述多核系统调整群组矩阵乘法类运算任务中输出矩阵的任务块在对应维度的网格顺序的步骤进一步包括:
4.根据权利要求3所述的方法,其中,所述方法还包括:
5.根据权利要求2所述的方法,其中,所述运算单位包括共享存储器,所述任务块的执行采用四级流水实现,所述四级流水通过所述多核系统的片外存储器、所述共享存储器、所述本地存储器和所述处理器核实现。
6.根据权利要求5所述的方法,其中,所述共享存储器配置有至少两个共享存储区,在所述四级流水中:
7.根据权利要求6所述的方法,其中,所述本地存储器配
8.根据权利要求7所述的方法,其中,在所述四级流水中:
9.根据权利要求1-8任一所述的方法,其中,所述多核系统的各个运算单位按照调整后的所述输出矩阵的任务块在M维度和N维度的网格顺序执行运算的步骤包括:
10.根据权利要求9所述的方法,其中,所述运算单位请求下一任务块包括:
11.根据权利要求10所述的方法,其中,所述处理器核通过原子操作发起所述请求包括:
12.根据权利要求10-11任一所述的方法,其中,所述处理器核通过原子操作发起所述请求包括:
13.一种在多核系统上执行运算任务的装置,包括处理器和存储器,其中:
14.一种计算机可读存储介质,其中存储有程序指令,当所述程序指令由处理器加载并执行时,使得所述处理器执行根据权利要求1-12任一所述的在多核系统上执行运算任务的方法。
15.一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被处理器执行时实现根据权利要求1-12任一所述的在多核系统上执行运算任务的方法。
16.一种芯片,包括根据权利要求13所述的在多核系统上执行运算任务的装置。
17.一种板卡,包括根据权利要求16所述的芯片。
...【技术特征摘要】
1.一种在多核系统上执行运算任务的方法,所述任务包括群组矩阵乘法类运算任务,所述群组矩阵乘法类运算任务包括多组矩阵乘,各组矩阵乘的矩阵尺寸是可变的,所述多核系统包括多个运算单位和全局缓存器,每个运算单位包括一或多个处理器核,所述全局缓存器,用于缓存数据,以供所述运算单位从所述全局缓存器中优先加载需要缓存的数据;所述方法包括:
2.根据权利要求1所述的方法,其中,所述运算单位按如下执行任务块:
3.根据权利要求1所述的方法,其中,所述多核系统调整群组矩阵乘法类运算任务中输出矩阵的任务块在对应维度的网格顺序的步骤进一步包括:
4.根据权利要求3所述的方法,其中,所述方法还包括:
5.根据权利要求2所述的方法,其中,所述运算单位包括共享存储器,所述任务块的执行采用四级流水实现,所述四级流水通过所述多核系统的片外存储器、所述共享存储器、所述本地存储器和所述处理器核实现。
6.根据权利要求5所述的方法,其中,所述共享存储器配置有至少两个共享存储区,在所述四级流水中:
7.根据权利要求6所述的方法,其中,所述本地存储器配置有多个本地存储区,在所述四级流水中:
8.根据权利要求...
【专利技术属性】
技术研发人员:请求不公布姓名,请求不公布姓名,请求不公布姓名,请求不公布姓名,请求不公布姓名,请求不公布姓名,
申请(专利权)人:寒武纪昆山信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。