针对支持算子层面操作的AI芯片的自动量化部署方法及系统与流程
- 国知局
- 2024-09-11 14:33:26
本发明属于模型量化部署,尤其是涉及针对支持算子层面操作的ai芯片的自动量化部署方法及系统。
背景技术:
1、ai模型量化部署是将训练好的深度学习模型进行量化处理,并将其部署至各种硬件平台上的过程。量化是一种模型压缩技术,通过量化部署,可以减少模型的内存占用和计算需求,从而提高模型在硬件平台上的运行效率,使其能够在资源受限的设备上运行,如移动设备、嵌入式系统等。
2、目前,市场上主流的ai模型量化部署工具有英伟达的trtexec、瑞芯微的rknn-toolkit以及商汤的openppl等,他们的共有特点是会将量化后的模型以整体的形式打包成某框架下的模型结构,这也就意味着将模型拆解到算子层面进行支持的通用ai芯片,如hc3080无法利用这些已有的量化部署工具简化开发的流程降低部署成本。
技术实现思路
1、本发明的目的是针对上述问题,提出一种针对支持算子层面操作的ai芯片的自动量化部署方法及系统,主要在于提出一种适用于hc3080等针对支持算子层面操作的ai芯片的自动量化部署流程,实现此类芯片的开发简化和部署成本降低。
2、一种针对支持算子层面操作的ai芯片的自动量化部署方法,方法包括,对中间格式的待部署模型进行自动量化和部署:
3、生成包含nhnn框架和nhnn权重的nhnn模型;
4、nhnn框架根据目标芯片记录量化所需信息、目标芯片所需信息,以及记录待部署模型的模型操作信息,按模型在运行时不同算子的先后运行顺序记录各操作的信息;
5、nhnn权重通过根据nhnn框架记录的信息对待部署模型的权重进行量化后以操作为单位进行拆分并以二进制文件的形式进行存储得到。模型操作即算子,即生成的nhnn模型将待部署模型拆解到了算子层面的各个操作。
6、根据nhnn框架中记录的信息构建目标芯片的嵌入式系统所能识别的模型,并将量化后的nhnn权重导入至目标板卡,完成模型部署,该目标板卡包含目标芯片以及一些外围设备,如内存等。
7、本方案可将其他任意框架下的ai模型事先通过一般方式转换为中间格式,然后根据中间格式生成待部署模型的nhnn模型,如此,只需要根据nhnn框架构建目标芯片能够识别的模型,连同nhnn权重导入即可完成部署,能够简化开发人员向hc3080等此类芯片部署ai模型的成本,简化开发流程。
8、在上述的针对支持算子层面操作的ai芯片的自动量化部署方法中,模型部署具体包括:
9、根据nhnn框架中记录的操作顺序调用相应的api函数(开发商提供),同时调用相应的nhnn权重,生成部署所需的源文件;
10、调用目标芯片支持的交叉编译链将c语言表达的源文件编译为目标芯片能够识别的动态库文件及可执行文件,并将量化后的nhnn权重和模型动态库文件及可执行文件导入至所述的目标板卡。
11、以上部署流程针对hc3080芯片,即,一般是根据nhnn框架中记录的信息构建目标芯片的嵌入式系统所能识别的模型,并将量化后的nhnn权重和前述构建的模型的动态库文件及可执行文件导入,对于hc3080芯片,则具体是上述流程。
12、在上述的针对支持算子层面操作的ai芯片的自动量化部署方法中,本方法还包括:
13、对nhnn框架下各个操作的优先级进行重新排列;
14、将可以同时运行的操作放在同一优先级;
15、根据优先级排列,生成一个多核并行的调度策略。
16、在上述的针对支持算子层面操作的ai芯片的自动量化部署方法中,多核并行的调度策略生成方法包括,按顺序检索nhnn框架,以第一个操作的优先级序号为1,后续操作的优先级序号为当前节点的最大父节点的优先级序号+1进行统计,最终生成一个多核并行的调度策略文件;
17、目标芯片运行部署模型时,依据调度策略文件的优先级序号,从低至高运行,当检测到某一优先级序号有多个操作时,将多个操作分布于多核上共同运行;
18、若同一优先级序号的操作数量超过目标芯片支持或空闲的核心数量,如果空闲的核心数量少于目标芯片的核心数量,则取空闲的核心数量,任取与核心数量相同的多个操作分布于各核心同时运行,剩余操作继续按优先级序号从低至高运行。
19、上述方案通过利用nhnn框架记录的操作信息,通过子父节点的方式对操作进行重排序,并且这种方式排列的序号使没有冲突的节点能够位于同一优先级,从而生成一个多核并行的调度策略文件,使模型通过上述部署自动地在芯片上实现多核并行,无需开发人员编写核心调度方案。
20、在上述的针对支持算子层面操作的ai芯片的自动量化部署方法中,模型操作信息包括当前层操作名称、操作所在维度、操作是否涉及维度变换、输出特征尺寸、节点编号、数据来源、输出层编号、当前层层号、输入特征尺寸;
21、量化所需的信息从模型训练时使用的数据集中获得;
22、目标芯片所需的信息通过计算得到;
23、模型操作信息中,数据来源、输出层编号、当前层的层号通过待部署模型在运行时不同操作的先后运行顺序得到;其余信息从所述的中间格式中得到。
24、在上述的针对支持算子层面操作的ai芯片的自动量化部署方法中,所述的目标芯片为支持定点量化的ai芯片;
25、且量化所需信息包括输入fl、权重fl、偏置fl、输出fl,fl表示定点量化过程中涉及到的小数位位数;
26、目标芯片所需信息包括trunc_mac、trunc_add、trunc_bias三个截位参数。
27、在上述的针对支持算子层面操作的ai芯片的自动量化部署方法中,三个截位参数通过如下方式得到:
28、(1)
29、(2)
30、通过公式(1)得到trunc_mac和trunc_add,通过公式(2)得到trunc_bias;
31、a表示输入数据的整数位数,b表示输出数据的整数位数,c表示权重数据的整数位数,d表示偏置数据的整数位数;
32、n=目标芯片的数据位宽-1。
33、在上述的针对支持算子层面操作的ai芯片的自动量化部署方法中,所述的目标芯片为hc3080芯片,运算时使用16位数据位宽;
34、三个截位参数通过如下方式得到:
35、 (1)
36、 (2)。
37、在上述的针对支持算子层面操作的ai芯片的自动量化部署方法中,若待部署的模型不是中间格式,则将待部署模型转换为中间格式;
38、所述的中间格式为onnx格式。
39、一种针对支持算子层面操作的ai芯片的自动量化部署系统,包括nhnn模型生成模块和自动部署模块;
40、nhnn模型生成模块,用于根据中间格式的待部署模型生成包含nhnn框架和nhnn权重的nhnn模型;
41、nhnn框架根据目标芯片记录量化所需信息、目标芯片所需信息,以及记录待部署模型的模型操作信息;
42、nhnn权重通过根据nhnn框架记录的信息对待部署模型的权重进行量化后以操作为单位进行拆分并以二进制文件的形式进行存储得到;
43、自动部署模块,用于依据nhnn框架中记录的信息构建目标芯片的嵌入式系统所能识别的模型,并将量化后的nhnn权重和前述构建的模型动态库文件及可执行文件导入包含目标芯片的目标板卡,以在目标芯片还原待部署模型并完成模型部署。
44、本发明的优点在于:
45、本方案通过设计一种新的模型结构,针对特定ai芯片简化了模型的量化和部署流程,适用于hc3080芯片,丰富了此类芯片的生态圈,节约开发人员关于此类芯片的研发成本,填补市场空缺;
46、在量化和部署过程中自动实现多核并行调度策略,充分利用hc3080等芯片的多核特性,提高部署模型的运行效率,且无需开发人员做额外工作。
本文地址:https://www.jishuxx.com/zhuanli/20240911/291389.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。