算子拆分方法、装置及介质制造方法及图纸

技术编号:38817899 阅读:18 留言:0更新日期:2023-09-15 19:57
本申请提供一种算子拆分方法、装置及介质。所述方法包括:获取目标算子所需的缓存信息;根据所述目标算子所需的缓存信息和所述第一存储器的存储容量对所述目标算子进行拆分并获取所述目标算子所需的缓存在所述第一存储器中的布局,所述目标算子的拆分结果和所述目标算子所需的缓存在所述第一存储器中的布局用于实现目标人工智能模型到所述人工智能硬件加速器的映射。硬件加速器的映射。硬件加速器的映射。

【技术实现步骤摘要】
算子拆分方法、装置及介质


[0001]本申请涉及一种数据处理方法,特别是涉及一种算子拆分方法、装置及介质。

技术介绍

[0002]近年来,人工智能(Artificial Intelligence,AI)技术得到了突飞猛进的发展。然而,随着技术的不断发展,人工智能模型对硬件的计算能力要求越来越高。为了提升硬件的计算能力,人工智能硬件加速器应运而生。
[0003]目前,绝大多数人工智能硬件加速器都采用分层存储结构,在该分层存储结构中,外部存储空间容量较大而带宽较低,内部存储空间较小而带宽较高。在使用此类人工智能硬件加速器进行计算时,不可避免地需要将人工智能模型中的算子进行拆分以适配人工智能硬件加速器的内部存储空间。

技术实现思路

