适配AI模型的编译方法、装置、存储介质及电子设备制造方法及图纸

技术编号:36073573 阅读:10 留言:0更新日期:2022-12-24 10:44
本申请实施例提供了一种适配AI模型的编译方法、装置、电子设备及存储介质,应用于编译器,编译器包括:编码器和解码器,通过获取AI模型和AI模型对应的参数,将AI模型和参数分配至编码器的缓冲区,获得待编译数据,采用编码器对待编译数据进行编码生成对应于缓冲区的算子流文件,实现计算即编译的设计,将神经网络向前推理计算过程抽象成算子,采用解码器对各个算子流文件进行解析和运算,获得算子流文件的算子执行结果,并转化成硬件可以识别的命令和参数格式,最终编码成自定义格式的算子流文件,可以实现在芯片端再反向解码文件,基于算子执行结果,确定编译运算结果。确定编译运算结果。确定编译运算结果。

【技术实现步骤摘要】
适配AI模型的编译方法、装置、存储介质及电子设备


[0001]本申请涉及深度学习、机器学习
,具体涉及一种适配AI模型的编译方法、装置、存储介质及电子设备。

技术介绍

[0002]近年来,以机器学习、深度学习为核心的AI技术得到迅猛发展,深度神经网络在各行各业得到广泛应用。PyTorch、TensorFlow、Keras等深度学习框架关注的重心是在GPU等硬件上训练模型,但要想将训练的模型部署到手机、物联网设备以及专用加速器(FPGA、ASIC)等不同平台,就需要AI编译器来解决。
[0003]在相关技术中,通过使用TVM(Tensor VirtuAI Machine)技术,机器学习算法可以被自动编译成可供下层硬件执行的机器语言,从而可以利用多种类型的算力。
[0004]然而,TVM最终会产生在硬件平台可执行的代码,因此,每个AI模型都对应一份代码,无法形成统一的软件框架。

技术实现思路

