System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请实施例涉及人工智能,尤其涉及一种寄存器资源分配方法、设备、存储介质及程序产品。
技术介绍
1、人工智能模型通常指被训练用来进行推理预测的神经网络模型,例如图像推理模型、语音推理模型等。人工智能模型的运算可以由计算图(computation graph)中的算子(operator)来实现。算子指的是对人工智能模型中各层的张量所做的各种运算,例如人工智能模型的卷积层对人工智能模型的输入数据所做的卷积运算即为卷积算子。为了提高人工智能芯片的计算效率,通常将多个算子进行融合,获得融合算子。
2、在对融合算子进行寄存器资源分配时,相关技术采用固定寄存器分配方法,对融合算子进行寄存器资源的静态分配,即融合算子在多种计算场景下的寄存器资源分配方案相同。
3、然而,上述寄存器资源分配方案常常需要以牺牲性能为代价,来满足融合算子在各种计算场景的通用性要求,这样导致寄存器资源没有得到充分利用,进而影响算子的计算效率。
技术实现思路
1、本申请实施例提供了一种寄存器资源分配方法、设备、存储介质及程序产品,用于充分利用提高寄存器资源,进而提升算子的计算效率。
2、一方面,本申请实施例提供了一种寄存器资源分配方法,包括:
3、将总寄存器资源划分为多种类型的寄存器缓冲区;
4、针对融合算子的多个计算场景,分别执行操作:
5、基于所述融合算子在一个计算场景下对应的算子组合,确定为所述融合算子分配的所述多种类型的寄存器缓冲区各自的资源量
6、一方面,本申请实施例提供了一种寄存器资源分配装置,包括:
7、分类模块,用于将总寄存器资源划分为多种类型的寄存器缓冲区;
8、分配模块,针对融合算子的多个计算场景,分别执行操作:
9、基于所述融合算子在一个计算场景下对应的算子组合,确定为所述融合算子分配的所述多种类型的寄存器缓冲区各自的资源量。
10、可选地,所述分配模块具体用于:
11、基于所述融合算子的输入形状,以及所述融合算子在一个计算场景下对应的算子组合,确定为所述融合算子分配的所述多种类型的寄存器缓冲区各自的资源量。
12、可选地,所述算子组合包括:由张量计算单元执行的张量算子和由矢量计算单元执行的至少一个向量计算算子;所述多种类型的寄存器缓冲区包括:为所述张量计算单元与所述矢量计算单元之间交互所述张量算子的计算结果所分配的交互缓冲区,以及为所述至少一个向量计算算子分配的临时缓冲区;
13、所述分配模块具体用于:
14、基于所述融合算子的输入形状,从所述总寄存器资源的总资源量中分配所述交互缓冲区对应的第一资源量;
15、从所述总资源量的剩余资源量中分配所述临时缓冲区对应的第二资源量。
16、可选地,所述算子组合包括:由张量计算单元执行的张量算子和由矢量计算单元执行的分块累加算子;所述多种类型的寄存器缓冲区包括:为所述张量计算单元与所述矢量计算单元之间交互所述张量算子的分块计算结果所分配的交互缓冲区,以及为所述分块累加算子分配的累加缓冲区;
17、所述分配模块具体用于:
18、基于所述融合算子的输入形状以及所述张量算子的分块方式,从所述总寄存器资源的总资源量中分配所述交互缓冲区对应的第三资源量,以及分配所述累加缓冲区对应的第四资源量。
19、可选地,所述算子组合还包括:由矢量计算单元执行的至少一个向量计算算子;所述多种类型的寄存器缓冲区还包括:为所述至少一个向量计算算子分配的临时缓冲区;
20、所述临时缓冲区的第五资源量是从所述总资源量的剩余资源量中分配的。
21、可选地,所述分配模块还用于:
22、若所述至少一个向量计算算子中,存在双输入且具备隐式广播特征的目标计算算子,则所述多种类型的寄存器缓冲区还包括:为所述目标计算算子分配的固定专用缓冲区;
23、从所述总资源量的剩余资源量中分配所述固定专用缓冲区对应的第六资源量。
24、可选地,所述分类模块具体用于:
25、针对融合算子的多个计算场景,分别执行操作:
26、基于所述融合算子在一个计算场景下对应的算子组合,将总寄存器资源划分为多种类型的寄存器缓冲区。
27、可选地,所述分类模块具体用于:
28、基于所述融合算子的输入形状,以及所述融合算子在一个计算场景下对应的算子组合,将总寄存器资源划分为多种类型的寄存器缓冲区。
29、一方面,本申请实施例提供了一种计算机设备,包括存储器、人工智能芯片及存储在存储器上并可在人工智能芯片上运行的计算机程序,所述人工智能芯片执行所述计算机程序时实现上述寄存器资源分配方法的步骤。
30、一方面,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述计算机程序在计算机设备上运行时,使得所述计算机设备执行上述寄存器资源分配方法的步骤。
31、一方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机设备执行时,使所述计算机设备执行上述寄存器资源分配方法的步骤。
32、本申请实施例中,将总寄存器资源划分为多种类型的寄存器缓冲区。基于融合算子在每个计算场景下对应的算子组合,确定为融合算子分配的多种类型的寄存器缓冲区各自的资源量,实现对于融合算子的不同计算场景,针对性地进行寄存器资源分配,这样充分利用了寄存器这种高速的片上存储资源,较大地提高了融合算子性能。
33、其次,由于本申请针对融合算子不同的计算场景,灵活调整多种类型的寄存器缓冲区各自的资源比例,实现了融合算子泛化场景下整体的计算效率提升,具有高性能和泛化通用性。
本文档来自技高网...【技术保护点】
1.一种寄存器资源分配方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述基于所述融合算子在一个计算场景下对应的算子组合,确定为所述融合算子分配的所述多种类型的寄存器缓冲区各自的资源量,包括:
3.如权利要求2所述的方法,其特征在于,所述算子组合包括:由张量计算单元执行的张量算子和由矢量计算单元执行的至少一个向量计算算子;所述多种类型的寄存器缓冲区包括:为所述张量计算单元与所述矢量计算单元之间交互所述张量算子的计算结果所分配的交互缓冲区,以及为所述至少一个向量计算算子分配的临时缓冲区;
4.如权利要求2所述的方法,其特征在于,所述算子组合包括:由张量计算单元执行的张量算子和由矢量计算单元执行的分块累加算子;所述多种类型的寄存器缓冲区包括:为所述张量计算单元与所述矢量计算单元之间交互所述张量算子的分块计算结果所分配的交互缓冲区,以及为所述分块累加算子分配的累加缓冲区;
5.如权利要求4所述的方法,其特征在于,所述算子组合还包括:由矢量计算单元执行的至少一个向量计算算子;所述多种类型的寄存器缓冲区还包括:为所述至少一个
6.如权利要求3或5所述的方法,其特征在于,还包括:
7.如权利要求1所述的方法,其特征在于,所述将总寄存器资源划分为多种类型的寄存器缓冲区,包括:
8.如权利要求7所述的方法,其特征在于,所述基于所述融合算子在一个计算场景下对应的算子组合,将总寄存器资源划分为多种类型的寄存器缓冲区,包括:
9.一种计算机设备,包括存储器、人工智能芯片及存储在存储器上并可在人工智能芯片上运行的计算机程序,其特征在于,所述人工智能芯片执行所述计算机程序时实现如权利要求1~8任一项所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,其存储有可由计算机设备执行的计算机程序,当所述计算机程序在计算机设备上运行时,使得所述计算机设备执行如权利要求1~8任一项所述方法的步骤。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机设备执行时,使所述计算机设备执行如权利要求1-8任一项所述方法的步骤。
...【技术特征摘要】
1.一种寄存器资源分配方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述基于所述融合算子在一个计算场景下对应的算子组合,确定为所述融合算子分配的所述多种类型的寄存器缓冲区各自的资源量,包括:
3.如权利要求2所述的方法,其特征在于,所述算子组合包括:由张量计算单元执行的张量算子和由矢量计算单元执行的至少一个向量计算算子;所述多种类型的寄存器缓冲区包括:为所述张量计算单元与所述矢量计算单元之间交互所述张量算子的计算结果所分配的交互缓冲区,以及为所述至少一个向量计算算子分配的临时缓冲区;
4.如权利要求2所述的方法,其特征在于,所述算子组合包括:由张量计算单元执行的张量算子和由矢量计算单元执行的分块累加算子;所述多种类型的寄存器缓冲区包括:为所述张量计算单元与所述矢量计算单元之间交互所述张量算子的分块计算结果所分配的交互缓冲区,以及为所述分块累加算子分配的累加缓冲区;
5.如权利要求4所述的方法,其特征在于,所述算子组合还包括:由矢量计算单元执行的至少一个向量计算算子;所述多种类型的寄存器缓冲区还包括:为所述至少一...
【专利技术属性】
技术研发人员:请求不公布姓名,请求不公布姓名,请求不公布姓名,请求不公布姓名,
申请(专利权)人:上海壁仞科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。