一种基于指令队列的分布式深度神经网络性能建模方法技术

技术编号:20918689 阅读:43 留言:0更新日期:2019-04-20 10:08
本发明专利技术公开了一种基于指令队列的分布式深度神经网络性能建模方法,特征是根据硬件性能参数、神经网络结构、底层计算架构、数据传输协议、链路带宽特点、服务器GPU拓扑结构,对深度神经网络进行分层映射拆分、分段计算,然后利用指令队列对训练一次迭代耗时进行估计,同时输出各硬件间的数据交互情况。由于本发明专利技术基于指令队列的分布式深度神经网络性能建模方法同时考虑了软硬件特征,使用了指令级的队列模型进行耗时分析,从而实现了对深度神经网络训练的一次迭代耗时估计和对各硬件数据交互过程的分析,适用于不同的硬件环境(不同的服务器、不同种类的GPU、不同块数的GPU)和不同的神经网络。

A Distributed Deep Neural Network Performance Modeling Method Based on Instruction Queue

The invention discloses a distributed deep neural network performance modeling method based on instruction queue, which is characterized by hierarchical mapping, segmentation and calculation of deep neural network according to hardware performance parameters, neural network structure, underlying computing architecture, data transmission protocol, link bandwidth characteristics and server GPU topology structure, and then an iteration of training with instruction queue. Time-consuming estimation and output data interaction between hardware. Because the distributed deep neural network performance modeling method based on instruction queue takes into account both hardware and software characteristics, the instruction level queue model is used for time-consuming analysis, thus realizing an iteration time-consuming estimation of deep neural network training and the analysis of the data interaction process of each hardware, which is suitable for different hardware environments (different servers, different types). GPU, GPU with different block numbers and different neural networks.

