CN110750298A - 一种ai模型编译方法、设备及存储介质 - Google Patents
一种ai模型编译方法、设备及存储介质 Download PDFInfo
- Publication number
- CN110750298A CN110750298A CN201911040449.XA CN201911040449A CN110750298A CN 110750298 A CN110750298 A CN 110750298A CN 201911040449 A CN201911040449 A CN 201911040449A CN 110750298 A CN110750298 A CN 110750298A
- Authority
- CN
- China
- Prior art keywords
- model
- class
- chip
- generating
- intermediate expression
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种AI模型编译方法、设备及存储介质。其中,方法包括:获取通过标准AI框架训练得到的AI模型,并解析AI模型;对解析得到的AI模型中的算子进行分类,得到待适配的AI芯片支持的第一类算子集以及AI芯片不支持的第二类算子集;根据第一类算子集以及第二类算子集,生成至少一项中间表达;根据至少一项中间表达生成用于在所述AI芯片上运行的执行模型。本发明实施例的方案实现了将AI模型适配于不同的AI芯片,简化了AI模型的应用。
Description
技术领域
本发明实施例涉及机器学习技术,尤其涉及一种AI模型编译方法、设备及存储介质。
背景技术
随着人工智能(Artificial Intelligence,AI)技术的广泛发展与应用,市场上出现了大量的AI硬件,其核心为AI芯片,不同AI芯片的生产厂家都面临着相同的问题,即如何保证生产的AI芯片可以支持更多的AI框架,目前得到广泛应用的AI框架有TensorFlow、Caffe、Mxnet以及pytorch等,其中AI模型为通过AI框架训练得到的,并且可以运行在AI芯片上的模型。
现阶段,通过AI框架训练得到的AI模型仅能在固定的AI芯片上运行,无法应用于所有的AI芯片,并且现有技术中的AI模型转换工具不能支持所有AI模型的算子,导致无法成功的将AI模型转换为适用于现有的AI芯片的AI模型;需要用户学习相关知识,根据用户选择的AI芯片的参数对AI模型进行转换,这些都给AI模型的应用带来了极大的困难。
因此,提供一种可以将AI模型适配于不同的AI芯片,简化AI模型的应用是十分有必要的。
发明内容
本发明实施例提供一种AI模型编译方法、设备及存储介质,以实现将AI模型适配于不同的AI芯片,简化AI模型的应用。
第一方面,本发明实施例提供了一种AI模型编译方法,该方法包括:获取通过标准AI框架训练得到的AI模型,并解析所述AI模型;
对解析得到的所述AI模型中的算子进行分类,得到待适配的AI芯片支持的第一类算子集以及所述AI芯片不支持的第二类算子集;
根据所述第一类算子集以及所述第二类算子集,生成至少一项中间表达;
根据所述至少一项中间表达生成用于在所述AI芯片上运行的执行模型。
第二方面,本发明实施例还提供了一种计算机设备,该设备包括:处理器和存储器,所述存储器用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
获取通过标准AI框架训练得到的AI模型,并解析所述AI模型;
对解析得到的所述AI模型中的算子进行分类,得到待适配的AI芯片支持的第一类算子集以及所述AI芯片不支持的第二类算子集;
根据所述第一类算子集以及所述第二类算子集,生成至少一项中间表达;
根据所述至少一项中间表达生成用于在所述AI芯片上运行的执行模型。
第三方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的AI模型编译方法。
本发明实施例通过获取通过标准AI框架训练得到的AI模型,并解析得到的AI模型;对该AI模型中的算子进行分类,得到待适配的AI芯片支持的第一类算子以及AI芯片不支持的第二类算子;根据第一类算子以及第二类算子生成至少一项中间表达;根据至少一项中间表达生成用于在AI芯片上运行的执行模型。本发明实施例的方案解决了AI模型无法适配所有AI芯片的问题,实现了将AI模型适配于不同的AI芯片,简化了AI模型的应用。
附图说明
图1是本发明实施例一中的一种AI模型编译方法的流程图;
图2是本发明实施例二中的一种AI模型编译方法的流程图;
图3是本发明实施例二中的一种应用场景示意图;
图4是本发明实施例二中的AI模型编译方法在异构计算设备中的执行流程图;
图5是本发明实施例二中的AI模型编译方法在异构存储设备中的执行流程图;
图6是本发明实施例三中的一种AI模型编译装置的结构示意图;
图7是本发明实施例四中的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
本文使用的术语“AI框架”是指目前得到广泛应用的AI框架,例如,TensorFlow、Caffe、Mxnet以及pytorch等机器学习框架。
本文使用的术语“AI模型”是指通过AI框架训练得到的模型,例如,通过Caffe训练得到的可以实现图像分类的abc.caffemodel。
本文使用的术语“AI芯片”是指可以运行AI模型的智能芯片,其是AI硬件的核心组成部分。
本文使用的术语“中间表达”是指为了得到可以在AI芯片上运行的执行模型而生成的中间文件,通过对其编译链接处理可以得到执行模型。
本文使用的术语“执行模型”是指可以在AI芯片上可以运行的可执行文件。
为了便于理解,将本发明实施例的主要发明构思进行简述。
现有技术中,通过AI框架训练得到的AI模型仅能在固定的AI芯片上运行,无法应用于所有的AI芯片,并且现有技术中的AI模型转换工具不能支持所有AI模型的算子,导致无法成功的将AI模型转换为适用于现有的AI芯片的AI模型;需要用户学习相关知识,根据用户选择的AI芯片的参数对AI模型进行转换,这些都给AI模型的应用带来了极大的困难。
发明人针对现有技术中AI模型的应用困难,考虑是否可以设计一种AI模型的编译方法,可以通过对AI模型的编译实现将AI模型应用于市面上任意一种AI芯片,尽量减少AI模型的应用困难。
基于上述思考,发明人创造性的提出,通过获取通过标准AI框架训练得到的AI模型,并解析得到的AI模型;对该AI模型中的算子进行分类,得到待适配的AI芯片支持的第一类算子以及AI芯片不支持的第二类算子;根据第一类算子以及第二类算子生成至少一项中间表达;根据至少一项中间表达生成用于在AI芯片上运行的执行模型。这样做的好处是,可以将通过AI框架训练得到的AI模型可以适配于市面上的任意一种AI芯片,极大地简化了AI模型的应用。
实施例一
图1为本发明实施例一提供的一种AI模型编译方法的流程图,本实施例可适用于将通过AI框架训练得到的AI模型适配于AI芯片情况,该方法可以由AI模型编译装置来执行,该装置可以通过软件和/或硬件的方式实现,并集成在执行本方法的计算机设备中,在本实施例中执行本方法的设备可以是计算机、服务器、平板电脑或手机等。具体的,参考图1,该方法具体包括如下步骤:
S110、获取通过标准AI框架训练得到的AI模型,并解析AI模型。
具体的,通过在应用平台中对标准AI框架进行部署,可以对用户提供的数据集进行训练,并得到可以解决与用户提供的数据集相关的AI模型,通过运行训练得到的AI模型可以实现具体的功能。例如,用户需要实现图像分类的功能,将原始图像数据集进行分类,例如包括人、花或者车辆等类别;将标注好的数据集输入到部署好的AI框架中,例如,将标注好的数据集输入到Caffe框架中;通过在Caffe框架中不断的学习以及计算输入的数据集的特征,并且,随着迭代次数的增加不断地输出AI模型。需要说明的是,随着迭代次数的增加,AI模型的准确率将不断的提高,但也有可能存在过拟合的现象,所以需要训练者对训练次数进行精准的控制,在本实施例中对此不进行赘述。运行训练得到的AI模型,即可实现对输入图像的分类,例如,AI模型可以识别出输入的图像为人、花或者车辆。其中,可以在训练环境中直接运行AI模型,也可以将AI模型适配于AI芯片中,并在AI芯片中运行AI模型。
需要说明的是,为了加快模型的运行速度以及减少硬件成本,现阶段,往往需要将训练得到的AI模型适配在AI芯片中,其中AI芯片为AI硬件的核心。例如,将训练得到的可以完成车牌识别功能的AI模型适配在AI摄像机的AI芯片中,可以快速的实现停车场车辆进出场的车牌识别,加快了识别速度,并且无需在停车场中配置运行AI环境的服务器,减少了硬件成本。
获取通过AI框架训练得到的模型,例如,通过TensorFlow框架训练得到的AIModel-001模型;然后对获取到的AI模型进行解析操作,可选的,AI模型中包括多个算子、多个算子之间的关系以及预先训练的至少一项参数。
S120、对解析得到的AI模型中的算子进行分类,得到待适配的AI芯片支持的第一类算子集以及AI芯片不支持的第二类算子集。
具体的,通常情况下,生产得到的AI芯片不可能支持所有训练得到的AI模型,可能存在部分AI模型中的算子无法支持的情况。因此,需要对训练得到的AI模型进行解析,具体的,对AI模型中的多个段子进行分类,分类得到AI模型待适配的AI芯片的支持的第一类算子集合AI芯片不支持的第二类算子集。其中,第一类算子集中可以包含任意个训练得到的AI模型待适配的AI芯片支持的算子;第二类算子集中可以包含任意个训练得到的AI模型待适配的AI芯片不支持的算子。需要说明的是,本发明实施例中为了叙述方便将AI芯片支持的算子命名为第一类算子集,将AI芯片不支持的算子命名为第二类算子集,其并不是对本发明实施例的限定。
S130、根据第一类算子集以及第二类算子集,生成至少一项中间表达。
具体的,中间表达是指为了得到可以在AI芯片上运行的执行模型而生成的中间文件,通过对其编译链接处理可以得到执行模型。可以根据第一类算子集生成第一类中间表达,根据第二类算子集生成第二类中间表达。示例性的,解析AI模型,若确定AI模型中所有算子均为第一类算子,则中间表达中仅包含第一类中间表达;若确定AI模型中所有算子均为第二类算子,则中间表达中仅包含第二类中间表达;若确定AI模型中既包含第一类算子又包含第二类算子,则中间表达中既包含第一类中间表达又包含第二类中间表达。
可选的,根据第一类算子集生成第一类中间表达,包括:将第一类算子集进行映射转换及优化处理,得到第一类中间表达。
可选的,根据第二类算子集生成第二类中间表达,包括:根据标准AI框架类型以及第二类算子集中的算子名称生成第二类中间表达。
在本发明实施例的一个例子中,通过TensorFlow框架训练得到的AI模型001,通过解析得到其具体包括5个算子,分别为:Conv2D、Relu、DepthwiseConv2dNative、Squeeze及SoftMax;其中,通过解析AI模型001还可以得到每个算子的参数,例如,Conv2D的参数为:data_format NHWC、padding SAME以及filter值等。然后,对解析得到的AI模型001中的算子进行分类,确定AI模型001待适配的AI芯片XYZ支持的第一类算子集以及AI芯片XYZ不支持的第二类算子集,其中,分类结果显示,AI芯片XYZ支持的AI模型001的算子包括Conv2D、Relu、Squeeze及SoftMax;不支持的算子DepthwiseConv2dNative。则,第一类算子集中包括Conv2D、Relu、Squeeze及SoftMax;第二类算子集中包括DepthwiseConv2dNative。需要说明的是,AI芯片XYZ为本实施例中列举的一种AI模型适配的芯片,其可以代表任意一种型号的AI芯片,本发明实施例对此不作限定。
进一步的,将第一类算子集进行映射转换处理,示例性的,可以将第一类算子集中的Conv2D算子映射转换为AI芯片XYZ的应用程序编程接口(Application ProgrammingInterface,API)运行时的_conv(‘conv’)函数;可以将第一类算子集中的Relu算子转换为AI芯片XYZ的API运行时的AttrCvt(‘relu’)函数;可以将第一类算子集中的Squeeze算子转换为AI芯片XYZ的API运行时的squeeze()函数;可以将第一类算子集中的SoftMax算子转换为AI芯片XYZ的API运行时的softmax()函数。
进一步的,将第一类算子集进行映射转换后进行优化处理,得到第一类中间表达。例如,AI模型001中的Conv2D算子转换为中间表达为:%1=nn.conv2d(%0,meta[relay.Constant][4],channels=3,kernel_size=[3,3],data_layout="NHWC",kernel_layout="HWIO"),编译器经过分析发现其可与Relu进行合并优化,优化后的中间表达为:%1=fn(%0){%2=nn.conv2d(%0,meta[relay.Constant][4],channels=3,kernel_size=[3,3],data_layout="NHWC",kernel_layout="HWIO");%3=nn.relu(%2)}。最后转化为直接调用AI芯片XYZ的运行API的DevIR。示例性的DevIR可以为:
function fused_conv2d_relu_XZY_01(float*pPicData){……;r2D=XYZ_Conv2D(pPicData);XYZ_Relu(r2D);……}。其中XYZ_Conv2D()和XYZ_Relu()为AI芯片XYZ运行的API函数。其中,DevIR即为第一类中间表达。
进一步的,针对AI芯片XYZ不支持的第二类算子集根据标准AI框架类型以及第二类算子集中的算子名称生成第二类中间表达。例如,在上述例子中使用的AI框架为TensorFlow,第二类算子集包含的算子名称为DepthwiseConv2dNative,则第二类中间表达FrameworkIR为:operator name=DepthwiseConv2dNative,source framework=tensorflow。
S140、根据至少一项中间表达生成用于在AI芯片上运行的执行模型。
具体的,根据S130中生成的第一类中间表达和/或第二类中间生成可以在AI芯片上运行的执行模型,可选的,可以分别对每项中间表达进行编译处理,得到执行模型。示例性的,可以对第一类中间表达DevIR和第二类中间表达FrameworkIR编译链接成执行模块Module,其中执行模块Module是执行程序的一种组织形式,可供存储或调用执行。需要说明的是,生成可以在AI芯片上运行的执行模型Module后,在该AI芯片上加载执行模型Module,即实现了AI模型在AI芯片上的运行。
需要说明的是,本发明实施例中涉及到的执行模块Module并不受限于单独一个执行模块Module,也可以根据具体需要将生成的执行模块Module拆分成多个执行模块Module或者将执行模块Module存储在内存中。
本实施例的方案通过获取通过标准AI框架训练得到的AI模型,并解析得到的AI模型;对该AI模型中的算子进行分类,得到待适配的AI芯片支持的第一类算子以及AI芯片不支持的第二类算子;根据第一类算子以及第二类算子生成至少一项中间表达;根据至少一项中间表达生成用于在AI芯片上运行的执行模型。解决了AI模型无法适配所有AI芯片的问题,实现了将AI模型适配于不同的AI芯片,简化了AI模型的应用。
实施例二
图2是本发明实施例二中的一种AI模型编译方法的流程图,本实施例对上述实施例进行细化,具体阐述了在根据所间表达生成用于在AI芯片上运行的执行模型之前,还包括:获取AI模型在训练过程中,存储在非易失性存储器(non-volatile memory,NVM)上的snapshot文件,作为第三类中间表达。具体的,参考图2,该方法包括如下步骤:
S210、获取通过标准AI框架训练得到的AI模型,并解析AI模型。
S220、对解析得到的AI模型中的算子进行分类,得到待适配的AI芯片支持的第一类算子集以及AI芯片不支持的第二类算子集。
S230、根据第一类算子集以及第二类算子集,生成至少一项中间表达。
S240、获取AI模型在训练过程中,存储在非易失性存储器NVM上的snapshot文件,并生成第三类中间表达。
具体的,为了提高本发明实施例的实用性,本发明实施例中将高频使用数据存储在NVM设备中,避免从低速存储设备读取数据,从而提升计算速度。示例性的,将AI模型训练过程中的snapshot文件存储在NVM设备中,据此可以生成第三类中间表达,并将第三类中间表达加入至上述中间表达中。示例性的,生成的第三类中间表达StorageIR可以表示为:export=modle snapshot@NVM0,其中,NVM0表示snapshot文件存储在了编号为0的NVM设备中,可以明显的看出第三类中间表达StorageIR主要定义了定义snapshot文件的存储位置。
需要说明的是,本发明实施例并不限定仅将snapshot文件存储在NVM设备中,也可以将AI模型训练过程中的临时变量、中间数据以及中间文件等高频使用的数据存储在NVM设备中。
S250、根据至少一项中间表达生成用于在AI芯片上运行的执行模型。
具体的,可以根据第一类中间表达、第二类中间表达以及第三类中间表达生成用于在AI芯片上运行的执行模型。
需要说明的是,本发明实施例中涉及到的“第一类中间表达”、“第二类中间表达”以及“第三类中间表达”等词并不是对本发明实施例的限制,本发明实施例还可以包含更多类中间表达,例如“第四类中间表达”或者“第N类中间表达”,其中N可以为任意正整数,本发明实施例对此不作限定。相应的,本发明实施例中涉及到的AI模型编译方法同样支持多类中间表达在异构计算设备和异构存储设备中执行。
本实施例的方案,在上述实施例的基础上,通过获取AI模型在训练过程中,存储在非易失性存储器NVM上的snapshot文件,生成第三类中间表达,并将第三类中间表达加入至中间表达中;最后通过编译中间表达生成了可以在AI芯片上运行的执行模型。实现了将AI模型适配于不同的AI芯片,简化了AI模型的应用,并且提升了计算速度。
应用场景
为了更好地理解本发明实施例,图3列举了本发明实施例的一种具体应用场景,在运行环境A中,通过在TensorFlow框架上训练得到AI模型AIModel-001,该模型运行在NVIDIA图形处理器(Graphics Processing Unit,GPU)硬件设备上。当AI模型AIModel-001运行时,AI模型AIModel-001的算子调用NVIDIA GPU的运行时运行时(运行时)的通用并行计算架构(Compute Unified Device Architecture,CUDA)API,完成神经网络的执行过程。当同样的模型AIModel-001迁移到运行环境B时,由于运行环境B中的AI硬件为XYZ AIChips以及与硬件配套的runtime:XYZ API runtime,为了能够让AIModel-001可以在新硬件上运行,则必须对AIModel-001进行转化工作以使AIModel-001的算子调用XYZ AI Chips的runtime接口XYZ API,此部分工作由运行环境B中的模型转换模块ModelConvert完成。
为了更好地理解本发明实施例,图4列举了本发明任意实施例所述的AI模型编译方法在异构计算设备中的执行流程图,其具体包括如下步骤:
S410、解析AI模型。
S420、AI模型算子分类。
S431、根据AI模型待适配的AI芯片支持的算子生成第一类中间表达。
S432、根据AI模型待适配的AI芯片不支持的算子生成第二类中间表达。
S440、生成执行模型Module。
S450、在待适配的AI芯片上执行AI模型。
需要说明的是,本发明实施例中涉及到的方法不但支持异构计算设备中执行,还可以支持异构存储设备,例如图5列举的本发明任意实施例所述的AI模型编译方法在异构存储设备中的执行流程图,其具体包括如下步骤:
S510、解析AI模型。
S520、AI模型算子分类。
S531、根据AI模型待适配的AI芯片支持的算子生成第一类中间表达。
S532、根据AI模型待适配的AI芯片不支持的算子生成第二类中间表达。
S533、获取AI模型在训练过程中,存储在NVM上的snapshot文件,并生成第三类中间表达。
S540、生成执行模型Module。
S550、在待适配的AI芯片上执行AI模型。
在本应用场景中,通过解析AI模型,对AI模型的算子进行分类,然后根据AI模型待适配的AI芯片不支持的算子生成第一类中间表达、根据AI模型待适配的AI芯片支持的算子生成第二类中间表达以及根据AI模型待适配的AI芯片支持的算子生成第二类中间表达;接着通过中间表达生成了执行模型Module;最后在待适配的AI芯片上执行AI模型。实现了将AI模型适配于不同的AI芯片,简化了AI模型的应用并且提升了计算速度。
实施例三
图6是本发明实施例三涉及到的一种AI模型编译装置的结构示意图,该装置可以通过软件和/或硬件的方式实现,并且可以在集成本发明任意实施例的方法的计算机设备中执行,该装置具体包括AI模型解析模块610、算子分类模块620、中间表达生成模块630和执行模型生成模块640。
其中,AI模型解析模块610,用于获取通过标准AI框架训练得到的AI模型,并解析AI模型。
算子分类模块620,用于对解析得到的AI模型中的算子进行分类,得到待适配的AI芯片支持的第一类算子集以及AI芯片不支持的第二类算子集。
中间表达生成模块630,用于根据第一类算子集以及第二类算子集,生成至少一项中间表达。
执行模型生成模块640,用于根据至少一项中间表达生成用于在AI芯片上运行的执行模型。
本实施例的方案通过AI模型解析模块对通过标准AI框架训练得到的AI模型进行解析,然后通过算子分类模块对解析得到的AI模型中的算子进行分类,得到第一类算子集合第二类算子集;接着通过中间表达生成模块根据第一类算子集以及第二类算子集,生成至少一项中间表达;最后通过执行模型生成模块生成了用于在AI芯片上运行的执行模型。实现了将AI模型适配于不同的AI芯片,简化了AI模型的应用。
可选的,中间表达生成模块630包括第一类中间表达生成单元和第二类中间表达生成单元,其中,第一类中间表达生成单元用于根据第一类算子集生成第一类中间表达,具体的,第一类中间表达将第一类算子集进行映射转换及优化处理,得到第一类中间表达;第二类中间表达生成单元用于根据第二类算子集生成第二类中间表达,具体的,第二类中间表达生成单元用于根据标准AI框架类型以及第二类算子集中的算子名称生成第二类中间表达。
可选的,中间表达生成模块630还包括第三类中间表达生成单元,用于在根据中间表达生成用于在AI芯片上运行的执行模型之前,获取AI模型在训练过程中,存储在非易失性存储器NVM上的snapshot文件,并生成第三类中间表达。
可选的,执行模型生成模块640包括中间表达编译单元,用于分别对每项中间表达进行编译处理,得到执行模型。
本发明实施例所提供的AI模型编译装置可执行本发明任意实施例所提供的AI模型编译方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的AI模型编译方法。
实施例四
图7为本发明实施例四提供的一种计算机设备的结构示意图,如图7所示,该计算机设备包括处理器70、存储器71、输入装置72和输出装置73;计算机设备中处理器70的数量可以是一个或多个,图7中以一个处理器70为例;计算机设备中的处理器70、存储器71、输入装置72和输出装置73可以通过总线或其他方式连接,图7中以通过总线连接为例。
存储器71作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的AI模型编译方法对应的程序指令/模块(例如,AI模型编译装置中的AI模型解析模块610、算子分类模块620、中间表达生成模块630和执行模型生成模块640)。处理器70通过运行存储在存储器71中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的AI模型编译方法。
存储器71可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器71可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器71可进一步包括相对于处理器70远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置72可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置73可包括显示屏等显示设备。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种AI模型编译方法,该方法包括:
获取通过标准AI框架训练得到的AI模型,并解析AI模型;
对解析得到的AI模型中的算子进行分类,得到待适配的AI芯片支持的第一类算子集以及AI芯片不支持的第二类算子集;
根据第一类算子集以及第二类算子集,生成至少一项中间表达;
根据至少一项中间表达生成用于在AI芯片上运行的执行模型。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的AI模型编译方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述AI模型编译装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (15)
1.一种人工智能AI模型编译方法,其特征在于,包括:
获取通过标准AI框架训练得到的AI模型,并解析所述AI模型;
对解析得到的所述AI模型中的算子进行分类,得到待适配的AI芯片支持的第一类算子集以及所述AI芯片不支持的第二类算子集;
根据所述第一类算子集以及所述第二类算子集,生成至少一项中间表达;
根据所述至少一项中间表达生成用于在所述AI芯片上运行的执行模型。
2.根据权利要求1所述的方法,其特征在于,所述AI模型包括多个算子、所述多个算子之间的关系以及预先训练的至少一项参数。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一类算子集以及所述第二类算子集,生成至少一项中间表达,包括:
根据所述第一类算子集生成第一类中间表达;
根据所述第二类算子集生成第二类中间表达。
4.根据权利要求3所述的方法,其特征在于,在根据所述中间表达生成用于在所述AI芯片上运行的执行模型之前,还包括:
获取所述AI模型在训练过程中,存储在非易失性存储器NVM上的snapshot文件,并生成第三类中间表达;
将所述第三类中间表达加入至所述中间表达中。
5.根据权利要求3所述的方法,其特征在于,所述根据所述第一类算子集生成第一类中间表达,包括:
将所述第一类算子集进行映射转换及优化处理,得到所述第一类中间表达。
6.根据权利要求3所述的方法,其特征在于,根据所述第二类算子集生成第二类中间表达,包括:
根据标准AI框架类型以及所述第二类算子集中的算子名称生成第二类中间表达。
7.根据权利要求1所述的方法,其特征在于,所述根据所述中间表达生成用于在所述AI芯片运行的执行模型,包括:
分别对每项所述中间表达进行编译处理,得到所述执行模型。
8.一种计算机设备,其特征在于,所述设备包括处理器和存储器,所述存储器用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
获取通过标准AI框架训练得到的AI模型,并解析所述AI模型;
对解析得到的所述AI模型中的算子进行分类,得到待适配的AI芯片支持的第一类算子集以及所述AI芯片不支持的第二类算子集;
根据所述第一类算子集以及所述第二类算子集,生成至少一项中间表达;
根据所述至少一项中间表达生成用于在所述AI芯片上运行的执行模型。
9.根据权利要求8所述的计算机设备,其特征在于,所述处理器获取通过标准AI框架训练得到的AI模型包括:多个算子、所述多个算子之间的关系以及预先训练的至少一项参数。
10.根据权利要求8所述的计算机设备,其特征在于,所述处理器是设置为通过以下方式根据所述第一类算子集以及所述第二类算子集,生成至少一项中间表达:
根据所述第一类算子集生成第一类中间表达;
根据所述第二类算子集生成第二类中间表达。
11.根据权利要求10所述的计算机设备,其特征在于,所述处理器在根据所述中间表达生成用于在所述AI芯片上运行的执行模型之前,还包括:
获取所述AI模型在训练过程中,存储在非易失性存储器上的snapshot文件,作为第三类中间表达;
将所述第三类中间表达加入至所述中间表达中。
12.根据权利要求10所述的计算机设备,其特征在于,所述处理器是设置为以下方式生成第一类中间表达:
将所述第一类算子集进行映射转换及优化处理,得到所述第一类中间表达。
13.根据权利要求10所述的计算机设备,其特征在于,所述处理器是设置为以下方式生成第二类中间表达:
根据标准AI框架类型以及所述第二类算子集中的算子名称生成第二类中间表达。
14.根据权利要求8所述的计算机设备,其特征在于,所述处理器是通过以下方式根据所述中间表达生成用于在所述AI芯片运行的执行模型:
分别对每项所述中间表达进行编译处理,得到所述执行模型。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的AI模型编译方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911040449.XA CN110750298B (zh) | 2019-10-29 | 2019-10-29 | 一种ai模型编译方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911040449.XA CN110750298B (zh) | 2019-10-29 | 2019-10-29 | 一种ai模型编译方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110750298A true CN110750298A (zh) | 2020-02-04 |
CN110750298B CN110750298B (zh) | 2021-03-09 |
Family
ID=69281009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911040449.XA Active CN110750298B (zh) | 2019-10-29 | 2019-10-29 | 一种ai模型编译方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110750298B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112230926A (zh) * | 2020-09-18 | 2021-01-15 | 苏州浪潮智能科技有限公司 | 一种复杂模型的优化方法、装置、设备及可读介质 |
CN115952758A (zh) * | 2023-03-10 | 2023-04-11 | 成都登临科技有限公司 | 芯片验证方法、装置、电子设备及存储介质 |
TWI810017B (zh) * | 2021-10-11 | 2023-07-21 | 美商萬國商業機器公司 | 經由程式簡化之訓練資料增強 |
WO2024060916A1 (zh) * | 2022-09-22 | 2024-03-28 | 华为技术有限公司 | 一种算子运行方式的配置方法、装置及相关系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150363762A1 (en) * | 2014-06-14 | 2015-12-17 | Mastercard International Incorporated | Apparatus, method, and computer program product for mobile open payment network |
CN105828041A (zh) * | 2016-04-11 | 2016-08-03 | 上海大学 | 一种支持并行预处理的视频采集系统 |
US20180203681A1 (en) * | 2017-01-17 | 2018-07-19 | Oracle International Corporation | Private computer network installations |
US20180330277A1 (en) * | 2017-05-10 | 2018-11-15 | Petuum Inc. | System and Methods for Distributed Machine Learning with Multiple Data Sources, Multiple Programming Languages or Frameworks, and Multiple Devices or Infrastructures |
CN109542837A (zh) * | 2018-11-30 | 2019-03-29 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN109828786A (zh) * | 2017-11-23 | 2019-05-31 | 中标软件有限公司 | 一种基于代码级支持sw_64架构的自动化工具 |
-
2019
- 2019-10-29 CN CN201911040449.XA patent/CN110750298B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150363762A1 (en) * | 2014-06-14 | 2015-12-17 | Mastercard International Incorporated | Apparatus, method, and computer program product for mobile open payment network |
CN105828041A (zh) * | 2016-04-11 | 2016-08-03 | 上海大学 | 一种支持并行预处理的视频采集系统 |
US20180203681A1 (en) * | 2017-01-17 | 2018-07-19 | Oracle International Corporation | Private computer network installations |
US20180330277A1 (en) * | 2017-05-10 | 2018-11-15 | Petuum Inc. | System and Methods for Distributed Machine Learning with Multiple Data Sources, Multiple Programming Languages or Frameworks, and Multiple Devices or Infrastructures |
CN109828786A (zh) * | 2017-11-23 | 2019-05-31 | 中标软件有限公司 | 一种基于代码级支持sw_64架构的自动化工具 |
CN109542837A (zh) * | 2018-11-30 | 2019-03-29 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112230926A (zh) * | 2020-09-18 | 2021-01-15 | 苏州浪潮智能科技有限公司 | 一种复杂模型的优化方法、装置、设备及可读介质 |
CN112230926B (zh) * | 2020-09-18 | 2022-07-26 | 苏州浪潮智能科技有限公司 | 一种复杂模型的优化方法、装置、设备及可读介质 |
TWI810017B (zh) * | 2021-10-11 | 2023-07-21 | 美商萬國商業機器公司 | 經由程式簡化之訓練資料增強 |
US11947940B2 (en) | 2021-10-11 | 2024-04-02 | International Business Machines Corporation | Training data augmentation via program simplification |
WO2024060916A1 (zh) * | 2022-09-22 | 2024-03-28 | 华为技术有限公司 | 一种算子运行方式的配置方法、装置及相关系统 |
CN115952758A (zh) * | 2023-03-10 | 2023-04-11 | 成都登临科技有限公司 | 芯片验证方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110750298B (zh) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110750298B (zh) | 一种ai模型编译方法、设备及存储介质 | |
EP3843013A1 (en) | Systems and methods for quantizing a neural network | |
US20230008597A1 (en) | Neural network model processing method and related device | |
CN111783937A (zh) | 一种神经网络构建方法以及系统 | |
CN116127899B (zh) | 芯片设计系统、方法、电子设备和存储介质 | |
CN111104120A (zh) | 神经网络编译方法、系统及相应异构计算平台 | |
CN114781635B (zh) | 模型部署方法、装置、设备和介质 | |
CN114138274A (zh) | 一种深度学习编译器的高层中间表示转换方法及相关装置 | |
CN113379070A (zh) | 一种深度学习框架转换方法、系统、存储介质及设备 | |
CN115423101A (zh) | 基于编译器的张量数据计算推理方法、装置及存储介质 | |
CN116860985A (zh) | 一种基于知识图谱的自然语言交互软件框架及其构建方法 | |
CN116560666B (zh) | 基于多层级代码生成的ai前端统一计算方法、装置及介质 | |
CN116204847A (zh) | 一种计算图优化方法、装置及设备 | |
CN113626035B (zh) | 基于tvm面向risc-v设备的神经网络编译方法 | |
CN113377419B (zh) | 一种业务处理方法、装置、可读存储介质及电子设备 | |
CN112966825B (zh) | 基于python实现的多模型融合并行推理方法、装置及系统 | |
CN112633516B (zh) | 性能预测和机器学习编译优化方法及装置 | |
CN110895460A (zh) | 基于Jenkins的机器人系统集成方法、装置及终端设备 | |
CN114898446A (zh) | 基于人工智能的人脸识别方法、装置、设备及存储介质 | |
CN115525436A (zh) | 模型部署、运行方法、装置、离线分析工具和电子设备 | |
CN115080386A (zh) | 基于自动驾驶功能要求的场景有效性分析方法与设备 | |
WO2021068529A1 (zh) | 图像识别方法、装置、计算机设备及存储介质 | |
CN116700703B (zh) | 一种业务处理方法、装置、设备及存储介质 | |
CN111208980B (zh) | 一种数据分析处理方法和系统 | |
EP4242837A1 (en) | Data processing apparatus and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |