【技术实现步骤摘要】
一种大规模分布式深度学习的资源管理方法及系统
本专利技术属于分布式系统
,更具体地,涉及一种大规模分布式深度学习的资源管理方法及系统。
技术介绍
深度学习(深度神经网络)在计算机视觉、语言建模、语音识别等领域取得了突破性成果。而与传统的人工神经网络相比,深度神经网络的特点是:拥有更多的隐藏层及神经元,训练与推理阶段的计算体量庞大,同时也会产生大量的中间数据。这些特性使得大多数的深度学习应用对训练过程的存储空间及计算资源等方面有着较大需求,而当前已有的高性能加速硬件(如GPU等)尚不能很好的满足其需求。因此已有很多优化工作对训练系统进行内存管理或分布式支持。然而当前的优化工作往往仅针对训练系统中单一的资源受限问题,并不能同时解决当前深度学习系统中的内存瓶颈及分布式通信瓶颈。针对训练大规模神经网络时GPU内存资源受限的问题,目前已有一系列代表性的优化方法,对训练运行时产生的特征映射数据进行内存管理,借助内存空间复用的思想,实现特征数据内存空间的重复利用,通过层内的数据分时放置以及在加速硬件与主存之间对特征数据进行合 ...
【技术保护点】
1.一种大规模分布式深度学习的资源管理方法,其特征在于,包括下述步骤:/nS1采用训练数据集合和多个计算节点对深度神经网络进行多次迭代训练,并在第1次迭代中对所述深度神经网络的隐藏层进行性能侧写获得中间数据以及数据依赖关系;其中迭代计数k的初始值为k=1;/nS2当第1次迭代结束时对分布式并行环境下的参数更新模式进行预定义,根据所述中间数据的内存开销进行空间分配,并在CPU主存中开辟一片用于完成参数更新的地址空间作为镜像区域;/nS3根据所述数据依赖关系获得所述中间数据的分时放置策略,并记录各类中间数据及其梯度的内存引用计数;/nS4在第k次迭代的前向传播过程中,按照所述分 ...
【技术特征摘要】
1.一种大规模分布式深度学习的资源管理方法,其特征在于,包括下述步骤:
S1采用训练数据集合和多个计算节点对深度神经网络进行多次迭代训练,并在第1次迭代中对所述深度神经网络的隐藏层进行性能侧写获得中间数据以及数据依赖关系;其中迭代计数k的初始值为k=1;
S2当第1次迭代结束时对分布式并行环境下的参数更新模式进行预定义,根据所述中间数据的内存开销进行空间分配,并在CPU主存中开辟一片用于完成参数更新的地址空间作为镜像区域;
S3根据所述数据依赖关系获得所述中间数据的分时放置策略,并记录各类中间数据及其梯度的内存引用计数;
S4在第k次迭代的前向传播过程中,按照所述分时放置策略对计算节点GPU内存端的内存空间进行分配,并在当前层的前向计算完成时将当前层的参数及特征映射等中间数据从GPU内存迁出至CPU主存中;
S5在第k次迭代的后向传播过程中,将当前层计算所需的特征映射从CPU主存迁回至GPU内存,并计算获得当前层参数梯度;并将优化后的参数梯度及历史梯度迁回至CPU主存的对应位置;
S6在第k次迭代的后向传播过程中,按照所述分时放置策略对特征映射数据对应的内存空间进行复用,并计算获得特征梯度,将所述特征梯度写入对应的所复用内存空间中,并采用引用计数的方式控制中间层特征梯度空间的回收;
S7在第k次迭代的后向传播完成时,执行参数镜像更新,在本地节点通过push操作将参数梯度上传到远端中心节点;并在远端中心节点通过pull操作拉取最新版本的全体参数,将参数拷贝路径直接指向到CPU镜像对应区域,在下一轮k+1次的后向计算需要某一层的参数时提前预取,并将其迁回至GPU内存;
S8判断是否满足迭代结束条件,若是,则结束,否则,k=k+1并返回至步骤S4。
2.如权利要求1所述的资源管理方法,其特征在于,步骤S1具体包括以下子步骤:
S11当迭代次数k=1且所述深度神经网络的层数i=1时,对深度神经网络的隐藏层所需内存空间进行统计;
S12获得当前第i层的数据种类、数据规模和层内数据依赖关系,并记录当前层与相邻层的数据依赖关系;
S13判断是否完成所述深度神经网络的逐层遍历,若是,则结束,否则,i=i+1,并返回至步骤S12。
3.如权利要求1或2所述的资源管理方法,其特征在于,步骤S2中对原始参数更新阶段的数据访问位置进行重定向,从GPU内存区域重定向至CPU内存区域。
4.如权利要求1-3任一项所述的资源管理方法,其特征在于,对步骤S3中的数据依赖关系进行解耦和重排,并获得分时放置策略。
5.如权利要求4所述的资源管理方法,其特征在于,将后向计算阶段的操作执行顺序重排的原则为:任意一个中间层的参数梯度计算操作优先于同层的神经元特征映射对应梯度的...
【专利技术属性】
技术研发人员:王芳,冯丹,赵少锋,刘博,
申请(专利权)人:华中科技大学,
类型:发明
国别省市:湖北;42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。