CN116126342A - 多硬件平台的模型编译方法及装置 - Google Patents
多硬件平台的模型编译方法及装置 Download PDFInfo
- Publication number
- CN116126342A CN116126342A CN202310109556.3A CN202310109556A CN116126342A CN 116126342 A CN116126342 A CN 116126342A CN 202310109556 A CN202310109556 A CN 202310109556A CN 116126342 A CN116126342 A CN 116126342A
- Authority
- CN
- China
- Prior art keywords
- model
- compiled
- target
- hardware platform
- compiling
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 21
- 230000008569 process Effects 0.000 claims description 38
- 238000013139 quantization Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 15
- 238000010586 diagram Methods 0.000 claims description 12
- 230000004927 fusion Effects 0.000 claims description 10
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 230000006978 adaptation Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000005538 encapsulation Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000003062 neural network model Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 235000017166 Bambusa arundinacea Nutrition 0.000 description 1
- 235000017491 Bambusa tulda Nutrition 0.000 description 1
- 241001330002 Bambuseae Species 0.000 description 1
- 235000015334 Phyllostachys viridis Nutrition 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 239000011425 bamboo Substances 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- 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
-
- 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/73—Program documentation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本申请公开了一种多硬件平台的模型编译方法及装置。其中,该方法包括:获取配置信息,配置信息中至少包括:待编译模型、待编译的硬件平台类型;从多个类型硬件平台中选择与待编译的硬件平台类型相匹配的目标类型硬件平台,并确定与目标类型硬件平台相匹配的目标编译流程,其中,多个类型硬件平台至少包括:人工智能处理器和嵌入式视觉处理器;按照目标编译流程将待编译模型编译成目标文件,目标文件用于在目标类型硬件平台上运行。本申请解决了不同硬件平台编译方式不同,导致编译效率低的技术问题。
Description
技术领域
本申请涉及模型编译领域,具体而言,涉及一种多硬件平台的模型编译方法及装置。
背景技术
AI(Artificial Intelligence)已经越来越广泛地应用于自动驾驶、辅助驾驶、车联网、智能车机系统等领域,大量的AI芯片企业也如雨后春笋般产生。但是AI芯片公司不仅要提供性能超群的硬件设备,还要发布基于这些硬件深度定制的开发包,其中编译工具链就是开发包的重要组成部分。编译工具链的主要功能是将常见的深度学习模型(例如:onnx、tensorflow、tflite、caffe)转换成能够在硬件上执行的文件,并且在此期间会执行模型优化、模型量化等操作。由于目前业内并没有统一的标准,所以各家芯片厂商在工具链的实现方式、使用方式上也各有差异,这种差异就导致用户在实际使用时学习成本、开发成本极高。
以在AI计算平台上集成ARM周易AIPU(NPU)和Synopsys EVP(Embedded VisionProcessor)两种硬件平台为例,这两者硬件平台的编译工具链在使用方式上大相径庭,开发难度成倍增加。
发明内容
本申请实施例提供了一种多硬件平台的模型编译方法及装置,以至少解决不同硬件平台编译方式不同,导致编译效率低的技术问题。
根据本申请实施例的一个方面,提供了一种多硬件平台的模型编译方法,包括:获取配置信息,配置信息中至少包括:待编译模型、待编译的硬件平台类型;从多个类型硬件平台中选择与待编译的硬件平台类型相匹配的目标类型硬件平台,并确定与目标类型硬件平台相匹配的目标编译流程,其中,多个类型硬件平台至少包括:人工智能处理器和嵌入式视觉处理器;按照目标编译流程将待编译模型编译成目标文件,目标文件用于在目标类型硬件平台上运行。
可选地,按照目标编译流程将待编译模型编译成目标文件,包括:在目标编译流程为第一编译流程的情况下,按照第一编译流程生成目标类型硬件平台可执行的第一文件;在目标编译流程为第二编译流程的情况下,按照第二编译流程生成目标类型硬件平台可执行的第二文件;将第一文件或第二文件进行封装,得到目标文件。
可选地,按照第一编译流程生成目标类型硬件平台可执行的第一文件,包括:读取配置信息中的待编译模型;依次对待编译模型进行调整和量化,生成第一文件。
可选地,按照第二编译流程生成目标类型硬件平台可执行的第二文件,包括:读取配置信息中的待编译模型,并确定待编译模型的格式;在待编译模型的格式不为目标格式的情况下,将待编译模型的格式转化为目标格式的待编译模型,并依次对目标格式的待编译模型进行调整和量化,生成第二文件。
可选地,通过以下方式对待编译模型进行调整,包括:删除待编译模型中不符合预设条件的层;将与目标类型硬件平台相匹配类型的融合算子进行算子融合,以完成待编译模型的调整。
可选地,通过以下方式对待编译模型进行量化,包括:从配置信息中获取标定数据集和预设量化指标;采用标定数据集按照预设量化指标完成待编译模型的量化,其中,预设量化指标基于目标类型硬件平台的类型确定。
可选地,将第一文件或第二文件进行封装,得到目标文件,包括:从配置信息中提取目标类型硬件平台的类型信息和待编译模型的拓扑图信息,其中,拓扑图信息中包括:子图信息和整图拓扑信息,子图信息用于指示待编译模型中的多个部分与目标类型硬件平台中多个硬件的匹配关系,整图拓扑信息用于指示多个子图间的连接关系;基于目标类型硬件平台的类型信息和拓扑图信息完成第一文件或第二文件的封装,得到封装文件;对封装文件进行加密处理,得到目标文件。
根据本申请实施例的另一方面,还提供了一种多硬件平台的模型编译装置,包括:获取模块,用于获取配置信息,配置信息中至少包括:待编译模型、待编译的硬件平台类型;确定模块,用于从多个类型硬件平台中选择与待编译的硬件平台类型相匹配的目标类型硬件平台,并确定与目标类型硬件平台相匹配的目标编译流程,其中,多个类型硬件平台至少包括:人工智能处理器和嵌入式视觉处理器;编译模块,用于按照目标编译流程将待编译模型编译成目标文件,目标文件用于在目标类型硬件平台上运行。
根据本申请实施例的另一方面,还提供了一种非易失性存储介质,非易失性存储介质中存储有程序,其中,在程序运行时控制非易失性存储介质所在设备执行上述的多硬件平台的模型编译方法。
根据本申请实施例的另一方面,还提供了一种计算机设备,包括:存储器和处理器,处理器用于运行存储在存储器中的程序,其中,程序运行时执行上述的多硬件平台的模型编译方法。
在本申请实施例中,采用获取配置信息,配置信息中至少包括:待编译模型、待编译的硬件平台类型;从多个类型硬件平台中选择与待编译的硬件平台类型相匹配的目标类型硬件平台,并确定与目标类型硬件平台相匹配的目标编译流程,其中,多个类型硬件平台至少包括:人工智能处理器和嵌入式视觉处理器;按照目标编译流程将待编译模型编译成目标文件,目标文件用于在目标类型硬件平台上运行的方式,通过根据配置信息中的待编译的硬件平台类型,从多个类型硬件平台中选择与待编译的硬件平台类型相匹配的目标类型硬件平台,并确定与目标类型硬件平台相匹配的目标编译流程将待编译模型编译成目标文件,达到了对不同硬件平台选择不同的适配硬件平台的编译方法的目的,从而实现了提高模型编译效率的技术效果,进而解决了不同硬件平台编译方式不同,导致编译效率低的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种用于多硬件平台的模型编译方法的计算机终端(或移动设备)的硬件结构框图;
图2是根据本申请实施例的一种多硬件平台的模型编译方法的流程图;
图3是根据本申请实施例的一种可选的多个类型硬件平台组成的计算单元的结构示意图;
图4是根据本申请实施例的另一种可选的多硬件平台的模型编译方法的流程图;
图5是根据本申请实施例的一种多硬件平台的模型编译装置结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例,提供了一种多硬件平台的模型编译方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现多硬件平台的模型编译方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的多硬件平台的模型编译方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的多硬件平台的模型编译方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
在上述运行环境下,本申请实施例提供了一种多硬件平台的模型编译方法,如图2所示,该方法包括如下步骤:
步骤S202,获取配置信息,配置信息中至少包括:待编译模型、待编译的硬件平台类型;
步骤S204,从多个类型硬件平台中选择与待编译的硬件平台类型相匹配的目标类型硬件平台,并确定与目标类型硬件平台相匹配的目标编译流程,其中,多个类型硬件平台至少包括:人工智能处理器和嵌入式视觉处理器;
步骤S206,按照目标编译流程将待编译模型编译成目标文件,目标文件用于在目标类型硬件平台上运行。
通过上述步骤,采用获取配置信息,配置信息中至少包括:待编译模型、待编译的硬件平台类型;从多个类型硬件平台中选择与待编译的硬件平台类型相匹配的目标类型硬件平台,并确定与目标类型硬件平台相匹配的目标编译流程,其中,多个类型硬件平台至少包括:人工智能处理器和嵌入式视觉处理器;按照目标编译流程将待编译模型编译成目标文件,目标文件用于在目标类型硬件平台上运行的方式,通过根据配置信息中的待编译的硬件平台类型,从多个类型硬件平台中选择与待编译的硬件平台类型相匹配的目标类型硬件平台,并确定与目标类型硬件平台相匹配的目标编译流程将待编译模型编译成目标文件,达到了对不同硬件平台选择不同的适配硬件平台的编译方法的目的,从而实现了提高模型编译效率的技术效果,进而解决了不同硬件平台编译方式不同,导致编译效率低的技术问题。
上述步骤的执行主体可以为集成了多个类型硬件平台的终端设备,包括用户登录系统,在用户系统中,编译流程进行管理。图3示出了一种可选的多个类型硬件平台组成的计算单元,如图3所示,框图左端为嵌入式视觉处理器,框图右端为人工智能处理器,一个可选的方式中,嵌入式视觉处理器可以选择synopsys EVP(synopsys Embedded VisionProcessor,一种嵌入式视觉处理器),人工智能处理器可以选择Arm周易AIPU(一种人工智能处理器),左端的嵌入式视觉处理器包括:vision CPU(一种视觉处理器),其中,包含Core1、Core2等多个核心单元,核心单元中至少包括scalar(标量单元)和DSP(数字信号处理单元);CNN ENGINE(一种神经网络引擎)引擎中至少包括:convolution(卷积运算单元),另外,人工智能处理器中包括:scalar processing unit(标量处理单元)、TensorExecution Cell(张量处理单元)。
以图3示出的计算单元为例,如果采用相关技术中的技术方案,需要使用不同的编译工具链分别针对两种类型的硬件平台进行编译,而不同编译工具链的使用方式有很大的不同,大大降低了编译效率。
下面通过实施例具体说明步骤S202至步骤S206。
在步骤S206中,按照目标编译流程将待编译模型编译成目标文件,一种可选的方式是根据硬件平台的类型,确定与硬件平台类型相匹配的目标编译流程,其中,目标编译流程包括多个编译流程,分别对应不同的硬件平台,以不同类型的硬件平台有两个为例,在目标编译流程为第一编译流程的情况下,按照第一编译流程生成目标类型硬件平台可执行的第一文件;在目标编译流程为第二编译流程的情况下,按照第二编译流程生成目标类型硬件平台可执行的第二文件;将第一文件或第二文件进行封装,得到目标文件。
需要进行说明的是,第一编译流程可以是与人工智能处理器,例如:Arm周易AIPU适配的编译流程,第二编译流程可以是与嵌入式视觉处理器,例如:synopsys EVP适配的编译流程,第一文件可以是人工智能处理器可以执行的文件,第二文件可以是嵌入式视觉处理器可以执行的文件。
在一种可选的方式中,按照第一编译流程生成目标类型硬件平台可执行的第一文件的具体流程如下:读取配置信息中的待编译模型;依次对待编译模型进行调整和量化,生成第一文件。
在本申请的一些实施例中,配置信息中至少包括:待编译的模型类型,例如:caffe、tensorflow、onnx和tflite等格式的模型,模型适配的目标硬件平台类型,例如:人工智能处理器和嵌入式视觉处理器。
在一种可选的方式中,按照第二编译流程生成目标类型硬件平台可执行的第二文件的具体流程如下:读取配置信息中的待编译模型,并确定待编译模型的格式;在待编译模型的格式不为目标格式的情况下,将待编译模型的格式转化为目标格式的待编译模型,并依次对目标格式的待编译模型进行调整和量化,生成第二文件。
以上述嵌入式视觉处理器Synopsys EVP为例,此类型的硬件平台要求直接输入的模型类型为caffe模型,在待编译模型的类型不属于caffe模型的情况下,可以通过模型转化工具软件将待编译模型转化为caffe模型。
在本申请的一些实施例中,通过以下方式对待编译模型进行调整,具体包括:删除待编译模型中不符合预设条件的层;将与目标类型硬件平台相匹配类型的融合算子进行算子融合,以完成待编译模型的调整。
在实际的应用场景中,删除待编译模型中不符合预设条件的层是为了对待编译模型进行优化,以达到精简模型的目的,不符合预设条件的层至少包括:对数据集进行预处理的层等不必要的层。
在本申请的一些实施例中,通过以下方式对待编译模型进行量化,包括:从配置信息中获取标定数据集和预设量化指标;采用标定数据集按照预设量化指标完成待编译模型的量化,其中,预设量化指标基于目标类型硬件平台的类型确定,例如:不同类型的硬件平台适配的比特值不同等。
在得到第一文件或第二文件之后,将第一文件或第二文件进行封装,得到目标文件,包括:从配置信息中提取目标类型硬件平台的类型信息和待编译模型的拓扑图信息,其中,拓扑图信息中包括:子图信息和整图拓扑信息,子图信息用于指示待编译模型中的多个部分与目标类型硬件平台中多个硬件的匹配关系,整图拓扑信息用于指示多个子图间的连接关系;基于目标类型硬件平台的类型信息和拓扑图信息完成第一文件或第二文件的封装,得到封装文件;对封装文件进行加密处理,得到目标文件。
需要进行说明的是,子图信息用于指示待编译模型中的多个部分与目标类型硬件平台中多个硬件的匹配关系(待编译模型中的各个部分分别由硬件平台中的与各个部分匹配的硬件单元执行)。整图拓扑信息用于表示待编译模型中每个部分的连接关系。
需要说明的是,本实施例还提供了一种可选的实施方式,如图4所示,下面对该实施方式进行详细说明。
在本实施方式中,可以预先编写配置文件,配置文件中包含多种配置信息,例如:待编译模型指定运行的硬件平台类型;模型类型,例如:caffe、tensorflow、onnx、tflite等;用于量化模型的标定数据集。
在实际的应用场景中可以将上述编译步骤构建为一条编译工具链,通过执行编译工具链程序完成待编译模型的编译。
本实施方式的处理流程如下:
步骤1:编写配置文件,指定基本的配置信息,配置信息如下所示:
1)设备类型:指定待编译模型运行的待编译的硬件平台类型;
2)模型类型:指定第三方模型的格式,例如:caffe、tensorflow、onnx、tflite等格式的模型。
步骤2:编译工具链程序读取配置并解析,按照设备类型区分,分别为aipu(人工智能处理器,对应Arm周易AIPU)和ev(嵌入式视觉处理器,对应Synopsys EVP)。如果设备类型是aipu跳转到步骤3,如果设备类型是ev跳转到步骤4。
步骤3:编译工具链程序按照配置中指定的输入模型信息读取模型;执行模型优化选项,例如:删除一些不必要的层,根据Arm周易AIPU支持的融合算子类型进行算子融合;根据配置中指定的量化选项和标定数据集(Dataset),例如:images(全景图像库)对模型进行量化;生成AIPU可以执行的文件。跳转到步骤7。
步骤4:编译工具链程序按照配置中指定的输入模型信息读取模型;按照模型的类型加以区分,因为Synopsys EVP要求直接的输入模型类型必须为caffe model(一种神经网络模型),如果不是caffe model跳转到步骤5,如果是caffe model跳转到步骤6。
步骤5:使用模型转换工具将其他类型的模型(tensorflow、tflite、onnx,神经网络模型类型)转换成caffe model。
步骤6:执行模型优化,例如:删除一些不必要的层,根据Synopsys EVP支持的融合算子类型进行算子融合;根据配置中指定的量化选项和标定数据集对模型进行量化;生成EVP可以执行的文件。跳转到步骤7。
步骤7:为了将模型转换成Engine(神经网络模型引擎)能够识别和认可的文件类型,此步骤需要将经过上述步骤中转换得到的二进制文件进行封装,封装文件中需要加入设备类型信息、子图信息,以及整图拓扑信息,以便Engine执行时能够据此进行推理。
步骤8:采用文件加密的方式对模型进行保护。
图5是根据本申请实施例的一种多硬件平台的模型编译装置,包括:获取模块50,用于获取配置信息,配置信息中至少包括:待编译模型、待编译的硬件平台类型;确定模块52,用于从多个类型硬件平台中选择与待编译的硬件平台类型相匹配的目标类型硬件平台,并确定与目标类型硬件平台相匹配的目标编译流程,其中,多个类型硬件平台至少包括:人工智能处理器和嵌入式视觉处理器;编译模块54,用于按照目标编译流程将待编译模型编译成目标文件,目标文件用于在目标类型硬件平台上运行。
通过上述装置,采用获取配置信息,配置信息中至少包括:待编译模型、待编译的硬件平台类型;从多个类型硬件平台中选择与待编译的硬件平台类型相匹配的目标类型硬件平台,并确定与目标类型硬件平台相匹配的目标编译流程,其中,多个类型硬件平台至少包括:人工智能处理器和嵌入式视觉处理器;按照目标编译流程将待编译模型编译成目标文件,目标文件用于在目标类型硬件平台上运行的方式,通过根据配置信息中的待编译的硬件平台类型,从多个类型硬件平台中选择与待编译的硬件平台类型相匹配的目标类型硬件平台,并确定与目标类型硬件平台相匹配的目标编译流程将待编译模型编译成目标文件,达到了对不同硬件平台选择不同的适配硬件平台的编译方法的目的,从而实现了提高模型编译效率的技术效果,进而解决了不同硬件平台编译方式不同,导致编译效率低的技术问题。
根据本申请实施例的另一方面,还提供了一种非易失性存储介质,非易失性存储介质中存储有程序,其中,在程序运行时控制非易失性存储介质所在设备执行上述的多硬件平台的模型编译方法。
根据本申请实施例的再一方面,还提供了一种计算机设备,包括:存储器和处理器,处理器用于运行存储在存储器中的程序,其中,程序运行时执行上述的多硬件平台的模型编译方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种多硬件平台的模型编译方法,其特征在于,包括:
获取配置信息,所述配置信息中至少包括:待编译模型、待编译的硬件平台类型;
从多个类型硬件平台中选择与所述待编译的硬件平台类型相匹配的目标类型硬件平台,并确定与所述目标类型硬件平台相匹配的目标编译流程,其中,所述多个类型硬件平台至少包括:人工智能处理器和嵌入式视觉处理器;
按照所述目标编译流程将所述待编译模型编译成目标文件,所述目标文件用于在所述目标类型硬件平台上运行。
2.根据权利要求1所述的方法,其特征在于,按照所述目标编译流程将所述待编译模型编译成目标文件,包括:
在所述目标编译流程为第一编译流程的情况下,按照所述第一编译流程生成所述目标类型硬件平台可执行的第一文件;
在所述目标编译流程为第二编译流程的情况下,按照所述第二编译流程生成所述目标类型硬件平台可执行的第二文件;
将所述第一文件或所述第二文件进行封装,得到所述目标文件。
3.根据权利要求2所述的方法,其特征在于,按照所述第一编译流程生成所述目标类型硬件平台可执行的第一文件,包括:
读取所述配置信息中的所述待编译模型;
依次对所述待编译模型进行调整和量化,生成所述第一文件。
4.根据权利要求3所述的方法,其特征在于,按照所述第二编译流程生成所述目标类型硬件平台可执行的第二文件,包括:
读取所述配置信息中的所述待编译模型,并确定所述待编译模型的格式;
在所述待编译模型的格式不为目标格式的情况下,将所述待编译模型的格式转化为所述目标格式的待编译模型,并依次对所述目标格式的待编译模型进行调整和量化,生成所述第二文件。
5.根据权利要求3所述的方法,其特征在于,通过以下方式对所述待编译模型进行调整,包括:
删除所述待编译模型中不符合预设条件的层;
将与所述目标类型硬件平台相匹配类型的融合算子进行算子融合,以完成所述待编译模型的调整。
6.根据权利要求3所述的方法,其特征在于,通过以下方式对所述待编译模型进行量化,包括:
从所述配置信息中获取标定数据集和预设量化指标;
采用所述标定数据集按照所述预设量化指标完成所述待编译模型的量化,其中,所述预设量化指标基于所述目标类型硬件平台的类型确定。
7.根据权利要求2所述的方法,其特征在于,将所述第一文件或所述第二文件进行封装,得到所述目标文件,包括:
从所述配置信息中提取所述目标类型硬件平台的类型信息和所述待编译模型的拓扑图信息,其中,所述拓扑图信息中包括:子图信息和整图拓扑信息,所述子图信息用于指示所述待编译模型中的多个部分与所述目标类型硬件平台中多个硬件的匹配关系,所述整图拓扑信息用于指示多个子图间的连接关系;
基于所述目标类型硬件平台的类型信息和所述拓扑图信息完成所述第一文件或所述第二文件的封装,得到封装文件;
对所述封装文件进行加密处理,得到所述目标文件。
8.一种多硬件平台的模型编译装置,其特征在于,包括:
获取模块,用于获取配置信息,所述配置信息中至少包括:待编译模型、待编译的硬件平台类型;
确定模块,用于从多个类型硬件平台中选择与所述待编译的硬件平台类型相匹配的目标类型硬件平台,并确定与所述目标类型硬件平台相匹配的目标编译流程,其中,所述多个类型硬件平台至少包括:人工智能处理器和嵌入式视觉处理器;
编译模块,用于按照所述目标编译流程将所述待编译模型编译成目标文件,所述目标文件用于在所述目标类型硬件平台上运行。
9.一种非易失性存储介质,其特征在于,所述非易失性存储介质中存储有程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行权利要求1至7中任意一项所述的多硬件平台的模型编译方法。
10.一种计算机设备,其特征在于,包括:存储器和处理器,所述处理器用于运行存储在所述存储器中的程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的多硬件平台的模型编译方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310109556.3A CN116126342A (zh) | 2023-02-08 | 2023-02-08 | 多硬件平台的模型编译方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310109556.3A CN116126342A (zh) | 2023-02-08 | 2023-02-08 | 多硬件平台的模型编译方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116126342A true CN116126342A (zh) | 2023-05-16 |
Family
ID=86307918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310109556.3A Pending CN116126342A (zh) | 2023-02-08 | 2023-02-08 | 多硬件平台的模型编译方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116126342A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116991429A (zh) * | 2023-09-28 | 2023-11-03 | 之江实验室 | 计算机程序的编译调优方法、装置和存储介质 |
CN118012468A (zh) * | 2024-04-08 | 2024-05-10 | 浙江深象智能科技有限公司 | 模型处理方法、系统及设备 |
-
2023
- 2023-02-08 CN CN202310109556.3A patent/CN116126342A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116991429A (zh) * | 2023-09-28 | 2023-11-03 | 之江实验室 | 计算机程序的编译调优方法、装置和存储介质 |
CN116991429B (zh) * | 2023-09-28 | 2024-01-16 | 之江实验室 | 计算机程序的编译调优方法、装置和存储介质 |
CN118012468A (zh) * | 2024-04-08 | 2024-05-10 | 浙江深象智能科技有限公司 | 模型处理方法、系统及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116126342A (zh) | 多硬件平台的模型编译方法及装置 | |
CN107766194A (zh) | 测试方法、装置、系统、终端设备及计算机可读存储介质 | |
CN106681903B (zh) | 生成测试用例的方法及装置 | |
CN110166276A (zh) | 一种帧同步异常的定位方法、装置、终端设备和介质 | |
CN111694617B (zh) | 网络离线模型的处理方法、人工智能处理装置及相关产品 | |
CN109739700B (zh) | 一种接口测试方法和装置 | |
CN110955715A (zh) | Erp系统和目标平台的数据转换方法、装置以及电子设备 | |
CN108763094A (zh) | 测试用例生成方法、装置、设备及存储介质 | |
JP2022506493A (ja) | イメージの彩色完成方法、その装置及びそのコンピュータプログラム、並びに人工神経網学習方法、その装置及びそのコンピュータプログラム | |
CN114356787B (zh) | 深度学习模型编译器的自动化测试方法、装置及存储介质 | |
CN112948233A (zh) | 一种接口测试方法、装置、终端设备及介质 | |
CN115509765A (zh) | 一种超融合云计算方法、系统、计算机设备及存储介质 | |
CN111580789B (zh) | 功能块框架生成 | |
CN117035065A (zh) | 模型评估的方法及相关装置 | |
CN110309877A (zh) | 一种特征图数据的量化方法、装置、电子设备及存储介质 | |
CN109522234A (zh) | 显示测试用例执行进度的方法、系统及自动化测试方法 | |
CN108259698A (zh) | 图像扫描方法、系统、装置及计算机可读存储介质 | |
CN113963428A (zh) | 模型训练方法、遮挡检测方法、系统、电子设备及介质 | |
CN113791766A (zh) | 组合数据接口的方法、电子设备和可读存储介质 | |
CN114217540A (zh) | 一种非标设备的控制方法、装置、设备及存储介质 | |
CN116029349A (zh) | 模型的部署方法、装置及电子设备 | |
TWI450529B (zh) | 數位電表通訊系統、方法以及儲存其之電腦可讀取記錄媒體 | |
CN111831539A (zh) | 一种测试方法及相关产品 | |
CN112051990A (zh) | 网管北向接口模型适配方法及系统 | |
CN116208661B (zh) | 功能配置适配方法、装置、车辆及存储介质 |
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 |