[0004]本申请的目的在于提供一种算子拆分方法、装置及介质,用于实现人工智能模型的算子拆分以及人工智能硬件加速器中内部存储空间的配置。
[0005]为实现上述目的及其他相关目的,本申请的第一方面提供一种算子拆分方法,所述算子拆分方法应用于人工智能硬件加速器的编译阶段,所述人工智能硬件加速器包括第一存储器,所述算子拆分方法包括:获取目标算子所需的缓存信息;根据所述目标算子所需的缓存信息和所述第一存储器的存储容量对所述目标算子进行拆分并获取所述目标算子所需的缓存在所述第一存储器中的布局,所述目标算子的拆分结果和所述目标算子所需的缓存在所述第一存储器中的布局用于实现目标人工智能模型到所述人工智能硬件加速器的映射。
[0006]于所述第一方面的一实施例中,对所述目标算子进行拆分并获取所述目标算子所需的缓存在所述第一存储器中的布局包括:在目标维度对所述目标算子的待拆分数据进行拆分;根据所述待拆分数据的拆分结果获取所述目标算子所需的缓存在所述第一存储器中的布局。
[0007]于所述第一方面的一实施例中,所述待拆分数据包括所述目标算子的输入数据、权重数据和输出数据,在目标维度对所述目标算子的待拆分数据进行拆分包括:在所述第一存储器中为所述输出数据配置第一存储空间;若所述第一存储空间配置失败,则在第一目标维度对所述权重数据进行拆分,并根据所述权重数据的拆分结果在所述第一存储器中为拆分之后的所述权重数据配置第二存储空间,且在所述第二存储空间配置成功之后,在第二目标维度对所述输入数据进行拆分,并根据所述输入数据的拆分结果在所述第一存储器中为拆分之后的所述输入数据配置第三存储空间;若所述第一存储空间配置成功,则在所述第二目标维度对所述输入数据进行拆分,并根据所述输入数据的拆分结果在所述第一存储器中为拆分之后的所述输入数据配置所述第三存储空间。
[0008]于所述第一方面的一实施例中,所述算子拆分方法还包括:若所述第一存储空间
配置成功而所述第三存储空间配置失败,则在所述第一目标维度对所述权重数据进行拆分,并根据所述权重数据的拆分结果在所述第一存储器中为拆分之后的所述权重数据配置所述第二存储空间,且在所述第二存储空间配置成功之后,在所述第二目标维度对所述输入数据进行重新拆分,并根据所述输入数据的重新拆分结果在所述第一存储器中为拆分之后的所述输入数据重新配置所述第三存储空间。
[0009]于所述第一方面的一实施例中,所述算子拆分方法还包括:若所述第一存储空间和所述第三存储空间均配置失败,则在所述第一目标维度对所述权重数据进行重新拆分,并根据所述权重数据的重新拆分结果在所述第一存储器中为拆分之后的所述权重数据重新配置所述第二存储空间,且在所述第二存储空间重新配置成功之后,在所述第二目标维度对所述输入数据进行重新拆分,并根据所述输入数据的重新拆分结果在所述第一存储器中为拆分之后的所述输入数据重新配置所述第三存储空间;其中,所述权重数据进行重新拆分所采用的拆分方式与之前拆分所采用的拆分方式不同。
[0010]于所述第一方面的一实施例中,在所述第一目标维度对所述权重数据进行拆分并根据所述权重数据的拆分结果在所述第一存储器中为拆分之后的所述权重数据配置第二存储空间包括:根据第一拆分参数在所述第一目标维度对所述权重数据进行拆分,并根据所述权重数据的本次拆分结果在所述第一存储器中为拆分之后的所述权重数据配置所述第二存储空间,若根据所述权重数据的本次拆分结果不能实现对所述第二存储空间的配置,则将所述第一存储器恢复为本次拆分之前的状态并更新所述第一拆分参数,更新后的所述第一拆分参数用于对所述权重数据进行下一次拆分,重复此步骤直到所述第二存储空间配置成功或者遍历完所述第一拆分参数的所有可选值,其中,所述第一拆分参数用于指定所述权重数据的拆分份数。
[0011]于所述第一方面的一实施例中,在第二目标维度对所述输入数据进行拆分并根据所述输入数据的拆分结果在所述第一存储器中为拆分之后的所述输入数据配置第三存储空间包括:根据第二拆分参数在所述第二目标维度对所述输入数据进行拆分,并根据所述输入数据的本次拆分结果在所述第一存储器中为拆分之后的所述输入数据配置所述第三存储空间,若根据所述输入数据的本次拆分结果不能实现对所述第三存储空间的配置,则将所述第一存储器恢复为本次拆分之前的状态并更新所述第二拆分参数,更新后的所述第二拆分参数用于对所述输入数据进行下一次拆分,重复此步骤直到所述第三存储空间配置成功或者遍历完所述第二拆分参数的所有可选值,其中,所述第二拆分参数用于指定所述输入数据的拆分份数。
[0012]于所述第一方面的一实施例中,所述第二目标维度包括通道维度和高度维度,所述第二拆分参数包括通道维度拆分参数和高度维度拆分参数,在第二目标维度对所述输入数据进行拆分并根据所述输入数据的拆分结果在所述第一存储器中为拆分之后的所述输入数据配置第三存储空间包括:根据所述通道维度拆分参数在所述通道维度对所述输入数据进行拆分,根据所述输入数据的本次拆分结果在所述第一存储器中为拆分之后的所述输入数据配置所述第三存储空间,若根据所述输入数据的本次拆分结果不能实现对所述第三存储空间的配置,则将所述第一存储器恢复为本次拆分之前的状态并更新所述通道维度拆分参数,更新后的所述通道维度拆分参数用于对所述输入数据进行下一次拆分,重复此步骤直到所述第三存储空间配置成功或者遍历完所述通道维度拆分参数的所有可选值;若在
所述通道维度上配置所述第三存储空间失败,则根据所述高度维度拆分参数在所述高度维度对所述输入数据进行拆分,根据所述输入数据的本次拆分结果在所述第一存储器中为拆分之后的所述输入数据配置所述第三存储空间,若根据所述输入数据的本次拆分结果不能实现对所述第三存储空间的配置,则将所述第一存储空间恢复为本次拆分之前的状态并更新所述高度维度拆分参数,更新后的所述高度维度拆分参数用于对所述输入数据进行下一次拆分,重复此步骤直到所述第三存储空间配置成功或者遍历完所述高度维度拆分参数的所有可选值。
[0013]于所述第一方面的一实施例中,所述人工智能硬件加速器还包括第二存储器。
[0014]于所述第一方面的一实施例中,所述算子拆分方法还包括:判断所述目标算子的输出数据是否需要移动到所述第二存储器。
...

【技术保护点】

