CN113988287B 基于nGraph框架实现分布式神经网络训练的方法 (浪潮电子信息产业股份有限公司)_第1页
CN113988287B 基于nGraph框架实现分布式神经网络训练的方法 (浪潮电子信息产业股份有限公司)_第2页
CN113988287B 基于nGraph框架实现分布式神经网络训练的方法 (浪潮电子信息产业股份有限公司)_第3页
CN113988287B 基于nGraph框架实现分布式神经网络训练的方法 (浪潮电子信息产业股份有限公司)_第4页
CN113988287B 基于nGraph框架实现分布式神经网络训练的方法 (浪潮电子信息产业股份有限公司)_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于nGraph框架实现分布式神经网络训练本申请公开了一种基于nGraph框架实现分储介质,该方法包括:将OpenCL标准API库和将神经网络训练的输入数据分发至每个服务器的多个FPGA后端设备中。本申请实现了通过nGraph框架在FPGA后端设备中进行深度学习神2将OpenCL标准API库和IntelIKL平台环境集成到nGrap确定神经网络训练需要的算子,在所述nGrap在FPGA后端设备中添加所述算子对应的为集群中的每个服务器创建对应的进程,以便利在分布式神经网络训练过程中,将神经网络训练的输入数据分发至每个所述服务器其中,所述确定神经网络训练需要的算子,在所述nGraph确定神经网络训练需要的算子,并在所述算子中确定所述nGraph框在所述nGraph框架中添加所述第二目标算子对应的类定义,并在F所述第一目标算子和所述第二目标算子对应的kern根据每个所述服务器包含的FPGA后端设备数量和单个FPGA后端设备一次训练选取的样本数量计算每个所述服务器对应的进程每次获取的输根据当前数据文件指针位置、每个所述服务器对应的进程的进对应的进程每次获取的输入数据数量确定每个所述服务器对应的进程获取输入数据的起入数据的起始位置和获取的输入数据数量将输入数据分发至每个所述服获取所述nGraph框架支持的算子列表和所述FPGA后端设通过对比分布式神经网络训练需要的算子与所述nGraph框架支持的算子列表确定所通过对比分布式神经网络训练需要的算子与所述FPGA后端设备支持的算子列表确定通过对比所述第一算子列表和所述第二算子列表确定所述nGraph框架支持、后端设备未支持的第一目标算子和所述nGraph框架和所述FPGA后端设备均未支持的第二3按照神经网络的前向计算和反向传播过程,依次将神经网络训练需要的算子进行串算子梳理与添加模块,用于确定神经网络训练需要的算子,在所述多设备管理模块,用于为集群中的每个服务器创建输入数据分布式处理模块,用于在分布式神经网络训练过程中,将入数据分发至所述服务器中的多个FPGA后端第一确定单元,用于确定神经网络训练需要的算子,并在所述算子添加单元,用于在所述nGraph框架中添加所述第二目标算子对应的类后端设备中添加所述第一目标算子和所述第二目标算子计算单元,用于根据每个所述服务器包含的FPGA后端设备数量次训练选取的样本数量计算每个所述服务器对应的进程每第二确定单元,用于根据当前数据文件指针位置、每号和每个所述服务器对应的进程每次获取的输入数据数量确定每个所述服务器对应的进的进程获取输入数据的起始位置和获取的输入数据数量将输入数据分发至每个所述服务8.一种计算机可读存储介质,其特征在于,所4发者需要付出大量的精力和时间进行迁移和优化。针对上述问题,Intel推出了nGraph框[0008]确定神经网络训练需要的算子,在所述nGraph框架中添加所述算子对应的类定5添加所述第一目标算子和所述第二目标算子对应的k[0016]通过对比分布式神经网络训练需要的算子与所述nGraph框架支持的算子列表确[0017]通过对比分布式神经网络训练需要的算子与所述FPGA后端设备支持的算子列表FPGA后端设备未支持的第一目标算子和所述nGraph框架和所述FPGA后端设备均未支持的[0023]根据每个所述服务器包含的FPGA后端设备数量和单个FPGA后端设备一次训练选取的样本数量计算每个所述服务器对应的进程每次获取务器对应的进程每次获取的输入数据数量确定每个所述服务器对应的进程获取输入数据取输入数据的起始位置和获取的输入数据数量将输入数据分发至每个所6[0038]在本申请中,以IntelIKL平台环境为基础,实现FPGA设备间的同步通信,在7[0041]图1为根据一示例性实施例示出的一种基于nGraph框架实现分布式神经网络训练[0047]图7为根据一示例性实施例示出的一种基于nGraph框架实现分布式神经网络训练[0051]参见图1,根据一示例性实施例示出的一种基于nGraph框架实现分布式神经网络[0053]OpenCL(OpenComputingLanguage,开放运算语言)是针对异构装置进行并行化传统FPGA算法开发与HLS开发,基于OpenCL高层次综合编程软件开发FPGA后端设备能够大大简化FPGA开发流程,缩短开发周期。本步骤旨在将OpenCL标准API库集成到nGraph框架添加OpenCL标准API库;修改nGraph框架的cmake编译文件,将OpenCL标准API库编译为OpenCL标准API库添加到与FPGA后端设备位于相同目录的位置。在nGraph框架的源码中添[0055]IntelIKL平台环境中提供的IOChannel读写技术可以实现跨设备的kernel间点对点通信,在本实施例中,通过IntelIKL平台环境实现了FPGA后端设备间节点通信算子FPGA_Allreduce和Average求平均算子,进而实现分布式集群中多设备间的权重数据同步8[0056]其中,将IntelIKL环境集成到nGraph框架中可以包括:首先在服务器中完成IntelIKL平台环境的安装,然后修改nGraph框架下的CMake编译文件,在其中添加IntelIKL头文件和链接库文件所在路径,同时添加IKL的一些必须依赖库,最后重新编译安装在FPGA后端设备中添加这些OP算子对应的备未支持的第一目标算子和所述nGraph框架和所述FPGA后端设备均未支持的第二目标算[0063]需要说明的是,本实施例必须添加的一个OP算子是FPGA_Allreduce,FPGA_Allreduce算子是一个集合通信算子,它的目标是将不同计算节点中的数据整合之后再把群中服务器个数及每个服务器上的FPGA设备数目,然后根据集群中的服务器数量,使用9多块FPGA设备,同一服务器上FPGA设备由当前服务器所属进程通过for循环的方式进行统述服务器中,以便每个所述服务器将获取到的输入数据分发至包含的多个FPGA后端设备服务器进程根据其当前进程号和服务器上的FPGA后端设备数量确定所要获取的数据量和备数量和单个FPGA后端设备一次训练选取的样本数量计算每个所述服务器对应的进程每号和每个所述服务器对应的进程每次获取的输入数据数量确定每个所述服务器对应的进务器对应的进程获取输入数据的起始位置和获取的输入数据数量将输入数据分发至每个总进程数rank_size和当前server进程号rank,根据单节点batch_size和每个服务器上的FPGA后端设备数num_device_per_server计算各服务器进程每次待获取数据量:batch_模块主要包括OpenMPI库(即OpenCL标准API库)和IntelIKL环境到nGraph框架的集成。布式处理模块用于将输入数据分发至各服务器中,Graph图构建模块用于构建分布式训练中添加算子对应的kernel实现。nGraphclient端用户可以按照原来的编程习惯进行编程[0073]下面对本申请实施例提供的一种基于nGraph框架实现分布式神经网络训练的装的一种基于nGraph框架实现分布式神经网络训[0074]参见图7,根据一示例性实施例示出的一种基于nGraph框架实现分布式神经网络[0075]集成模块701,用于将OpenCL标准API库和IntelIKL平台环境集成到nGraph框架进程循环管理对应的服务器中的多个FPGA练的输入数据分发至所述服务器中的多个FP[0081]第一确定单元,用于确定神经网络训练需要的算子,并在所述算子中确定所述nGraph框架支持、所述FPGA后端设备未支持的第一目标算子,在所述算子中确定所述nGraph框架和所述FPGA后端设备均未支持FPGA后端设备中添加所述第一目标算子和所述第二目标算子对应的ke架支持的算子列表确定所述nGraph框架未支持设备支持的算子列表确定所述FPGA后端设备未支持的FPGA后端设备之间进行权重数据同步的备一次训练选取的样本数量计算每个所述服务器对应的进进程号和每个所述服务器对应的进程每次获取的输入数据数量确定每个所述服务器对应对应的进程获取输入数据的起始位置和获取的输入数据数量将输入数据分发至每个所述[0101]本申请实施例中的存储器3用于存储各种类型的数据以支持电子设备的操作。这编程只读存储器(PROM,ProgrammableRead-OnlyMemory)、可擦除可编程只读存储器(EPROM,ErasableProgrammableRead-OnlyMemory)、电可擦除可编程只读存储器磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,RandomAccess静态随机存取存储器(SRAM,StaticRandomAccessMemory)、同步静态随机存取存储器(SSRAM,SynchronousStaticRandomAccessMemory)、动态随机存取存储器(DRAM,DynamicRandomAccessMemory)、同步动态随机存取存储器(SDRAM,SynchronousDynamicRandomAccessMemory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,储器2旨在包括但不限于这些和任意其它适合类型理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论