基于Tensorflow框架的深度学习训练方法技术

技术编号:32211629 阅读:9 留言:0更新日期:2022-02-09 17:17
本申请提供一种基于Tensorflow框架的深度学习训练方法,包括:接收深度学习训练请求;将深度学习训练请求对应的FPGA板卡虚拟为本地FPGA节点;将本地FPGA节点注册为Tensorflow框架对应的VFPGA设备;配置VFPGA设备的前向算子和反向算子,并编译前向算子和反向算子得到FPGA的bit文件;烧写bit文件到本地FPGA节点,生成本地FPGA节点对应的FPGA设备;利用FPGA设备执行深度学习训练。本申请降低了通信时延,从而提高了深度学习训练效率。本申请还提供一种基于Tensorflow框架的深度学习训练系统、FPGA板卡、计算机可读存储介质和电子设备,具有上述有益效果。有上述有益效果。有上述有益效果。

【技术实现步骤摘要】
基于Tensorflow框架的深度学习训练方法


[0001]本申请涉及大数据领域,特别涉及一种基于Tensorflow框架的深度学习训练方法、系统、FPGA板卡、计算机可读存储介质和电子设备。

技术介绍

[0002]Tensorflow是使用最为广泛的深度学习训练框架之一,大部分公司都将tensorflow作为首选训练框架。因此tensorflow得到了很多芯片厂商的支持,例如intel的CPU,AMD的CPU和APU,nvidia的GPU,intel和silinx等头部FPGA芯片厂商实现了FPGA支持tensorflow推理。但使用PCIE模式的主机进行模型训练时,受限于服务器中FGPA卡槽的个数,大规模部署时会成为瓶颈。同时,由于基于PCIE模式的多张FPGA板卡间通信需要借助CPU进行,通信时长较大,即通信受限。

技术实现思路

