[发明专利]基于C代码生成的神经网络模型推理和训练方法有效
申请号: | 201910799245.8 | 申请日: | 2019-08-28 |
公开(公告)号: | CN112445465B | 公开(公告)日: | 2022-09-13 |
发明(设计)人: | 肖谦;周文浩;钱宏;沈莉;管茂林;武文浩;朱琪;吴伟 | 申请(专利权)人: | 无锡江南计算技术研究所 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41;G06N3/10;G06N3/08;G06N5/04 |
代理公司: | 苏州创元专利商标事务所有限公司 32103 | 代理人: | 王健 |
地址: | 214083 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 代码 生成 神经网络 模型 推理 训练 方法 | ||
本发明公开一种基于C代码生成的神经网络模型推理和训练方法,包括以下步骤:S1、以通过各种AI编程框架开发的模型作为输入,AI框架编译器识别各种模型格式并转化为统一的计算图,将输入的模型转化为底层IR;S2、将S1中生成的计算图输入C代码生成模块,输出总控函数;S3、C代码生成模块针对不同的底层IR,生成对应的C代码;S4、将生成的总控函数、各IR对应的C代码以及C‑基础算子库,输入到支持C语言和相应硬件平台的基础编译器,通过基础编译器的优化过程转化为运行程序,并在对应硬件平台上执行推理过程、训练过程。本发明实现了AI框架编译器在LLVM不支持的硬件平台上的快速移植,能够快速实现神经网络模型在LLVM不支持的特定硬件平台上的训练和推理过程。
技术领域
本发明涉及一种基于C代码生成的神经网络模型推理和训练方法,属于计算机技术领域。
背景技术
在深度学习领域,训练和推理应用的开发往往依赖于AI编程框架,AI编程框架是深度学习领域的重要开发工具,能够支撑用户在各种硬件平台开发出高能效的深度学习应用,而不需要对深度学习领域知识有非常深入和细节的了解。但当前,AI编程框架和后端硬件平台都存在多样化的特点,AI框架编译器作为一种端到端的编译系统,将多种框架开发的模型转化为统一的计算图,并进行层次化的lower和优化,转化为在不同硬件平台的可执行代码,具有非常广阔的应用前景。
AI框架编译器负责读取基于AI框架开发的神经网络模型,进行编译和优化后输出可执行程序。AI框架编译器底层依赖于基础编译器,目前几乎所有的开源框架编译器项目都依赖于LLVM编译器,即目前几乎所有AI框架编译器都依赖于LLVM编译器,在CPU端输出LLVM IR,在GPU端生成CUDA或OPENCL代码,不支持直接输出C代码,这对于LLVM不支持的非GPU处理器架构提出了挑战。
目前神经网络模型往往首先被转化为计算图,而后通过层次化的lower和优化,生成底层IR,底层IR转化为LLVM的中间表示进而通过LLVM编译器生成可执行程序。这一流程与LLVM编译器紧耦合,不可拆分。对于一些LLVM尚不支持的硬件平台,框架编译器就无法使用,而对于多样化的AI编程框架来说,如果逐个针对特定硬件平台做移植和优化,又是一件工作量和难度都很大的事。
发明内容
本发明的目的是提供一种基于C代码生成的神经网络模型推理和训练方法,该基于C代码生成的神经网络模型推理和训练方法实现了AI框架编译器在LLVM不支持的硬件平台上的快速移植,能够快速实现神经网络模型在LLVM不支持的特定硬件平台上的训练和推理过程。
为达到上述目的,本发明采用的技术方案是:一种基于C代码生成的神经网络模型推理和训练方法,包括以下步骤:
S1、以通过各种AI编程框架开发的模型作为输入,AI框架编译器识别各种模型格式并转化为统一的计算图,然后,AI框架编译器通过lower和优化流程,将输入的模型转化为底层IR;
S2、将S1中生成的计算图输入C代码生成模块,输出总控函数,此总控函数为训练、推理计算过程的主函数,负责调用各个底层IR生成的对应子函数,并准备各IR的参数;
S3、C代码生成模块针对不同的底层IR,生成对应的C代码,具体如下:
S31、对于对应于基础算子库的底层IR,生成基础算子的函数接口声明,由总控函数负责调用,对于AI框架编译器自定义的底层IR,C代码生成模块根据该IR的含义,输出对应的C代码;
S32、将基础算子库转化为C语言实现的C-基础算子库,并根据目标硬件平台完成初步优化;
S4、将生成的总控函数、各IR对应的C代码以及C-基础算子库,输入到支持C语言和相应硬件平台的基础编译器,通过基础编译器的优化过程转化为运行程序,并在对应硬件平台上执行推理过程、训练过程。
上述技术方案中进一步改进的方案如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910799245.8/2.html,转载请声明来源钻瓜专利网。