【技术实现步骤摘要】
一种基于指令队列的分布式深度神经网络性能建模方法
本专利技术属于基于特定计算模型的性能建模
,具体涉及对在单块或多块图形处理器(GPU)上训练的深度神经网络性能的建模方法。
技术介绍
中央处理器(CentralProcessingUnit,CPU)是一台计算机的运算核心和控制核心,图形处理器(GraphicsProcessingUnit,GPU)是一种图像运算工作的微处理器。相比CPU,GPU具有更多的计算单元,自GPU通用计算技术发展以来,GPU已广泛应用于大计算量的任务,尤其是在深度学习领域。深度神经网络(DeepNeuralNetwork,DNN)是指具有多个隐藏层的人工神经网络(ArtificialNeutralNetwork,ANN),其概念由多伦多大学的杰弗里·辛顿研究组于2006年提出。2012年会议NIPS(Advancesinneuralinformationprocessingsystems)收录的文章“Imagenetclassificationwithdeepconvolutionalneuralnetworks[C]”成功将深度神经网络引入计算机视觉领域,引发了深度学习的热潮。时至2018年,深度学习领域相关的研究已经有了数倍的增长,成功应用于计算机视觉、模式识别、自然语言处理等多个领域。在深度神经网络如此广泛应用的背景下,一种通用的高准确度的针对GPU上训练的深度神经网络性能建模方法是十分有意义的。目前针对GPU上训练的深度神经网络的性能建模方法主要通过实验收集底层数据来进行:例如,IEEE在2018年收录的文章“Performancemodelingandevaluationofdistributeddeeplearningframeworksongpus[C]”中,针对三种不同的深度学习框架,构建了卷积神经网络一次迭代的时延模型,但是其模型构建依赖于实验结果,而且它也无法给出神经网络训练一次迭代的耗时估计;也有利用理论计算估计性能的做法:例如,会议ICLR(InProceedingsoftheInternationalConferenceonLearningRepresentations)于2017年收录的文章“Paleo:APerformanceModelforDeepNeuralNetworks[C]”针对不同的网络和分布式硬件环境构建了深度神经网络性能模型,将其映射到特定的软件、硬件和通信策略空间,用于探索深度学习系统的可扩展性,不过它的误差只能控制在30%以内。
技术实现思路
本专利技术的目的是提出一种基于指令队列的分布式深度神经网络性能建模方法,通过软硬件关键特征参数提取、单GPU性能建模、多GPU性能建模三大过程,实现对当前硬件环境和软件配置下该种结构的深度神经网络训练时一次迭代耗时的估计与各硬件数据交互的分析。本专利技术基于指令队列的分布式深度神经网络性能建模方法,针对GPU上训练的深度神经网络一次迭代耗时建模,其特征在于:根据硬件性能参数、神经网络结构、底层计算架构(ComputeUnifiedDeviceArchitecture,CUDA)、数据传输协议、链路带宽特点、服务器GPU拓扑结构,对深度神经网络进行分层映射拆分、分段计算,然后利用指令队列对训练一次迭代耗时进行估计,同时输出各硬件间的数据交互情况;具体操作步骤为:首先执行软硬件关键特征参数提取:在部署神经网络的GPU服务器上,使用linux系统指令查看硬件配置,提取硬件关键特征参数----包括硬件性能参数、链路带宽、服务器GPU拓扑结构;根据神经网络代码,提取软件关键特征参数----包括神经网络结构参数、数据传输协议;并将提取到的软硬件关键特征参数汇总成配置文件;然后进行单GPU性能建模,将深度神经网络训练一次迭代耗时拆分为数据传输时间、前向传播时间、反向传播时间分别计算,其中前向传播时间和反向传播时间根据神经网络结构再进行分层拆分;再根据相应的CUDA核函数的计算原理得到执行一层的所有核函数,转化成指令;然后使用提出的队列模型将指令转化成耗时,最终得到一次迭代耗时的估计;最后进行多GPU性能建模,基于单GPU性能建模的前向反向传播时间建模结果,结合GPU拓扑结构和吞吐量模型,根据传输模式构建传输模型,计算传输时间,最终得到一次迭代耗时的估计,同时输出硬件间的数据交互过程,包括开始和结束的时间、进行数据交互的硬件以及本次交互的数据量。上述本专利技术基于指令队列的分布式深度神经网络性能建模方法的技术方案所带来的有益效果是:1、本专利技术提出的基于指令队列的分布式深度神经网络性能建模方法,由于同时考虑了软硬件特征,能够准确估计深度神经网络训练的一次迭代耗时并输出各硬件数据交互过程。2、由于本专利技术中提出了一种指令队列模型,从指令级别对一个CUDA核函数进行建模耗时分析,理论上适用于所有在GPU上执行的计算的耗时分析,具有极强的通用性,使本专利技术能够适用于对多种神经网络的建模分析。3、本专利技术中引入了一种吞吐量模型,对数据交互过程中的吞吐量进行了更为精准的分析,加强了对数据交互过程的刻画。4、本专利技术中引入了一种GPU拓扑模型,对服务器上的GPU连接拓扑进行建模分析,能够提升数据交互建模的效果,使本专利技术能够适用于对多块GPU的建模分析。由于本专利技术基于指令队列的分布式深度神经网络性能建模方法同时考虑了软硬件特征,使用了指令级的队列模型进行耗时分析,从而实现了对深度神经网络训练的一次迭代耗时估计和对各硬件数据交互过程的分析,适用于不同的硬件环境(不同的服务器、不同种类的GPU、不同块数的GPU)和不同的神经网络。附图说明图1是本专利技术实施例1和实施例2中基于指令队列的分布式深度神经网络性能建模方法的工作流程示意图;图2是本专利技术实施例1中针对参数服务器方法更新参数的分布式深度神经网络性能建模方法的工作流程示意图;图3是本专利技术实施例2中针对集合通信方法更新参数的分布式深度神经网络性能建模方法的工作流程示意图;图4是本专利技术实施例1和实施例2中计算密集型指令队列模型示意图;图5是本专利技术实施例1和实施例2中存储密集型指令队列模型示意图;图6是本专利技术实施例1和实施例2中吞吐量模型示意图;图7是本专利技术实施例1中参数服务器模式传输模型示意图;图8是本专利技术实施例2中集合通信模式传输模型示意图。具体实施方式下面结合附图和实施例对本专利技术基于指令队列的分布式深度神经网络性能建模方法作进一步具体详细的说明。实施例1:本实施例1介绍的针对使用参数服务器方法更新参数的分布式深度神经网络性能建模方法的工作流程,涉及到软硬件关键特征参数提取、单GPU性能建模和多GPU性能建模过程,最终实现对当前硬件环境和软件配置下该种深度神经网络训练时一次迭代耗时的估计,其中GPU性能建模包括指令队列模型、吞吐量模型、GPU拓扑模型、参数服务器/集合通信传输模型。图1给出了基于指令队列的分布式深度神经网络性能建模方法工作流程示意图。如图1所示,具体的工作流程是:首先进行软硬件关键特征参数提取A,软硬件关键参数包含了计算相关参数A1(包括硬件性能参数、神经网络结构参数)和传输相关参数A2(包括数据传输协议、链路带宽、服务器GPU拓扑结构),其中计算相关参数A1用于单G本文档来自技高网
...