[0003]本申请的目的是提供一种基于Tensorflow框架的深度学习训练方法、系统、、FPGA板卡、计算机可读存储介质和电子设备,能够降低深度学习训练过程中的通信时延,提高深度学习训练效率。
[0004]为解决上述技术问题,本申请提供一种基于Tensorflow框架的深度学习训练方法,包括:
[0005]接收深度学习训练请求;
[0006]将所述深度学习训练请求对应的FPGA板卡虚拟为本地FPGA节点;
[0007]将所述本地FPGA节点注册为所述Tensorflow框架对应的VFPGA设备;
[0008]配置所述VFPGA设备的前向算子和反向算子,并编译所述前向算子和所述反向算子得到FPGA的bit文件;
[0009]烧写所述bit文件到所述本地FPGA节点,生成所述本地FPGA节点对应的FPGA设备;其中所述FPGA设备包含RDMA协议模块,所述RDMA协议模块用于FPGA设备之间实现全双工读写内存;
[0010]利用所述FPGA设备执行所述深度学习训练。
[0011]可选地,利用所述FPGA设备执行所述深度学习训练包括:
[0012]从数据集中获取待训练数据;
[0013]利用所述FPGA设备对所述待训练数据分别进行前向计算、反向传播和梯度计算,得到所述待训练数据对应的梯度值;
[0014]通过RDMA协议模块将所述梯度值在聚合通信模块内共享,并根据各所述FPGA设备的梯度值计算平均梯度;所述平均梯度确定损失函数最小值。
[0015]可选地,将所述深度学习训练请求对应的FPGA板卡虚拟为本地FPGA节点之前,还包括:
[0016]从FPGA板卡资源池确定所述深度学习训练请求对应的FPGA板卡;所述FPGA板卡资
源池中的FPGA板卡包含独立供电单元。
[0017]可选地,所述FPGA板卡的网络传输层包括RDMA协议模块、网络物理层协议模块和网络应用层协议。
[0018]本申请还提供一种FPGA板卡,所述FPGA板卡的网络连接层设有RDMA协议模块,所述RDMA协议模块用于FPGA设备之间实现全双工读写内存。
[0019]可选地,所述FPGA板卡支持L3层网络策略和L4层网络策略。
[0020]可选地,所述FPGA板卡还包括独立供电单元。
[0021]本申请还提供一种基于Tensorflow框架的深度学习训练系统,包括:
[0022]请求接收模块,用于接收深度学习训练请求;
[0023]板卡虚拟化模块,用于将所述深度学习训练请求对应的FPGA板卡虚拟为本地FPGA节点;
[0024]节点注册模块,用于将所述本地FPGA节点注册为所述Tensorflow框架对应的VFPGA设备;
[0025]节点编译模块,用于配置所述VFPGA设备的前向算子和反向算子,并编译所述前向算子和所述反向算子得到FPGA的bit文件;
[0026]设备配置模块,用于烧写所述bit文件到所述本地FPGA节点,生成所述本地FPGA节点对应的FPGA设备;其中所述FPGA设备包含RDMA协议模块,所述RDMA协议模块用于FPGA设备之间实现全双工读写内存;
[0027]深度学习训练模块,用于利用所述FPGA设备执行所述深度学习训练。
[0028]本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。
[0029]本申请还提供一种电子设备,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。
[0030]本申请提供一种基于Tensorflow框架的深度学习训练方法,包括:接收深度学习训练请求;将所述深度学习训练请求对应的FPGA板卡虚拟为本地FPGA节点;将所述本地FPGA节点注册为所述Tensorflow框架对应的VFPGA设备;配置所述VFPGA设备的前向算子和反向算子,并编译所述前向算子和所述反向算子得到FPGA的bit文件;烧写所述bit文件到所述本地FPGA节点,生成所述本地FPGA节点对应的FPGA设备;其中所述FPGA设备包含RDMA协议模块,所述RDMA协议模块用于FPGA设备之间实现全双工读写内存;利用所述FPGA设备执行所述深度学习训练。
[0031]本申请通过将FPGA板卡虚拟为FPGA节点,且在FPGA板卡中设置RDMA协议模块,使得FPGA板卡之间可以实现全双工读写内存,及时进行数据交互,从而无需经由CPU中转,降低了通信时延,从而提高了深度学习训练效率。
[0032]本申请还提供一种基于Tensorflow框架的深度学习训练系统、、FPGA板卡、计算机可读存储介质和电子设备,具有上述有益效果,此处不再赘述。
附图说明
[0033]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0034]图1为本申请实施例所提供的一种基于Tensorflow框架的深度学习训练方法的流程图;
[0035]图2为本申请实施例所提供的一种FPGA板卡结构示意图;
[0036]图3为传统FPGA训练的数据流向示意图;
[0037]图4为本申请实施例所提供的FPGA训练的数据流向示意图;
[0038]图5为本申请实施例所提供的一种基于Tensorflow框架的深度学习训练系统的流程图。
具体实施方式
[0039]为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Tensorflow框架的深度学习训练方法,其特征在于,包括:接收深度学习训练请求;将所述深度学习训练请求对应的FPGA板卡虚拟为本地FPGA节点;将所述本地FPGA节点注册为所述Tensorflow框架对应的VFPGA设备;配置所述VFPGA设备的前向算子和反向算子,并编译所述前向算子和所述反向算子得到FPGA的bit文件;烧写所述bit文件到所述本地FPGA节点,生成所述本地FPGA节点对应的FPGA设备;其中所述FPGA设备包含RDMA协议模块,所述RDMA协议模块用于FPGA设备之间实现全双工读写内存;利用所述FPGA设备执行所述深度学习训练。2.根据权利要求1所述的深度学习训练方法,其特征在于,利用所述FPGA设备执行所述深度学习训练包括:从数据集中获取待训练数据;利用所述FPGA设备对所述待训练数据分别进行前向计算、反向传播和梯度计算,得到所述待训练数据对应的梯度值;通过RDMA协议模块将所述梯度值在聚合通信模块内共享,并根据各所述FPGA设备的梯度值计算平均梯度;所述平均梯度确定损失函数最小值。3.根据权利要求1所述的深度学习训练方法,其特征在于,将所述深度学习训练请求对应的FPGA板卡虚拟为本地FPGA节点之前,还包括:从FPGA板卡资源池确定所述深度学习训练请求对应的FPGA板卡;所述FPGA板卡资源池中的FPGA板卡包含独立供电单元。4.根据权利要求3所述的深度学习训练方法,其特征在于,所述FPGA板卡的网络传输层包括RDMA协议模块、网络物理层协议模块和网络应用层协议。5.一种FPGA板卡,其特征在于,所述FPGA板卡的网络连接层设有RDMA协议...

【专利技术属性】
技术研发人员:赵谦谦阚宏伟王彦伟
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1