[发明专利]基于nGraph框架实现分布式神经网络训练的方法在审
| 申请号: | 202111161608.9 | 申请日: | 2021-09-30 |
| 公开(公告)号: | CN113988287A | 公开(公告)日: | 2022-01-28 |
| 发明(设计)人: | 曹芳;郭振华;王丽;赵雅倩;李仁刚 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
| 主分类号: | G06N3/08 | 分类号: | G06N3/08 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 吴磊 |
| 地址: | 250101 山东*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 ngraph 框架 实现 分布式 神经网络 训练 方法 | ||
1.一种基于nGraph框架实现分布式神经网络训练的方法,其特征在于,包括:
将OpenCL标准API库和Intel IKL平台环境集成到nGraph框架中;
确定神经网络训练需要的算子,在所述nGraph框架中添加所述算子对应的类定义,并在FPGA后端设备中添加所述算子对应的kernel实现;
为集群中的每个服务器创建对应的进程,以便利用所述进程循环管理对应的服务器中的多个FPGA后端设备;
在分布式神经网络训练过程中,将神经网络训练的输入数据分发至每个所述服务器中,以便每个所述服务器将获取到的输入数据分发至包含的多个FPGA后端设备中。
2.根据权利要求1所述方法,其特征在于,所述确定神经网络训练需要的算子,在所述nGraph框架中添加所述算子对应的类定义,并在FPGA后端设备中添加所述算子对应的kernel实现,包括:
确定神经网络训练需要的算子,并在所述算子中确定所述nGraph框架支持、所述FPGA后端设备未支持的第一目标算子,在所述算子中确定所述nGraph框架和所述FPGA后端设备均未支持的第二目标算子;
在所述nGraph框架中添加所述第二目标算子对应的类定义,并在FPGA后端设备中添加所述第一目标算子和所述第二目标算子对应的kernel实现。
3.根据权利要求2所述方法,其特征在于,在所述算子中确定所述nGraph框架支持、所述FPGA后端设备未支持的第一目标算子,在所述算子中确定所述nGraph框架和所述FPGA后端设备均未支持的第二目标算子,包括:
获取所述nGraph框架支持的算子列表和所述FPGA后端设备支持的算子列表;
通过对比分布式神经网络训练需要的算子与所述nGraph框架支持的算子列表确定所述nGraph框架未支持的第一算子列表;
通过对比分布式神经网络训练需要的算子与所述FPGA后端设备支持的算子列表确定所述FPGA后端设备未支持的第二算子列表;
通过对比所述第一算子列表和所述第二算子列表确定所述nGraph框架支持、所述FPGA后端设备未支持的第一目标算子和所述nGraph框架和所述FPGA后端设备均未支持的第二目标算子。
4.根据权利要求1所述方法,其特征在于,所述算子至少包括用于在多个FPGA后端设备之间进行权重数据同步的通信算子。
5.根据权利要求1所述方法,其特征在于,还包括:
按照神经网络的前向计算和反向传播过程,依次将神经网络训练需要的算子进行串联,以构建分布式训练图。
6.根据权利要求1至5中任一项所述方法,其特征在于,所述将神经网络训练的输入数据分发至每个所述服务器中,包括:
根据每个所述服务器包含的FPGA后端设备数量和单个FPGA后端设备一次训练选取的样本数量计算每个所述服务器对应的进程每次获取的输入数据数量;
根据当前数据文件指针位置、每个所述服务器对应的进程的进程号和每个所述服务器对应的进程每次获取的输入数据数量确定每个所述服务器对应的进程获取输入数据的起始位置;
判断数据集是否读取完成;若是,则将当前数据文件指针重置至所述数据集的起始位置,并根据每个所述服务器对应的进程获取输入数据的起始位置和获取的输入数据数量将输入数据分发至每个所述服务器中;若否,则直接根据每个所述服务器对应的进程获取输入数据的起始位置和获取的输入数据数量将输入数据分发至每个所述服务器中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111161608.9/1.html,转载请声明来源钻瓜专利网。





