一种AI加速器的约束定位方法、装置、电子设备及介质与流程

文档序号:37037096发布日期:2024-02-20 20:29阅读:20来源:国知局
一种AI加速器的约束定位方法、装置、电子设备及介质与流程

本技术涉及深度学习,特别是涉及一种ai加速器的约束定位方法、装置、电子设备及介质。


背景技术:

1、人工智能(artificial intelligence,ai)加速器是指除通用处理器以外的用于辅助ai计算的计算单元,通常用于处理特定模式的计算,因此ai加速器对其所执行的模型代码设有一定的约束限制。而工作人员在进行模型代码设计时,一般不会考虑ai加速器的约束限制,导致在实际生产环境中部署模型时,出现较多不支持模型结构的错误。

2、这样工作人员需要根据错误信息人工排查不支持的模型结构以及定位该模型结构对应的模型代码,可见,采用以上方式定位ai加速器的约束对应的模型代码的效率很低,并且严重影响模型的部署效率。


技术实现思路

1、本技术实施例的目的在于提供一种ai加速器的约束定位方法、装置、电子设备及介质,以提高定位ai加速器的约束对应的模型代码的效率,进而提高模型的部署效率。具体技术方案如下:

2、第一方面,本技术实施例提供了一种ai加速器的约束定位方法,所述方法包括

3、获取待检测模型代码;

4、运行所述待检测模型代码,根据所述待检测模型代码包括的运算操作以及所述运算操作对应的数据的传递关系,构建模型计算图,其中,所述模型计算图包括用于表示所述运算操作的节点和用于表示所述数据的传递关系的边;

5、将所述待检测模型代码包括的每个运算操作对应的代码位置绑定至所述模型计算图中该运算操作对应的节点,得到绑定位置的模型计算图;

6、基于所述绑定位置的模型计算图中各节点、边以及预先获得的加速器信息,确定与所述加速器信息不符的目标节点,其中,所述加速器信息为所述待检测模型代码所要部署的ai加速器对模型的约束信息;

7、将所述目标节点所对应的代码位置对应的代码,确定为约束代码。

8、可选的,所述运行所述待检测模型代码,根据所述待检测模型代码包括的运算操作以及所述运算操作对应的数据的传递关系,构建模型计算图的步骤,包括:

9、运行所述待检测模型代码;

10、在所述待检测模型代码的运行过程中,基于当前执行的运算操作对应代码所调用的后端算子,确定模型计算图的节点;

11、根据所调用的后端算子对应的运算数据,确定模型计算图的该节点对应的边。

12、可选的,所述待检测模型代码包括初始化代码和调用代码;

13、所述将所述待检测模型代码包括的每个运算操作对应的代码位置绑定至所述模型计算图中该运算操作对应的节点,得到绑定位置的模型计算图的步骤,包括:

14、在运行所述初始化代码时,记录初始化代码对应的代码位置,作为初始化代码位置;

15、在运行所述调用代码时,针对每个运算操作所调用的代码,将所调用的代码对应的代码位置以及该运算操作对应的初始化代码位置,与该运算操作对应的所述模型计算图的节点进行绑定。

16、可选的,所述基于所述绑定位置的模型计算图中各节点、边以及预先获得的加速器信息,确定与所述加速器信息不符的目标节点的步骤,包括:

17、将所述绑定位置的模型计算图中各节点和边所标识的模型结构与预先获得的加速器信息所标识的模型结构进行匹配;

18、如果存在与所述加速器信息所标识的模型结构不匹配的模型结构,将所述不匹配的模型结构对应的节点确定为与所述加速器信息不符的目标节点。

19、可选的,所述将所述目标节点所对应的代码位置对应的代码,确定为约束代码的步骤,包括:

20、从所述绑定位置的模型计算图中,确定所述目标节点所对应的代码位置;

21、基于所述代码位置从所述待检测模型代码中,分离出所述代码位置对应的代码,得到约束代码。

22、可选的,所述方法还包括:

23、获取修改后的模型代码,其中,所述修改后的模型代码为工作人员基于所述约束代码对应的加速器信息,对所述约束代码进行修改得到的;

24、对所述修改后的模型代码进行模型转换,得到可运行于ai加速器的模型代码;

25、将所述模型代码部署至所述ai加速器。

26、第二方面,本技术实施例提供了一种ai加速器的约束定位装置,所述装置包括

27、待检测模型代码获取模块,用于获取待检测模型代码;

