[发明专利]支持机器学习训练的专用后端代码生成方法及装置在审
| 申请号: | 202111071061.3 | 申请日: | 2021-09-13 |
| 公开(公告)号: | CN113885871A | 公开(公告)日: | 2022-01-04 |
| 发明(设计)人: | 姚海龙;曾军;李啸宇;寇明阳 | 申请(专利权)人: | 清华大学 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/30;G06N3/04;G06N3/08;G06N5/04;G06T1/20 |
| 代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 杨明月 |
| 地址: | 100084 北*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 支持 机器 学习 训练 专用 后端 代码 生成 方法 装置 | ||
1.一种支持机器学习训练的专用后端代码生成方法,其特征在于,包括:
获取第一计算图,对所述第一计算图进行解析与优化处理,得到第二计算图,所述第一计算图为至少一个算子按照第一顺序组成的神经网络模型;
获取第二计算图的至少一个算子,基于所述至少一个算子的算子类型将所述至少一个算子分发至算子映射模块,输出每个算子对应的算子调用代码;
获取所述至少一个算子的内存配置信息,将所述至少一个算子的内存配置信息输入内存管理模块,输出内存管理代码;
基于所述每个算子对应的算子调用代码与所述内存管理代码生成目标后端代码,基于算子库对所述目标后端代码进行编译处理,得到部署文件,所述部署文件用于执行所述第一计算图的计算任务。
2.根据权利要求1所述的支持机器学习训练的专用后端代码生成方法,其特征在于,所述算子映射模块包括至少一个算子代码生成器与算子映射器;
所述基于所述至少一个算子的算子类型将所述至少一个算子分发至算子映射模块,输出每个算子对应的算子调用代码,具体包括:
基于所述算子映射器获取至少一个算子的算子类型;
基于所述至少一个算子的算子类型将所述至少一个算子分发至每个算子对应的算子代码生成器;
基于所述至少一个算子与所述算子代码生成器内的代码生成模板类,输出每个算子对应的算子调用代码。
3.根据权利要求2所述的支持机器学习训练的专用后端代码生成方法,其特征在于,所述基于所述至少一个算子的算子类型将所述至少一个算子分发至算子映射模块之前,还包括:
获取第一算子,所述第一算子为所述第二计算图中的算子;
基于所述第一算子的算子类型与预设代码生成模板基类生成第一算子对应的代码生成模板类;
基于所述第一算子对应的代码生成模板类生成并注册所述第一算子对应的算子代码生成器。
4.根据权利要求2或3所述的支持机器学习训练的专用后端代码生成方法,其特征在于,所述算子调用代码包括算子函数、输入参数以及函数调用代码中的至少一项;
所述输入参数包括以下各项中的至少一项:
以指针形式传入函数的第一张量数据;
基于提前AOT编译方法从所述至少一个算子中获取的第二张量数据;
整数向量,所述整数向量是基于向量组机制得到。
5.根据权利要求4所述的支持机器学习训练的专用后端代码生成方法,其特征在于,所述整数向量是基于向量组机制得到,具体包括:
将第二算子输入所述第二算子对应的算子代码生成器,输出整数向量,所述第二算子为所述第二计算图中输入参数包括所述整数向量的算子;
将所述整数向量发送至向量管理器,基于所述向量管理器生成所述整数向量的变量名,将所述整数向量的变量名发送至所述第二算子对应的算子代码生成器;
基于所述第二算子对应的算子代码生成器将所述变量名输出至所述第二算子对应的算子调用代码。
6.根据权利要求1所述的支持机器学习训练的专用后端代码生成方法,其特征在于,所述内存管理代码用于:
基于所述至少一个算子的内存配置信息获取内存池;
获取所述至少一个算子的输入输出内存请求,基于所述至少一个算子的输入输出内存请求对所述内存池进行分配。
7.根据权利要求6所述的支持机器学习训练的专用后端代码生成方法,其特征在于,所述内存管理代码还用于:
获取所述至少一个算子的输入输出内存请求对应的内存信息;
基于所述内存信息获取所述至少一个算子对应的权重参数,基于权重参数更新机制对所述权重参数进行更新处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111071061.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:富氧燃烧送风系统控制方法
- 下一篇:一种出茶方法





