CN109325900A - 一种算法的部署方法和系统 - Google Patents
一种算法的部署方法和系统 Download PDFInfo
- Publication number
- CN109325900A CN109325900A CN201811092173.5A CN201811092173A CN109325900A CN 109325900 A CN109325900 A CN 109325900A CN 201811092173 A CN201811092173 A CN 201811092173A CN 109325900 A CN109325900 A CN 109325900A
- Authority
- CN
- China
- Prior art keywords
- code
- configuration
- algorithm
- template
- key message
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种算法的部署方法和系统,方法包括:当接收到对目标算法的部署请求时,获取所述目标算法的配置模板;解析所述配置模板中包含的各个关键信息;依据所述各个关键信息生成目标代码;将所述目标代码和所述各个关键信息依据预设的代码框架模板进行控制流程部署,得到目标可执行文件;将所述目标可执行文件部署在对应的硬件平台中,上述的方法,在所述目标代码生成完成之后,依据所述预设的代码框架模板对控制流程进行部署,避免了现有的算法部署的过程中,对于底层硬件间的交互及配置等细节仍然需要工程师进行部署的问题。
Description
技术领域
本发明涉及嵌入式技术领域,尤其涉及一种算法的部署方法和系统。
背景技术
当前,利用图形处理器GPU(Graphics Processing Unit)实现并行计算,可以极大加速程序运行,是当前密集计算的重要方法,CUDA是NVIDIA公司发布的用于GPU上的并行计算平台,GPU算法的开发需要对CUDA编程有较为深入的掌握。目前,常见的开发流程是先由算法工程师利用MATLAB进行算法设计和仿真,在设计指标满足后,依据MATLAB软件提供的C代码生成器和CUDA代码生成器,可以将仿真算法转换为C或者CUDA代码,实现算法在底层硬件中的部署。
发明人对现有的算法部署过程进行研究发现,利用MATLAB提供的代码生成器能够方便的将算法转换为C或者CUDA代码,但是对于底层硬件间的交互及配置等细节仍会对多数应用开发工程师造成巨大的困扰,开发工程师仍然需要相应的技术知识和大量的工作才能完成部署。
发明内容
有鉴于此,本发明提供了一种算法的部署方法和系统,用以解决现有算法部署过程中对于底层硬件间的交互及配置等细节仍会对多数应用开发工程师造成巨大的困扰,工程师仍然需要相应的技术知识和大量的工作才能够进行算法在硬件平台验证工作的问题。具体方案如下:
一种算法的部署方法,应用于图形处理器,包括:
当接收到对目标算法的部署请求时,获取所述目标算法的配置模板;
解析所述配置模板中包含的各个关键信息;
依据所述各个关键信息生成目标代码;
将所述目标代码和所述各个关键信息依据预设的代码框架模板进行控制流程部署,得到目标可执行文件;
将所述目标可执行文件部署在对应的硬件平台中。
上述的方法,可选的,获取所述目标算法的配置模板,包括:
获取与所述目标算法对应的待部署代码;
解析所述待部署代码中包含的算法接口配置、数据类型配置、驱动接口配置、时钟接口配置和主函数配置;
依据所述算法接口配置、所述数据类型配置、所述驱动接口配置、所述时钟接口配置和所述主函数配置构建所述目标算法的配置模板。
上述的方法,可选的,解析所述配置模板中包含的各个关键信息,包括:
调用预设的代码生成解析器;
依据所述预设的代码生成解析器中包含的驱动代码解析器,逻辑代码解析器,算法代码解析器,关键语句解析器和配置文本解析器分别对所述配置模板进行解析,得到所述各个关键信息。
上述的方法,可选的,将所述目标代码和所述各个关键信息依据预设的代码框架模板进行控制流程部署,得到目标可执行文件,包括:
将所述目标代码,所述各个关键信息和所述预设的代码框架模板发送给流程控制器;
解析所述预设的代码框架模板中包含的各个框架,依据所述流程控制器中的关键代码嵌入控制器、代码文件拷贝控制器、关键信息提取控制器、配置文件修改控制器和编译文件生成控制器将所述目标代码和所述各个关键信息嵌入到所述各个框架中,得到目标代码框架;
对所述目标代码框架进行编译链接,得到目标可执行文件。
上述的方法,可选的,还包括:
对所述目标可执行文件的运行结果的准确性进行验证。
一种算法的部署系统,应用于图形处理器,包括:
获取模块,用于当接收到对目标算法的部署请求时,获取所述目标算法的配置模板;
解析模块,用于解析所述配置模板中包含的各个关键信息;
第一生成模块,用于依据所述各个关键信息生成目标代码;
第二生成模块,用于将所述目标代码和所述各个关键信息依据预设的代码框架模板进行控制流程部署,得到目标可执行文件;
部署模块,用于将所述可执行文件部署在对应的硬件平台中。
上述的系统,可选的,所述获取模块包括:
获取单元,用于获取与所述目标算法对应的待部署代码;
解析单元,用于解析所述待部署代码中包含的算法接口配置、数据类型配置、驱动接口配置、时钟接口配置和主函数配置;
构建单元,用于依据所述算法接口配置、所述数据类型配置、所述驱动接口配置、所述时钟接口配置和所述主函数配置构建所述目标算法的配置模板。
上述的系统,可选的,所述解析模块包括:
调用单元,用于调用预设的代码生成解析器;
解析单元,用于依据所述预设的代码生成解析器中包含的驱动代码解析器,逻辑代码解析器,算法代码解析器,关键语句解析器和配置文本解析器分别对所述配置模板进行解析,得到所述各个关键信息。
上述的系统,可选的,所述第二生成模块包括:
发送单元,用于将所述目标代码,所述各个关键信息和所述预设的代码框架模板发送给流程控制器;
生成单元,用于解析所述预设的代码框架模板中包含的各个框架,依据所述流程控制器中的关键代码嵌入控制器、代码文件拷贝控制器、关键信息提取控制器、配置文件修改控制器和编译文件生成控制器将所述目标代码和所述各个关键信息嵌入到所述各个框架中,得到目标代码框架;
编译链接单元,用于对所述目标代码框架进行编译链接,得到目标可执行文件。
上述的系统,可选的,还包括:
验证模块,用于对所述目标可执行文件的运行结果的准确性进行验证。
与现有技术相比,本发明包括以下优点:
本发明公开了一种算法的部署方法和系统,方法包括:当接收到对目标算法的部署请求时,获取所述目标算法的配置模板;解析所述配置模板中包含的各个关键信息;依据所述各个关键信息生成目标代码;将所述目标代码和所述各个关键信息依据预设的代码框架模板进行控制流程部署,得到目标可执行文件;将所述目标可执行文件部署在对应的硬件平台中,上述的方法,在所述目标代码生成完成之后,依据所述预设的代码框架模板对控制流程进行部署,避免了现有的算法部署的过程中,对于底层硬件间的交互及配置等细节仍然需要工程师进行部署的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种算法的部署方法流程图;
图2为本发明实施例公开的一种算法的部署方法又一流程图;
图3为本发明实施例公开的一种算法的部署方法又一流程图;
图4为本发明实施例公开的一种算法的部署方法又一流程图;
图5为本发明实施例公开的一种算法的部署系统结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
对所公开的实施例的说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
本发明公开了一种算法的部署方法,所述部署方法应用在密集计算过程中,产生密集计算需求的领域包括视频处理,电磁场分析,移动通信,生物信息,人工智能,医疗诊断和流体力学等诸多领域,计算过程需要将算法代码部署到硬件平台中,本发明实施例中,以部署到GPU为例进行说明,将所述部署方法的执行流程如图1所示,包括步骤:
S101、当接收到对目标算法的部署请求时,获取所述目标算法的配置模板;
本发明实施例中,当接收到对所述目标算法的部署请求时,获取与所述目标算法对应的待部署代码,解析所述待部署代码,提取所述待部署代码中的对应信息,将所述待部署代码中包含的对应信息添加到与所述目标算法对应的配置模板中,其中,优选的,所述待部署代码采用MATLAB进行编写。
S102、解析所述配置模板中包含的各个关键信息;
本发明实施例中,解析所述配置模板,得到所述配置模板中包含的关键信息,其中,所述关键信息包括:驱动代码、逻辑代码、算法代码、关键语句和配置文本。
S103、依据所述各个关键信息生成目标代码;
本发明实施例中,依据所述各个关键信息生成目标代码,可以通过MATLAB软件进行算法设计,将得到算法通过仿真的平台MathWorks提供的CUDA代码生成器进行转换得到目标代码。其中,CUDA是NVIDIA公司发布的用于GPU上的并行计算平台,其中,关键信息可以为关键代码和/或者代码文件。
S104、将所述目标代码和所述各个关键信息依据预设的代码框架模板进行控制流程部署,得到目标可执行文件;
本发明实施例中,提供了一个预设的代码框架模板,所述预设的代码框架模板中包含主函数框架、时钟控制框架、网络通信框架、内存加载框架和算法接口框架。将所述预设代码框架模板中的内容依据所述目标代码和所述各个关键信息进行部署,并最终得到目标可行性文件,对于GPU底层硬件间的交互及配置等细节不需要工程师进行配置。
S105、将所述目标可执行文件部署在对应的硬件平台中。
本发明实施例中,将得到的所述目标可执行文件下载到GPU中,并部署在对应的硬件平台中。
本发明实施例中,优选的,在进行所述部署方法之前,需要进行软硬件环境的搭建,具体的搭建过程如下:安装基于GPU的智能算法开发验证坏境,包括上位机软件环境安装以及将GPU板卡(以下以Jetson TX2硬件板卡举例说明)与上位机PC通过以太网口直接对连。
本发明公开了一种算法的部署方法,包括:当接收到对目标算法的部署请求时,获取所述目标算法的配置模板;解析所述配置模板中包含的各个关键信息;依据所述各个关键信息生成目标代码;将所述目标代码和所述各个关键信息依据预设的代码框架模板进行控制流程部署,得到目标可执行文件;将所述目标可执行文件部署在对应的硬件平台中,上述的方法,在所述目标代码生成完成之后,依据所述预设的代码框架模板对控制流程进行部署,避免了现有的算法部署的过程中,对于底层硬件间的交互及配置等细节仍然需要工程师进行部署的问题。
本发明实施例中,优选的,可以通过将所述目标可执行文件的运行结果与仿真结果进行比较对部署的准确性进行验证,也可以通过同一可行性文件多次运行结果的一致性进行验证或者其它优选的验证方法。
本发明实施例中,获取所述目标算法的配置模板的方法流程如图2所示,包括步骤:
S201、获取与所述目标算法对应的待部署代码;
本发明实施例中,所述目标算法是通过编写代码来实现的,各个代码存在预设的代码数据库中,在所述预设的代码数据库中查找与所述目标算法对应的待部署代码,优选的,所述目标算法与所述待部署代码之间存在关联关系,依据所述关联关系,确定所述待部署代码,其中,令算法和代码之间的标识相同,所述标识可以为数字或者字母等标识。
S202、解析所述待部署代码中包含的算法接口配置、数据类型配置、驱动接口配置、时钟接口配置和主函数配置;
本发明实施例中,解析所述待部署代码,获取所述待部署代码中包含的算法接口配置、数据类型配置、驱动接口配置、时钟接口配置和主函数配置。
S203、依据所述算法接口配置、所述数据类型配置、所述驱动接口配置、所述时钟接口配置和所述主函数配置构建所述目标算法的配置模板。
本发明实施例中,在所述算法接口配置中指定准备生成代码的算法函数名以及输入、输出,在所述数据类型配置中指定算法输入输出类型以及初始化数据结构;在所述驱动接口配置中配置UDP(User Datagram Protocol,用户数据报协议)接收和发送,包括GPUIP地址、本机IP地址、发送长度、缓存长度;在所述时钟接口配置中指定Jetson TX2运行周期;在所述—主函数配置中布局UDP发送初始化函数、UDP接收初始化函数、UDP发送函数、UDP接收函数、UDP发送退出函数、UDP接收退出函数、算法函数位置。依据所述算法接口配置、所述数据类型配置、所述驱动接口配置、所述时钟接口配置和所述主函数配置构建所述目标算法的配置模板。
本发明实施例中,解析所述配置模板中包含的各个关键信息,调用预设的代码生成解析器,依据所述预设的代码生成解析器中包含的驱动代码解析器,逻辑代码解析器,算法代码解析器,关键语句解析器和配置文本解析器分别对所述配置模板进行解析,得到所述各个关键信息。
本发明实施例中,将所述目标代码和所述各个关键信息依据预设的代码框架模板进行控制流程部署,得到目标可执行文件的方法流程如图3所示,包括步骤:
S301、将所述目标代码,所述各个关键信息和所述预设的代码框架模板发送给流程控制器;
本发明实施例中,所述流程控制器用于实现GPU中相关参数的部署,优选的,本发明实施例中,构建了一个预设的代码框架模板,所述预设的代码框架模板为所述流程控制器在GPU中部署提供模板,依据所述目标代码和所述各个关键信息中的对应项对所述预设的代码框架模板进行处理。其中,所述预设的代码框架模板包括:主函数框架、时钟控制框架、网络通信框架、内存加载框架和算法接口框架。
S302、解析所述预设的代码框架模板中包含的各个框架,依据所述流程控制器中的关键代码嵌入控制器、代码文件拷贝控制器、关键信息提取控制器、配置文件修改控制器和编译文件生成控制器将所述目标代码和所述各个关键信息嵌入到所述各个框架中,得到目标代码框架;
本发明实施例中,流程控制器依据关键代码嵌入控制器、代码文件拷贝控制器、关键信息提取控制器、配置文件修改控制器和编译文件生成控制器将所述目标代码、所述各个关键信息嵌入到所述预设的代码框架模板中。其中,所述关键信息包括关键代码和代码文件,关键代码包括:函数声明、函数体、数据申明、宏定义等,代码文件包括:驱动代码文件、算法代码文件、数据定义文件等。包括将UDP发送函数、UDP接收函数、算法函数、逻辑函数嵌入到主函数框架中,将时钟控制函数、时钟周期嵌入到时钟控制框架中,将UDP发送初始化函数、UDP接收初始化函数、UDP发送退出函数、UDP接收退出函数嵌入到网络通信框架中,将算法输入输出参数初始化代码嵌入到内存加载框架中,UDP发送接收数据的拆包、解包代码嵌入到算法接口框架中,提取关键信息并修改相关配置文件,得到目标代码框架。
S303、对所述目标代码框架进行编译链接,得到目标可执行文件。
本发明实施例中,编译链接目标代码框架,得到所述目标可执行文件。
本发明实施例中,优选的,在得到了所述目标可执行文件之后,需要对部署方法的准确性进行验证,针对同一数据源,将依据所述目标可执行文件执行的结果与依据所述待部署代码执行的结果的一致性进行对比,评估GPU运行结果是否满足设计指标;若满足设计指标,则流程结束,若不满足设计指标,则重新进入整个流程步骤。
本发明实施例中基于上述部署方法的具体执行流程如图4所示:
S401:用户首先在MATLAB平台完成算法设计和仿真工作。
S402:软硬件环境搭建,安装本发明的基于GPU的智能算法开发验证坏境,包括上位机软件环境安装以及将GPU板卡(以下以Jetson TX2硬件板卡举例说明)与上位机PC通过以太网口直接对连。
S403:开发验证环境配置,在MATLAB环境下打开配置模板,在算法接口配置模指定准备生成代码的算法函数名以及输入、输出,在数据类型配置中指定算法输入输出类型以及初始化数据结构,在通信接口配置中配置UDP(User Datagram Protocol,用户数据报协议)接收和发送,包括Jetson TX2 IP地址、本机IP地址、发送长度、缓存长度;在时钟接口配置中指定Jetson TX2运行周期;在主函数配置模板文件中布局UDP发送初始化函数、UDP接收初始化函数、UDP发送函数、UDP接收函数、UDP发送退出函数、UDP接收退出函数、算法函数位置。
S404:启动Jetson TX2硬件设备,配置好设备IP地址,确保硬件设备与上位机PC连接通畅,准备代码生成及硬件部署。
S405:输入HR_codegen命令,环境会自动进入代码生成及部署流程。首先调用代码生成解析器对S401中用户设定的算法设计的用户算法源代码以及配置模板进行解析,提取关键信息。
S406:将代码生成解析器所解析的关键信息,还有用户算法源代码传递给自动代码生成器以及流程控制器,准备进入代码生成阶段,以使算法生成的CUDA代码与整个系统耦合起来(将算法生成CUDA代码后,整个系统的耦合控制由流程控制器操控)。
S407:自动代码生成器利用代码生成解析器所解析的关键信息将用户算法源代码转换为C代码和CUDA代码,其中,C代码对应的硬件平台为ARM处理器。
S408:将C代码、CUDA代码,代码生成解析器所解析的关键信息、代码框架模板信息传递给流程控制器。
S409:流程控制器将关键信息中的关键代码(包括但不限于,函数声明、函数体、数据申明、宏定义等)和代码文件(包括但不限于,驱动代码文件、算法代码文件、数据定义文件等)嵌入到代码框架模板中。包括将UDP发送函数、UDP接收函数、算法函数、逻辑函数嵌入到主函数框架中,将时钟控制函数、时钟周期嵌入到时钟控制框架中,将UDP发送初始化函数、UDP接收初始化函数、UDP发送退出函数、UDP接收退出函数嵌入到网络通信框架中,将算法输入输出参数初始化代码嵌入到内存加载框架模板中,UDP发送接收数据的拆包、解包代码嵌入到算法接口框架模板中,提取关键信息并修改相关配置文件,编译链接目标可执行文件。
S410:将目标可执行文件下载到Jetson TX2平台,启动数据接收单元、算法运行单元和UDP数据发送单元。
S411:上位机测试框架用Simulink搭建,通过数据采集模型从信号数据源获取信号数据;利用数据发送模块将数据通过UDP发送给Jetson TX2的数据接收单元,并且同样的数据传递给Simulink环境里的算法仿真模块;Simulink的数据接收模块接收Jetson TX2中算法执行单元执行完成的结果,与算法仿真模块仿真的结果送入一致性验证模块。
S412:自动生成的代码在硬件平台运行的结果与仿真结果进行一致性比对,评估硬件平台运行结果是否满足设计指标;若满足设计指标,则流程结束,若不满足设计指标,则重新进入整个流程S401。
本发明实施例中,上述的部署方法,缩短从算法仿真到GPU在板验证的开发周期。用户不用关注硬件底层的实现,只需简单配置就可将算法部署运行于GPU硬件,快速验证算法设计的有效性,加速算法设计的迭代流程。采用模块化的开发思想,可以提高验证坏境的扩展性和复用性。用户只需在配置模板中简单的配置工作即可将算法部署于ARM+GPU异构平台硬件中运行。代码结构更加清晰,可靠性更强。代码框架采用统一的模板,层次分明;利用代码自动生成技术,可以减少手工编码引入的错误和隐患。
基于上述的一种算法的部署方法,本发明实施例中,还提供了一种算法的部署系统,应用于GPU,所述部署系统的结构框图如图5所示,包括:
获取模块501,解析模块502,第一生成模块503,第二生成模块504和部署模块505。
其中,
所述获取模块501,用于当接收到对目标算法的部署请求时,获取所述目标算法的配置模板;
所述解析模块502,用于解析所述配置模板中包含的各个关键信息;
所述第一生成模块503,用于依据所述各个关键信息生成目标代码;
所述第二生成模块504,用于将所述目标代码和所述各个关键信息依据预设的代码框架模板进行控制流程部署,得到目标可执行文件;
所述部署模块505,用于将所述可执行文件部署在对应的硬件平台中。
本发明公开了一种算法的部署系统,包括:当接收到对目标算法的部署请求时,获取所述目标算法的配置模板;解析所述配置模板中包含的各个关键信息;依据所述各个关键信息生成目标代码;将所述目标代码和所述各个关键信息依据预设的代码框架模板进行控制流程部署,得到目标可执行文件;将所述目标可执行文件部署在对应的硬件平台中,上述的系统,在所述目标代码生成完成之后,依据所述预设的代码框架模板对控制流程进行部署,避免了现有的算法部署的过程中,对于底层硬件间的交互及配置等细节仍然需要工程师进行部署的问题。
本发明实施例中,所述获取模块501包括:
获取单元,解析单元和构建单元。
其中,
所述获取单元,用于获取与所述目标算法对应的待部署代码;
所述解析单元,用于解析所述待部署代码中包含的算法接口配置、数据类型配置、驱动接口配置、时钟接口配置和主函数配置;
所述构建单元,用于依据所述算法接口配置、所述数据类型配置、所述驱动接口配置、所述时钟接口配置和所述主函数配置构建所述目标算法的配置模板。
本发明实施例中,所述解析模块502包括:
调用单元和解析单元。
其中,
所述调用单元,用于调用预设的代码生成解析器;
所述解析单元,用于依据所述预设的代码生成解析器中包含的驱动代码解析器,逻辑代码解析器,算法代码解析器,关键语句解析器和配置文本解析器分别对所述配置模板进行解析,得到所述各个关键信息。
本发明实施例中,所述第二生成模块504包括:
发送单元,生成单元和编译链接单元。
其中,
所述发送单元,用于将所述目标代码,所述各个关键信息和所述预设的代码框架模板发送给流程控制器;
所述生成单元,用于解析所述预设的代码框架模板中包含的各个框架,依据所述流程控制器中的关键代码嵌入控制器、代码文件拷贝控制器、关键信息提取控制器、配置文件修改控制器和编译文件生成控制器将所述目标代码和所述各个关键信息嵌入到所述各个框架中,得到目标代码框架;
所述编译链接单元,用于对所述目标代码框架进行编译链接,得到目标可执行文件。
本发明实施例中,所述部署系统还包括:验证模块。
其中,
所述验证模块,用于对所述目标可执行文件的运行结果的准确性进行验证。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上对本发明所提供的一种算法的部署方法和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种算法的部署方法,其特征在于,应用于图形处理器,包括:
当接收到对目标算法的部署请求时,获取所述目标算法的配置模板;
解析所述配置模板中包含的各个关键信息;
依据所述各个关键信息生成目标代码;
将所述目标代码和所述各个关键信息依据预设的代码框架模板进行控制流程部署,得到目标可执行文件;
将所述目标可执行文件部署在对应的硬件平台中。
2.根据权利要求1所述的方法,其特征在于,获取所述目标算法的配置模板,包括:
获取与所述目标算法对应的待部署代码;
解析所述待部署代码中包含的算法接口配置、数据类型配置、驱动接口配置、时钟接口配置和主函数配置;
依据所述算法接口配置、所述数据类型配置、所述驱动接口配置、所述时钟接口配置和所述主函数配置构建所述目标算法的配置模板。
3.根据权利要求1所述的方法,其特征在于,解析所述配置模板中包含的各个关键信息,包括:
调用预设的代码生成解析器;
依据所述预设的代码生成解析器中包含的驱动代码解析器,逻辑代码解析器,算法代码解析器,关键语句解析器和配置文本解析器分别对所述配置模板进行解析,得到所述各个关键信息。
4.根据权利要求1所述的方法,其特征在于,将所述目标代码和所述各个关键信息依据预设的代码框架模板进行控制流程部署,得到目标可执行文件,包括:
将所述目标代码,所述各个关键信息和所述预设的代码框架模板发送给流程控制器;
解析所述预设的代码框架模板中包含的各个框架,依据所述流程控制器中的关键代码嵌入控制器、代码文件拷贝控制器、关键信息提取控制器、配置文件修改控制器和编译文件生成控制器将所述目标代码和所述各个关键信息嵌入到所述各个框架中,得到目标代码框架;
对所述目标代码框架进行编译链接,得到目标可执行文件。
5.根据权利要求1所述的方法,其特征在于,还包括:
对所述目标可执行文件的运行结果的准确性进行验证。
6.一种算法的部署系统,其特征在于,应用于图形处理器,包括:
获取模块,用于当接收到对目标算法的部署请求时,获取所述目标算法的配置模板;
解析模块,用于解析所述配置模板中包含的各个关键信息;
第一生成模块,用于依据所述各个关键信息生成目标代码;
第二生成模块,用于将所述目标代码和所述各个关键信息依据预设的代码框架模板进行控制流程部署,得到目标可执行文件;
部署模块,用于将所述可执行文件部署在对应的硬件平台中。
7.根据权利要求6所述的系统,其特征在于,所述获取模块包括:
获取单元,用于获取与所述目标算法对应的待部署代码;
解析单元,用于解析所述待部署代码中包含的算法接口配置、数据类型配置、驱动接口配置、时钟接口配置和主函数配置;
构建单元,用于依据所述算法接口配置、所述数据类型配置、所述驱动接口配置、所述时钟接口配置和所述主函数配置构建所述目标算法的配置模板。
8.根据权利要求6所述的系统,其特征在于,所述解析模块包括:
调用单元,用于调用预设的代码生成解析器;
解析单元,用于依据所述预设的代码生成解析器中包含的驱动代码解析器,逻辑代码解析器,算法代码解析器,关键语句解析器和配置文本解析器分别对所述配置模板进行解析,得到所述各个关键信息。
9.根据权利要求6所述的系统,其特征在于,所述第二生成模块包括:
发送单元,用于将所述目标代码,所述各个关键信息和所述预设的代码框架模板发送给流程控制器;
生成单元,用于解析所述预设的代码框架模板中包含的各个框架,依据所述流程控制器中的关键代码嵌入控制器、代码文件拷贝控制器、关键信息提取控制器、配置文件修改控制器和编译文件生成控制器将所述目标代码和所述各个关键信息嵌入到所述各个框架中,得到目标代码框架;
编译链接单元,用于对所述目标代码框架进行编译链接,得到目标可执行文件。
10.根据权利要求6所述的系统,其特征在于,还包括:
验证模块,用于对所述目标可执行文件的运行结果的准确性进行验证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811092173.5A CN109325900A (zh) | 2018-09-19 | 2018-09-19 | 一种算法的部署方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811092173.5A CN109325900A (zh) | 2018-09-19 | 2018-09-19 | 一种算法的部署方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109325900A true CN109325900A (zh) | 2019-02-12 |
Family
ID=65264848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811092173.5A Pending CN109325900A (zh) | 2018-09-19 | 2018-09-19 | 一种算法的部署方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109325900A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111027689A (zh) * | 2019-11-20 | 2020-04-17 | 中国航空工业集团公司西安航空计算技术研究所 | 配置方法、装置及计算系统 |
CN114205526A (zh) * | 2021-12-09 | 2022-03-18 | 重庆紫光华山智安科技有限公司 | 一种网络摄像机算法接入方法、系统、介质及电子终端 |
WO2023044631A1 (en) * | 2021-09-22 | 2023-03-30 | Siemens Aktiengesellschaft | A device, system, method and storage medium for ai application deployment |
CN116443388A (zh) * | 2023-06-12 | 2023-07-18 | 合肥联宝信息技术有限公司 | 一种贴标系统及方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7409677B1 (en) * | 2004-11-16 | 2008-08-05 | Sun Microsystems, Inc. | Method and system for creation and use of embedded trace description |
CN102081545A (zh) * | 2011-01-07 | 2011-06-01 | 中国电子科技集团公司第十研究所 | 在嵌入式平台上实现软件通信架构的方法 |
CN102289375A (zh) * | 2011-09-02 | 2011-12-21 | 中兴通讯股份有限公司 | 代码生成方法及系统 |
CN102375778A (zh) * | 2010-08-17 | 2012-03-14 | 中兴通讯股份有限公司 | 实现数字信号处理器自动测试的方法及系统 |
CN103019742A (zh) * | 2012-12-31 | 2013-04-03 | 清华大学 | 一种多dsp平台上的自动代码生成方法 |
CN104598240A (zh) * | 2015-01-20 | 2015-05-06 | 北京仿真中心 | 一种跨平台的仿真模型开发方法及系统 |
CN106155897A (zh) * | 2015-04-16 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 一种业务处理方法及装置 |
CN107729003A (zh) * | 2017-11-20 | 2018-02-23 | 江苏神州信源系统工程有限公司 | 代码的自动生成方法、装置及电子设备 |
-
2018
- 2018-09-19 CN CN201811092173.5A patent/CN109325900A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7409677B1 (en) * | 2004-11-16 | 2008-08-05 | Sun Microsystems, Inc. | Method and system for creation and use of embedded trace description |
CN102375778A (zh) * | 2010-08-17 | 2012-03-14 | 中兴通讯股份有限公司 | 实现数字信号处理器自动测试的方法及系统 |
CN102081545A (zh) * | 2011-01-07 | 2011-06-01 | 中国电子科技集团公司第十研究所 | 在嵌入式平台上实现软件通信架构的方法 |
CN102289375A (zh) * | 2011-09-02 | 2011-12-21 | 中兴通讯股份有限公司 | 代码生成方法及系统 |
CN103019742A (zh) * | 2012-12-31 | 2013-04-03 | 清华大学 | 一种多dsp平台上的自动代码生成方法 |
CN104598240A (zh) * | 2015-01-20 | 2015-05-06 | 北京仿真中心 | 一种跨平台的仿真模型开发方法及系统 |
CN106155897A (zh) * | 2015-04-16 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 一种业务处理方法及装置 |
CN107729003A (zh) * | 2017-11-20 | 2018-02-23 | 江苏神州信源系统工程有限公司 | 代码的自动生成方法、装置及电子设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111027689A (zh) * | 2019-11-20 | 2020-04-17 | 中国航空工业集团公司西安航空计算技术研究所 | 配置方法、装置及计算系统 |
CN111027689B (zh) * | 2019-11-20 | 2024-03-22 | 中国航空工业集团公司西安航空计算技术研究所 | 配置方法、装置及计算系统 |
WO2023044631A1 (en) * | 2021-09-22 | 2023-03-30 | Siemens Aktiengesellschaft | A device, system, method and storage medium for ai application deployment |
CN114205526A (zh) * | 2021-12-09 | 2022-03-18 | 重庆紫光华山智安科技有限公司 | 一种网络摄像机算法接入方法、系统、介质及电子终端 |
CN116443388A (zh) * | 2023-06-12 | 2023-07-18 | 合肥联宝信息技术有限公司 | 一种贴标系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109325900A (zh) | 一种算法的部署方法和系统 | |
CN106021044B (zh) | 可重用spi总线协议模块验证环境平台及其验证方法 | |
CN106371813B (zh) | 一种基于Simulink的电动汽车电机控制器软件生成方法 | |
CN107784152A (zh) | 包括多个模拟器的模拟 | |
Awais et al. | The high level architecture RTI as a master to the functional mock-up interface components | |
CN109472061B (zh) | 一种可重用的仿真验证平台及仿真验证方法 | |
CN106154865B (zh) | 一种车载总线仿真模型自生成方法及系统 | |
CN106326056A (zh) | 可重用wishbone总线协议验证平台及其验证方法 | |
CN108631854A (zh) | 用于测试卫星线束与信号处理单元的rf性能的方法与装置 | |
CN113032963B (zh) | 一种Simulink模型仿真加速方法及装置 | |
CN102708234A (zh) | 基于HLA的Matlab仿真模型集成平台和方法 | |
CN103178996A (zh) | 分布式包交换芯片模型验证系统及验证方法 | |
CN109740222A (zh) | 一种针对汽车网联化场景的测试装置和系统 | |
CN107562969A (zh) | 航空发动机控制系统软件的集成方法和装置 | |
CN104794258A (zh) | 汽车硬件在环仿真系统 | |
CN108038294A (zh) | Uvm环境搭建方法和系统 | |
CN108984403A (zh) | Fpga逻辑代码的验证方法及装置 | |
CN106094802A (zh) | 一种汽车电子控制器通讯测试系统及方法 | |
CN104317640B (zh) | 一种航电设备的仿真系统及方法 | |
CN102495552A (zh) | 面向星载电子系统的实时仿真系统 | |
CN104834591A (zh) | 测试autosar软件组件的测试方法及系统 | |
CN107515966A (zh) | 一种基于dds的雷达仿真系统分层构建方法 | |
CN105765468B (zh) | 系统构建辅助装置 | |
CN108984945A (zh) | 基于多核心联合仿真被验证设计的仿真验证平台 | |
CN108228965A (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 |