【技术特征摘要】
1.一种算子拆分方法,其特征在于,所述算子拆分方法应用于人工智能硬件加速器的编译阶段,所述人工智能硬件加速器包括第一存储器,所述算子拆分方法包括:获取目标算子所需的缓存信息;根据所述目标算子所需的缓存信息和所述第一存储器的存储容量对所述目标算子进行拆分并获取所述目标算子所需的缓存在所述第一存储器中的布局,所述目标算子的拆分结果和所述目标算子所需的缓存在所述第一存储器中的布局用于实现目标人工智能模型到所述人工智能硬件加速器的映射。2.根据权利要求1所述的算子拆分方法,其特征在于,对所述目标算子进行拆分并获取所述目标算子所需的缓存在所述第一存储器中的布局包括:在目标维度对所述目标算子的待拆分数据进行拆分;根据所述待拆分数据的拆分结果获取所述目标算子所需的缓存在所述第一存储器中的布局。3.根据权利要求2所述的算子拆分方法,其特征在于,所述待拆分数据包括所述目标算子的输入数据、权重数据和输出数据,在目标维度对所述目标算子的待拆分数据进行拆分包括:在所述第一存储器中为所述输出数据配置第一存储空间;若所述第一存储空间配置失败,则在第一目标维度对所述权重数据进行拆分,并根据所述权重数据的拆分结果在所述第一存储器中为拆分之后的所述权重数据配置第二存储空间,且在所述第二存储空间配置成功之后,在第二目标维度对所述输入数据进行拆分,并根据所述输入数据的拆分结果在所述第一存储器中为拆分之后的所述输入数据配置第三存储空间;若所述第一存储空间配置成功,则在所述第二目标维度对所述输入数据进行拆分,并根据所述输入数据的拆分结果在所述第一存储器中为拆分之后的所述输入数据配置所述第三存储空间。4.根据权利要求3所述的算子拆分方法,其特征在于,所述算子拆分方法还包括:若所述第一存储空间配置成功而所述第三存储空间配置失败,则在所述第一目标维度对所述权重数据进行拆分,并根据所述权重数据的拆分结果在所述第一存储器中为拆分之后的所述权重数据配置所述第二存储空间,且在所述第二存储空间配置成功之后,在所述第二目标维度对所述输入数据进行重新拆分,并根据所述输入数据的重新拆分结果在所述第一存储器中为拆分之后的所述输入数据重新配置所述第三存储空间。5.根据权利要求3所述的算子拆分方法,其特征在于,所述算子拆分方法还包括:若所述第一存储空间和所述第三存储空间均配置失败,则在所述第一目标维度对所述权重数据进行重新拆分,并根据所述权重数据的重新拆分结果在所述第一存储器中为拆分之后的所述权重数据重新配置所述第二存储空间,且在所述第二存储空间重新配置成功之后,在所述第二目标维度对所述输入数据进行重新拆分,并根据所述输入数据的重新拆分结果在所述第一存储器中为拆分之后的所述输入数据重新配置所述第三存储空间;其中,所述权重数据进行重新拆分所采用的拆分方式与之前拆分所采用的拆分方式不同。6.根据权利要求3所述的算子拆分方法,其特征在于,在所述第一目标维度对所述权重
数据进行拆分并根据所述权重数据的拆分结果在所述第一存储器中为拆分之后的所述权重数据配置第二存储空间包括:根据第一拆分参数在所述第一目标维度对所述权重数据进行拆分,并根据所述权重数据的本次拆分结果在所述第一存储器中为拆分之后的所述权重数据配置所述第二存储空间,若根据所述权重数据的本次拆分结果不能实现对所述第二存储空间的配置,则将所述第一存储器恢复为本次拆分之前的状态并更新所述第一拆分参数,更新后的所述第一拆分参数用于对所述权重数据进行下一次拆分,重复此步骤直到所述第二存储空间配置成功或者遍历完所述第一拆分参数的所有可选值,其中,所述第一拆分参数用于指定所述权重数据的拆分份数。7.根据权利要求3所述的算子拆分方法,其特征在于,在第二目标维度对所述输入数据进行拆分并根据所述输入数据的拆分结果在所述第一存储器中为拆分之后的所述输入数据配置第三存储空间包括:根据第二拆分参数在所述第二目标维度对所述输入数据进行拆分,并根据所述输入数据的本次拆分结果在所述第一存储器中为拆分之后的所述输入数据配置所述第三存储空间,若根据所述输入数据的本次拆分结果不能实现对所述第三存储空间的配置,则将所述第一存储器恢复为本次拆分之前的状态并更新所述第二拆分参数,更新后的所述第二拆分参数用于对所述输入数据进行下一次拆分,重复此步骤直到所述第三存储空间配置成功或者遍历完所述第二拆分参数的所有可选值,其中,所述第二拆分参数用于指定所述输入数据的拆分份数。8.根据权利要求7所述的算子拆分方法,其特征在于,所述第二目标维度包括通道维度和高度维度,所述第二拆分参数包括通道维度拆分参数和高度维度拆分参数,在第二目标维度对所述输入数据进行拆分并根据所述输入数据的拆分结果在所述第一存储器中为拆分之后的所述输入数据配置第三存储空间包括:根据所述通道维度拆分参数在所述通道维度对所述输入数据进行拆分,根据所述输入数据的本次拆分结果在所述第一存储器中为拆分之后的所述输入数据配置所述第三存储空间,若根据所述输入数据的本次拆分结果不能实现对所述第三存储空间的配置,则将所述第一存储器恢复为本次拆分之前的状态并更新所述通道维度拆分参数,更新后的所述通道维度拆分参数用于对所述输...

【专利技术属性】
技术研发人员:杨密蔡雨
申请(专利权)人:澜起科技股份有限公司
类型:发明
国别省市:

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

1