28、模型计算图构建模块,用于运行所述待检测模型代码,根据所述待检测模型代码包括的运算操作以及所述运算操作对应的数据的传递关系,构建模型计算图,其中,所述模型计算图包括用于表示所述运算操作的节点和用于表示所述数据的传递关系的边;

29、位置绑定模块,用于将所述待检测模型代码包括的每个运算操作对应的代码位置绑定至所述模型计算图中该运算操作对应的节点,得到绑定位置的模型计算图;

30、目标节点确定模块,用于基于所述绑定位置的模型计算图中各节点、边以及预先获得的加速器信息,确定与所述加速器信息不符的目标节点,其中,所述加速器信息为所述待检测模型代码所要部署的ai加速器对模型的约束信息;

31、约束代码确定模块,用于将所述目标节点所对应的代码位置对应的代码,确定为约束代码。

32、可选的,所述模型计算图构建模块,包括:

33、待检测模型代码运行子模块,用于运行所述待检测模型代码;

34、节点确定子模块,用于在所述待检测模型代码的运行过程中,基于当前执行的运算操作对应代码所调用的后端算子,确定模型计算图的节点;

35、边确定子模块,用于根据所调用的后端算子对应的运算数据,确定模型计算图的该节点对应的边。

36、可选的,所述待检测模型代码包括初始化代码和调用代码;

37、所述位置绑定模块,包括:

38、初始化代码位置获取子模块,用于在运行所述初始化代码时,记录初始化代码对应的代码位置,作为初始化代码位置;

39、位置绑定子模块,用于在运行所述调用代码时,针对每个运算操作所调用的代码,将所调用的代码对应的代码位置以及该运算操作对应的初始化代码位置,与该运算操作对应的所述模型计算图的节点进行绑定。

40、可选的,所述目标节点确定模块,包括:

41、模型结构匹配子模块,用于将所述绑定位置的模型计算图中各节点和边所标识的模型结构与预先获得的加速器信息所标识的模型结构进行匹配;

42、目标节点确定子模块,用于如果存在与所述加速器信息所标识的模型结构不匹配的模型结构,将所述不匹配的模型结构对应的节点确定为与所述加速器信息不符的目标节点。

43、可选的,所述约束代码确定模块,包括:

44、代码位置确定子模块,用于从所述绑定位置的模型计算图中,确定所述目标节点所对应的代码位置;

45、约束代码获取子模块,用于基于所述代码位置从所述待检测模型代码中,分离出所述代码位置对应的代码,得到约束代码。

46、可选的,所述装置还包括:

47、第一获取模块,用于获取修改后的模型代码,其中,所述修改后的模型代码为工作人员基于所述约束代码对应的加速器信息,对所述约束代码进行修改得到的;

48、第二获取模块,用于对所述修改后的模型代码进行模型转换,得到可运行于ai加速器的模型代码;

49、模型代码部署模块,用于将所述模型代码部署至所述ai加速器。

50、第三方面,本技术实施例提供了一种电子设备,包括:

51、存储器,用于存放计算机程序;

52、处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一所述的方法。

53、第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的方法。

54、本技术实施例有益效果:

55、本技术实施例提供的方案中,电子设备可以获取待检测模型代码,运行待检测模型代码,根据待检测模型代码包括的运算操作以及运算操作对应的数据的传递关系,构建模型计算图,其中,模型计算图包括用于表示运算操作的节点和用于表示数据的传递关系的边,将待检测模型代码包括的每个运算操作对应的代码位置绑定至模型计算图中该运算操作对应的节点,得到绑定位置的模型计算图,基于绑定位置的模型计算图中各节点、边以及预先获得的加速器信息,确定与加速器信息不符的目标节点,其中,加速器信息为待检测模型代码所要部署的ai加速器对模型的约束信息,将目标节点所对应的代码位置对应的代码,确定为约束代码。由于将待检测模型代码包括的每个运算操作对应的代码位置与模型计算图中该运算操作对应的节点进行绑定,那么在确定与加速器信息不符的目标节点后,可以根据目标节点所对应的代码位置确定约束代码,这样无需人工定位ai加速器的约束对应的模型代码,可以提高定位ai加速器的约束对应的模型代码的效率,以使工作人员及时对不符合约束的模型代码进行修改,进而避免在模型部署时因模型代码不符合约束而返工,提高模型部署效率。当然,实施本技术的任一产品或方法并不一定需要同时达到以上所述的所有优点。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1