【技术保护点】
1.一种基于指令队列的分布式深度神经网络性能建模方法,针对GPU上训练的深度神经网络一次迭代耗时建模,其特征在于:根据硬件性能参数、神经网络结构、底层计算架构CUDA、数据传输协议、链路带宽特点、服务器GPU拓扑结构,对深度神经网络进行分层映射拆分、分段计算,然后利用指令队列对训练一次迭代耗时进行估计,同时输出各硬件间的数据交互情况;具体操作步骤为:首先执行软硬件关键特征参数提取:在部署神经网络的GPU服务器上,使用linux系统指令查看硬件配置,提取硬件关键特征参数‑‑‑‑包括硬件性能参数、链路带宽、服务器GPU拓扑结构;根据神经网络代码,提取软件关键特征参数‑‑‑‑包括神经网络结构参数、数据传输协议;并将提取到的软硬件关键特征参数汇总成配置文件;然后进行单GPU性能建模,将深度神经网络训练一次迭代耗时拆分为数据传输时间、前向传播时间、反向传播时间分别计算,其中前向传播时间和反向传播时间根据神经网络结构再进行分层拆分;再根据相应的CUDA核函数的计算原理得到执行一层的所有核函数,转化成指令;然后使用提出的队列模型将指令转化成耗时,最终得到一次迭代耗时的估计;最后进行多GPU性能建模,基于单GPU性能建模的前向反向传播时间建模结果,结合GPU拓扑结构和吞吐量模型,根据传输模式构建传输模型,计算传输时间,最终得到一次迭代耗时的估计,同时输出硬件间的数据交互过程,包括开始和结束的时间、进行数据交互的硬件以及本次交互的数据量。...

【技术特征摘要】
1.一种基于指令队列的分布式深度神经网络性能建模方法,针对GPU上训练的深度神经网络一次迭代耗时建模,其特征在于:根据硬件性能参数、神经网络结构、底层计算架构CUDA、数据传输协议、链路带宽特点、服务器GPU拓扑结构,对深度神经网络进行分层映射拆分、分段计算,然后利用指令队列对训练一次迭代耗时进行估计,同时输出各硬件间的数据交互情况;具体操作步骤为:首先执行软硬件关键特征参数提取:在部署神经网络的GPU服务器上,使用linux系统指令查看硬件配置,提取硬件关键特征参数----包括硬件性能参数、链路带宽、服务器GPU拓扑结构;根据神经网络代码,提取软件关键特征参数----包括神经网络结构参数、数据传输协议;并将提取...

【专利技术属性】
技术研发人员:李陈圣秦晓卫裴梓茜李晓敏杨渡佳
申请(专利权)人:中国科学技术大学
类型:发明
国别省市:安徽,34

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

1