[0005]鉴于上述问题,本申请提供一种适配AI模型的编译方法、装置、电子设备及存储介质,以至少解决相关技术中软件框架不能适配每种AI模型的问题。
[0006]第一方面,本申请实施例提供了一种适配AI模型的编译方法,应用于编译器,所述编译器包括:编码器和解码器,包括:获取AI模型和所述AI模型对应的参数;将所述AI模型和所述参数分配至所述编码器的缓冲区,获得待编译数据;采用编码器对待编译数据进行编码生成对应于所述缓冲区的算子流文件;采用所述解码器对各个所述算子流文件进行解析和运算,获得算子流文件的算子执行结果;基于所述算子执行结果,确定编译运算结果。
[0007]在一实施例中,所述算子流文件包括:头部变量、算子序列、硬件指令集合和网络权重集合。
[0008]在一实施例中,所述方法还包括:基于所述算子流文件关联生成拓展样式文件;基于所述拓展样式文件确定所述AI模型的位置信息,其中,所述位置信息包括:所述AI模型的数据输入位置和所述AI模型的数据输出位置。
[0009]在一实施例中,所述基于所述解码器对各个所述算子流文件进行解析,包括:判断所述算子序列中的算子类型;当所述算子类型为硬件算子时,基于嵌入式神经网络计算器运算;当所述算子类型为软件算子时,基于软件逻辑运算。
[0010]在一实施例中,所述方法还包括:基于所述算子流文件的大小分配目标缓冲区进行存储,包括:判断所述算子流文件的大小是否大于所述目标缓冲区的大小;当所述算子流文件的大小大于所述目标缓冲区的大小时,将所述算子流文件存储至第一目标缓冲区,其中,所述第一目标缓冲区大小大于或等于所述算子流文件的大小。
[0011]在一实施例中,所述方法还包括:基于所述算子流文件的大小确认编码结果,包括:在所述算子流文件的大小为零的情况下,确定编码失败。
[0012]在一实施例中,所述算子流文件包括:空算子,所述在所述算子流文件运算完成后,确定编译运算结果,包括:在确定运算执行所述空算子文件的情况下,确认所述算子流文件运算完成,将运算结果从定点转化为浮点。
[0013]第二方面,本申请实施例提供了一种适配AI模型的编译装置,应用于编译器,所述编译器包括:编码器和解码器,包括:获取模块,用于获取AI模型和所述AI模型对应的参数。分配模块,用于将所述AI模型和所述参数分配至所述编码器的缓冲区,获得待编译数据。编码模块,用于采用编码器对待编译数据进行编码生成对应于所述缓冲区的算子流文件。解码模块,用于采用所述解码器对各个所述算子流文件进行解析和运算,获得算子流文件的算子执行结果。确定模块,用于基于所述算子执行结果,确定编译运算结果。
[0014]第三方面,本申请实施例提供一种电子设备,该设备包括:至少一个处理器和存储器;处理器用于执行存储器中储存的计算机程序,以实现如第一方面任一项实施方式所介绍的适配AI模型的编译方法。
[0015]第四方面,本申请实施例提供一种计算机存储介质,该计算机存储介质储存有一个或多个程序,一个或者多个程序可被如第三方面介绍的电子设备执行,以实现如第一方面任一项实施方式所介绍的适配AI模型的编译方法。
[0016]本申请实施例提供的一种编译方法、装置、电子设备及存储介质,在获取AI模型和AI模型对应的参数,将AI模型和参数分配至编码器的缓冲区,获得待编译数据,通过采用编码器对待编译数据进行编码生成对应于缓冲区的算子流文件,实现将内存中的数据结构的模型信息进行编译,采用解码器对各个算子流文件进行解析和运算,获得算子流文件的算子执行结果,实现在芯片端的反向解码,基于算子执行结果,确定编译运算结果,克服了相关技术中软件框架不能适配每种AI模型的问题。
[0017]应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围,本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0018]在下文中将基于实施例并参考附图来对本申请进行更详细的描述。
[0019]图1示出了本申请一实施例中提出的一种适配AI模型的编译方法的流程示意图;
[0020]图2示出了本申请一实施例中提出的一种编译方法中步骤S140中的一种流程示意图;
[0021]图3示出了本申请一实施例中提出的一种编码器的工作流程示意图;
[0022]图4示出了本申请一实施例中提出的一种解码器的工作流程示意图;
[0023]图5示出了本申请一实施例中提出的一种算子流文件结构示意图;
[0024]图6示出了本申请一实施例中提出的一种适配AI模型的编译装置的结构框图;
[0025]图7示出了本申请实施例中提出的用于执行根据本申请实施例的适配AI模型的编译方法的电子设备的结构框图;
[0026]图8示出了本申请实施例中提出的用于保存或者携带实现根据本申请实施例的适配AI模型的编译方法的计算机可读存储介质。
具体实施方式
[0027]为使本专利技术的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本专利技术作进一步的详细说明,本专利技术的示意性实施方式及其说明仅用于解释本专利技术,并不作为对本专利技术的限定。
[0028]在相关技术中,TVM主要用于张量计算,提供独立于硬件底层的中间表示,采用各种方式(循环分块、缓存优化等)对相应的计算进行优化。第一代TVM的设计借鉴了传统编译器框架LLVM的设计思路,设计抽象出中间表示层,不同的模型只需要开发相应的前端接口,不同的硬件只需要开发相应的后端。
[0029]TVM最终会产生在硬件平台可执行的C代码,这意味着每个AI模型对应一份C代码,无法形成统一的软件框架。
[0030]针对上述问题,考虑到现有技术中编译器的程序框架无法适应所有AI模型的问题,申请人提出了本申请实施例的适配AI模型的编译方法、装置、电子设备及存储介质,应用于编译器,编译器包括:编码器和解码器,通过获取AI模型和AI模型对应的参数,将AI模型和参数分配至编码器的缓冲区,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种适配AI模型的编译方法,其特征在于,应用于编译器,所述编译器包括:编码器和解码器,所述方法包括:获取AI模型和所述AI模型对应的参数;将所述AI模型和所述参数分配至所述编码器的缓冲区,获得待编译数据;采用编码器对待编译数据进行编码生成对应于所述缓冲区的算子流文件;采用所述解码器对各个所述算子流文件进行解析和运算,获得算子流文件的算子执行结果;基于所述算子执行结果,确定编译运算结果。2.根据权利要求1所述的适配AI模型的编译方法,其特征在于,所述算子流文件包括:头部变量、算子序列、硬件指令集合和网络权重集合。3.根据权利要求2所述的适配AI模型的编译方法,其特征在于,所述方法还包括:基于所述算子流文件关联生成拓展样式文件;基于所述拓展样式文件确定所述AI模型的位置信息,其中,所述位置信息包括:所述AI模型的数据输入位置和所述AI模型的数据输出位置。4.根据权利要求3所述的适配AI模型的编译方法,其特征在于,所述采用所述解码器对各个所述算子流文件进行解析,包括:判断所述算子序列中的算子类型;当所述算子类型为硬件算子时,基于嵌入式神经网络计算器运算;当所述算子类型为软件算子时,基于软件逻辑运算。5.根据权利要求2所述的适配AI模型的编译方法,其特征在于,所述方法还包括:基于所述算子流文件的大小分配目标缓冲区进行存储,包括:判断所述算子流文件的大小是否大于所述目标缓冲区的大小;当所述算子流文件的大小大于所述目标缓冲区的大小时,将所述算子流文件存储至第一目标缓冲区,其中,所述第一目标缓冲区大小大于或等于所述算...

【专利技术属性】
技术研发人员:李辉武
申请(专利权)人:珠海零边界集成电路有限公司
类型:发明
国别省市:

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

1