本申请实施例提供了一种AI加速器的约束定位方法、装置、电子设备及介质,该方法包括:获取待检测模型代码,运行待检测模型代码,根据待检测模型代码包括的运算操作以及运算操作对应的数据的传递关系,构建模型计算图,将待检测模型代码包括的每个运算操作对应的代码位置绑定至模型计算图中该运算操作对应的节点,得到绑定位置的模型计算图,基于绑定位置的模型计算图中各节点、边以及预先获得的加速器信息,确定与加速器信息不符的目标节点,将目标节点所对应的代码位置对应的代码,确定为约束代码。本申请实施例无需人工定位AI加速器的约束对应的模型代码,可以提高定位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、可本文档来自技高网
...
【技术保护点】
1.一种AI加速器的约束定位方法,其特征在于,所述方法包括
2.根据权利要求1所述的方法,其特征在于,所述运行所述待检测模型代码,根据所述待检测模型代码包括的运算操作以及所述运算操作对应的数据的传递关系,构建模型计算图的步骤,包括:
3.根据权利要求2所述的方法,其特征在于,所述待检测模型代码包括初始化代码和调用代码;
4.根据权利要求1-3任一项所述的方法,其特征在于,所述基于所述绑定位置的模型计算图中各节点、边以及预先获得的加速器信息,确定与所述加速器信息不符的目标节点的步骤,包括:
5.根据权利要求1-3任一项所述的方法,其特征在于,所述将所述目标节点所对应的代码位置对应的代码,确定为约束代码的步骤,包括:
6.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
7.一种AI加速器的约束定位装置,其特征在于,所述装置包括
8.根据权利要求7所述的装置,其特征在于,所述模型计算图构建模块,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一所述的方法。
...
【技术特征摘要】
1.一种ai加速器的约束定位方法,其特征在于,所述方法包括
2.根据权利要求1所述的方法,其特征在于,所述运行所述待检测模型代码,根据所述待检测模型代码包括的运算操作以及所述运算操作对应的数据的传递关系,构建模型计算图的步骤,包括:
3.根据权利要求2所述的方法,其特征在于,所述待检测模型代码包括初始化代码和调用代码;
4.根据权利要求1-3任一项所述的方法,其特征在于,所述基于所述绑定位置的模型计算图中各节点、边以及预先获得的加速器信息,确定与所述加速器信息不符的目标节点的步骤,包括:
5.根据权利要求1...
【专利技术属性】
技术研发人员:万有文,江欣聪,秦川,
申请(专利权)人:上海高德威智能交通系统有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。