CN114820279B - 基于多gpu的分布式深度学习方法、装置及电子设备 - Google Patents
基于多gpu的分布式深度学习方法、装置及电子设备 Download PDFInfo
- Publication number
- CN114820279B CN114820279B CN202210542618.5A CN202210542618A CN114820279B CN 114820279 B CN114820279 B CN 114820279B CN 202210542618 A CN202210542618 A CN 202210542618A CN 114820279 B CN114820279 B CN 114820279B
- Authority
- CN
- China
- Prior art keywords
- parameter
- determining
- segmentation
- deep learning
- parameters
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 143
- 238000013135 deep learning Methods 0.000 title claims abstract description 62
- 230000008569 process Effects 0.000 claims abstract description 87
- 238000006243 chemical reaction Methods 0.000 claims abstract description 45
- 238000013136 deep learning model Methods 0.000 claims abstract description 29
- 238000012545 processing Methods 0.000 claims abstract description 23
- 230000011218 segmentation Effects 0.000 claims description 92
- 238000013507 mapping Methods 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 13
- 238000009826 distribution Methods 0.000 claims description 7
- 238000013473 artificial intelligence Methods 0.000 abstract description 7
- 230000000694 effects Effects 0.000 abstract description 5
- 238000012549 training Methods 0.000 description 68
- 238000010586 diagram Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 238000005520 cutting process Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 108091029480 NONCODE Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开提供了一种基于多图形处理器GPU的分布式深度学习方法、装置及电子设备,涉及人工智能领域,尤其涉及深度学习及云计算技术领域。具体实现方案为:确定当前阶段满足参数自动转换条件,则获取上一阶段的第一切片参数;对第一切片参数进行拼接,以得到完整模型参数;获取当前阶段对应的分布式属性信息,并对完整模型参数进行切分以得到第二切片参数;将第二切片参数分配至各自对应的GPU,以使GPU进行深度学习模型的深度学习。由此,本公开能够根据切片参数及其分布式属性,自动对模型参数进行转换,以保证模型的可持续性以及正确的推理,进而通过提高参数合并过程中的效率和准确率,确保分布式深度学习模型的深度学习效果。
Description
技术领域
本公开涉及数据处理技术领域,尤其涉及人工智能技术领域,并且更具体地涉及深度学习及云计算技术领域。
背景技术
近年来,随着深度学习等人工智能技术的快速发展,模型参数量和数据量也随之攀升,而且深度学习模型的训练还需要不断地更新迭代参数来提高表达能力,这使得即使是计算机硬件和相应优化算法快速发展的今天,单机训练也已经无法满足需求。这样一来,能够提升模型的训练速度、提高训练的模型的规模的分布式并行训练等分布式深度学习方式便应运而生。
然而,相关技术中,在模型训练的过程中或者模型训练完成之后的部署阶段时,往往需要相关用户手动将参数进行合并,这大大提高了分布式深度学习模型的应用门槛。进一步地,手动合并参数还极易导致参数合并过程中的效率和准确率极低,进而影响深度学习效果。
因此,如何不再依赖手动合并参数作为唯一的方式,进而通过提高参数合并过程中的效率和准确率,进而确保深度学习效果,已成为了重要的研究方向之一。
发明内容
本公开提供了一种基于多图形处理器GPU的分布式深度学习方法、装置及电子设备。
根据本公开的一方面,提供了一种基于多图形处理器GPU的分布式深度学习方法,包括:
确定当前阶段满足参数自动转换条件,则获取上一阶段的第一切片参数,其中,所述第一切片参数为对深度学习模型的完整模型参数进行切分得到的参数;
对所有的所述第一切片参数进行拼接,以得到所述完整模型参数;
获取所述当前阶段对应的分布式属性信息,并根据所述当前阶段对应的分布式属性信息重新对所述完整模型参数进行切分以得到第二切片参数;
将所述第二切片参数分配至各自对应的GPU,以使所述GPU根据对应的所述第二切片参数进行所述深度学习模型的深度学习。
根据本公开的另一方面,提供了一种基于多图形处理器GPU的分布式深度学习装置,包括:
获取模块,用于确定当前阶段满足参数自动转换条件,则获取上一阶段的第一切片参数,其中,所述第一切片参数为对深度学习模型的完整模型参数进行切分得到的参数;
拼接模块,用于对所有的所述第一切片参数进行拼接,以得到所述完整模型参数;
切分模块,用于获取所述当前阶段对应的分布式属性信息,并根据所述当前阶段对应的分布式属性信息重新对所述完整模型参数进行切分以得到第二切片参数;
分配模块,用于将所述第二切片参数分配至各自对应的GPU,以使所述GPU根据对应的所述第二切片参数进行所述深度学习模型的深度学习。
根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开第一方面所述的基于多图形处理器GPU的分布式深度学习方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开第一方面所述的基于多图形处理器GPU的分布式深度学习方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序在被处理器执行时实现根据本公开第一方面所述的基于多图形处理器GPU的分布式深度学习方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开第一实施例的示意图;
图2是根据本公开第二实施例的示意图;
图3是根据本公开第三实施例的示意图;
图4是根据本公开第四实施例的示意图;
图5是根据本公开第五实施例的示意图;
图6是根据本公开第六实施例的示意图;
图7是根据本公开第七实施例的示意图;
图8是根据本公开第八实施例的示意图;
图9是根据本公开多阶段分布式模型训练的示意图;
图10是根据本公开第九实施例的示意图;
图11是根据本公开第十实施例的示意图;
图12是根据本公开目标节点的节点数量的示意图;
图13是根据本公开根据分布式属性进行切分的示意图;
图14是根据本公开多阶段分布式训练过程的示意图;
图15是用来实现本公开实施例的基于多图形处理器GPU的分布式深度学习方法的基于多图形处理器GPU的分布式深度学习装置的框图;
图16是用来实现本公开实施例的基于多图形处理器GPU的分布式深度学习方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
以下对本公开的方案涉及的技术领域进行简要说明:
数据处理(Data Processing),指的是对数据的采集、存储、检索、加工、变换和传输。数据处理的基本目的是从大量的、可能是杂乱无章的、难以理解的数据中抽取并推导出对于某些特定的人们来说是有价值、有意义的数据。
AI(Artificial Intelligence,人工智能),是研究使计算机来模拟人生的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术,也有软件层面的技术。人工智能硬件技术一般包括计算机视觉技术、语音识别技术、自然语言处理技术以及及其学习/深度学习、大数据处理技术、知识图谱技术等几大方面。
DL(Deep Learning,深度学习),是ML(Machine Learning,机器学习)领域中一个新的研究方向。它是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。
云计算(cloud computing),是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的***进行处理和分析这些小程序得到结果并返回给用户。云计算早期,简单地说,就是简单的分布式计算,解决任务分发,并进行计算结果的合并。因而,云计算又称为网格计算。通过这项技术,可以在很短的时间内(几秒钟)完成对数以万计的数据的处理,从而达到强大的网络服务。
下面参考附图描述本公开实施例的一种基于多图形处理器GPU的分布式深度学习方法、装置及电子设备。
图1是根据本公开第一实施例的示意图。
如图1所示,本实施例提出的基于多图形处理器GPU的分布式深度学习方法,包括如下步骤:
S101、确定当前阶段满足参数自动转换条件,则获取上一阶段的第一切片参数,其中,第一切片参数为对深度学习模型的完整模型参数进行切分得到的参数。
需要说明的是,随着数据和算力的持续增长,分布式深度学习模型(以下简称模型)的模型参数的规模不断扩大,往往可达到千亿甚至万亿的规模。单机硬件资源无法满足超大规模模型训练的要求,利用多台机器进行分布式并行训练则成为大模型训练的必然选择。其中,常用的分布式并行策略通常包括数据并行、模型并行、流水线并行和上述并行策略的任意组合。
进一步地,分布式并行训练技术使超大模型成为可能,但是分布式训练程序的编写门槛较高,并行算法较为复杂,开发者需同时具有较好的工程能力和算法功底。这样一来,对于不熟悉分布式的算法工程师等相关用户来说门槛较高,且不易实现高效的并行策略。
因此,在分布式并行训练中,自动并行可以让用户仅关注算法本身,帮助用户提高训练速度,降低分布式训练开发的难度。其中,在自动并行的过程中,参数的自动转换(AutoConverter)是其中一个极其重要的环节。
由此,本申请实施例中,在确定当前阶段满足参数自动转换条件后,可以对参数进行自动转化。其中,参数自动转换条件,可以根据实际情况进行设定。
需要说明的是,在试图对参数进行转换时,往往至少需要执行参数合并操作。作为一种可能的实现方式,本申请中,可以获取上一阶段的第一切片参数,其中,第一切片参数为对深度学习模型的完整模型参数进行切分得到的参数。
可选地,针对在模型的训练过程中,可以获取训练过程中的上一阶段的第一切片参数。例如,当前阶段为模型训练过程中的第三阶段,此种情况下,可以获取第二阶段的第一切片参数。
可选地,针对模型训练完成后的部署阶段下,可以获取训练结束时的第一切片参数。例如,模型训练过程共包括3个阶段,此种情况下,可以获取第三阶段的第一切片参数。
S102、对所有的第一切片参数进行拼接,以得到完整模型参数。
本申请实施例中,在获取第一切片参数后,可以对所有的第一切片参数进行拼接,以得到完整模型参数。也就是说,在对所有的第一切片参数进行拼接后,以得到上一阶段进行切分前的完整的模型参数。
需要说明的是,本申请中对于对所有的第一切片参数进行拼接,以得到完整模型参数的具体方式不作限定,可以根据实际情况进行设定。
S103、获取当前阶段对应的分布式属性信息,并根据当前阶段对应的分布式属性信息重新对完整模型参数进行切分以得到第二切片参数。
需要说明的是,分布式属性信息往往可以作为对模型参数进行切分的依据。其中,分布式属性信息,主要包括以下两个属性:拓扑结构进程组(proc_mesh)、进程和张量维度映射关系(dims_mapping)。
由此,本申请实施例中,在获取完整模型参数后,可以获取拓扑结构进程组以及进程和张量维度映射关系,并根据拓扑结构进程组以及进程和张量维度映射关系重新对完整模型参数进行切分,以得到第二切片参数。
S104、将第二切片参数分配至各自对应的GPU,以使GPU根据对应的第二切片参数进行深度学习模型的深度学习。
其中,一个GPU(graphics processing unit,图形处理器)通常对应一个进程。
根据本公开实施例的基于多图形处理器GPU的分布式深度学习方法,可以通过确定当前阶段满足参数自动转换条件,则获取上一阶段的第一切片参数,并对所有的第一切片参数进行拼接,以得到完整模型参数,然后获取当前阶段对应的分布式属性信息,并根据当前阶段对应的分布式属性信息重新对完整模型参数进行切分以得到第二切片参数,进而将第二切片参数分配至各自对应的GPU,以使GPU根据对应的第二切片参数进行深度学习模型的深度学习。由此,本公开能够在确定当前阶段满足参数自动转换条件时,根据切片参数及其分布式属性,自动对模型参数进行转换,以保证模型的可持续性以及正确的推理,进而通过提高参数合并过程中的效率和准确率,确保分布式深度学习模型的深度学习效果。
需要说明的是,本申请中,在试图确定当前阶段满足参数自动转换条件时,可以对资源数量和/或并行策略进行实时检测。
实际应用中,资源数量和/或并行策略的改变通常可能发生在多种应用场景下。例如,在分布式深度学习模型(以下简称模型)的训练过程中,以及模型训练完成后的部署阶段下等应用场景。
下面,分别针对模型训练过程中和模型训练完成后的部署阶段下对满足参数自动转换条件的表现形式进行解释说明。
针对模型训练过程中,资源节点(resource node)可能会因为一些非用户原因的失败而导致任务的退出。
举例而言,参与模型训练的机器(资源)可能会因为非代码导致的问题,即硬件问题的失败而导致任务的退出。此种情况下,训练任务退出后,整个任务退出,也就是说,参与模型训练的所有节点均停止训练。
此时,用户只能等待资源数量重新达到当前并行策略的训练条件,或更改并行策略后重新开始训练。
举例而言,共有3台机器参与模型训练,在训练过程中,若其中1台机器损坏,此时将导致整个训练任务退出训练。进一步地,仅有待参与模型训练的机器(正常运行的机器)数量再次达到3台时,才能重新开始训练。
然而,由于并行策略发生了改变,参数在每个资源节点上的分布可能也会发生改变,这样一来,极可能导致之前的训练失效。因此,为了确保训练成功,在确定资源数量和/或并行策略满足参数自动转换条件,即检测到资源数量和/或并行策略发生改变时,可以对参数进行自动转换。
针对模型训练完成后的部署阶段,往往需要将参数进行合并,此时,也满足参数自动转换条件,可以对参数进行自动转换。
由此,本申请中,针对模型训练过程中以及模型训练完成后的部署阶段,在试图确定当前阶段满足参数自动转换条件时,均可以获取上一阶段对应的第一资源数量和/或第一并行策略,以及当前阶段对应的第二资源数量和/或第二并行策略。
需要说明的是,实际应用中,若试图实现参数转换,既需要获取资源数量,同时还需要获取并行策略。同时,若确定参数发生了转换,则说明资源数量和并行策略中的至少一项发生了变化,即仅资源数量发生变化,或者仅并行策略发生变化,或者资源数量和并行策略均发生变化。
作为一种可能的实现方式,如图2所示,在上述实施例的基础上,上述步骤S101中确定当前阶段满足参数自动转换条件的具体过程,包括以下步骤:
S201、确定上一阶段对应的第一资源数量与当前阶段对应的第二资源数量不一致,则确定当前阶段满足参数自动转换条件。
本申请实施例中,可以仅根据相邻两个阶段(上一阶段和当前阶段)的资源数量发生改变,即确定上一阶段对应的第一资源数量与当前阶段对应的第二资源数量不一致,确定当前阶段满足参数自动转换条件。
S202、确定上一阶段对应的第一并行策略与当前阶段对应的第二并行策略不一致,则确定当前阶段满足参数自动转换条件。
本申请实施例中,可以仅根据相邻两个阶段(上一阶段和当前阶段)的并行策略发生改变,即确定上一阶段对应的第一并行策略与当前阶段对应的第二并行策略不一致,确定当前阶段满足参数自动转换条件。
S203、确定第一资源数量与第二资源数量不一致,且第一并行策略与第二并行策略不一致,则确定当前阶段满足参数自动转换条件。
本申请实施例中,可以根据相邻两个阶段(上一阶段和当前阶段)的资源数量发生和并行策略同时发生改变,即确定上一阶段对应的第一资源数量与当前阶段对应的第二资源数量不一致,且上一阶段对应的第一并行策略与当前阶段对应的第二并行策略不一致,确定当前阶段满足参数自动转换条件。
根据本公开实施例的基于多图形处理器GPU的分布式深度学习方法,可以通过获取上一阶段对应的第一资源数量和/或第一并行策略,以及当前阶段对应的第二资源数量和/或第二并行策略,进而确定第一资源数量与第二资源数量不一致和/或第一并行策略与第二并行策略不一致,则确定当前阶段满足参数自动转换条件。由此,本公开能够在训练过程中或者训练结束后的部署阶段下的任意阶段,通过对相邻阶段对应的资源数量和/或并行策略进行检测,判断当前阶段是否满足参数自动转换条件,为参数的自动转换奠定了基础。
进一步地,本申请中,在试图对所有的第一切片参数进行拼接,以得到完整模型参数时,可以根据切片参数对应的索引,按序进行拼接。
作为一种可能的实现方式,如图3所示,在上述实施例的基础上,上述步骤S102中对所有的第一切片参数进行拼接,以得到完整模型参数的具体过程,包括以下步骤:
S301、获取每个第一切片参数在完整模型参数中的索引。
需要说明的是,本申请中,在任意阶段对上一阶段的切片参数进行合并时,均可以采用步骤S301~S302中的方式。
S302、根据索引,确定第一切片参数的拼接顺序,并根据拼接顺序对所有的第一切片参数进行数组拼接及递归处理,以得到完整模型参数。
举例而言,训练一段时间后资源数量增加,变为两个节点6个GPU。此种情况下,为了充分利用资源,需要将模型参数分配到6个GPU上,即需要参数的合并与重切分来保证训练可以继续进行。
可选地,首先6个进程上都需要获得上一阶段训练的4个切片参数,然后根据切片参数在完整参数中的索引将其重新合并为一个完整的参数。若cluster 0中进程0在完整参数中的索引为[[0,192],[0,384]],它可以与进程1上的切片参数索引[[192,384],[0,384]]进行合并,该过程可以通过数据拼接(numpy.concatenate)和递归来实现。进一步地,在6个进程上都获得完整的参数后,再重复切分过程。
进一步地,本申请中,在试图获取当前阶段对应的分布式属性信息时,可以获取用于表征切分大小的进程组拓扑结构,以及用于表征切分方向的完整模型参数与拓扑结构维度的切分映射关系作为当前阶段对应的分布式属性信息。
作为一种可能的实现方式,如图4所示,在上述实施例的基础上,上述步骤中根据当前阶段对应的分布式属性信息重新对完整模型参数进行切分以得到第二切片参数的具体过程,包括以下步骤:
S401、根据进程组拓扑结构,获取完整模型参数的切分大小。
作为一种可能的实现方式,如图5所示,在上述实施例的基础上,上述步骤S401中根据进程组拓扑结构,获取完整模型参数的切分大小的具体过程,包括以下步骤:
S501、获取进程组拓扑结构的结构元素的取值。
其中,进程组拓扑结构包括至少一个结构元素,且进程组拓扑结构可以是一维、二维、三维等。
S502、根据结构元素的取值,确定对完整模型参数进行切分的目标切分大小。
例如,对于进程组拓扑结构[2,2,2],若切分映射关系是[-1,0],则表示在进程组拓扑结构[2,2,2]中取第0个形状来切分列维度,即切分份数为2份。
又例如,对于进程组拓扑结构[2,4],若切分映射关系是[1,-1],则表示在进程组拓扑结构[2,4]中取第1个形状来切分行维度,即切分份数为4份。
需要说明的是,参数也可以是多维度的。
举例而言,对于进程组拓扑结构[4],若切分映射关系是[-1,-1,-1,0],则表示在进程组拓扑结构[4]中取第0个形状来切分最后一个维度,即切分份数为4份。。
S402、根据完整模型参数与拓扑结构维度的切分映射关系,获取完整模型参数的切分方向。
作为一种可能的实现方式,如图6所示,在上述实施例的基础上,上述步骤S402中根据完整模型参数与拓扑结构维度的切分映射关系,获取完整模型参数的切分方向的具体过程,包括以下步骤:
S601、获取切分映射关系的关系元素的取值。
举例而言,若切分映射关系为[-1,0],则第一位关系元素的取值为-1,第二位关系元素的取值为0。
S602、根据关系元素的取值,获取完整模型参数的切分方向。
需要说明的是,本申请中对于参与转化的参数,即完整模型参数的维度不作限定,可以为任意维度。
下面以完整模型参数的维度为2维为例,对根据关系元素的取值,获取完整模型参数的切分方向的具体过程进行解释说明。
作为一种可能的实现方式,如图7所示,在上述实施例的基础上,上述步骤S602中根据关系元素的取值,获取完整模型参数的切分方向的具体过程,包括以下步骤:
S701、确定第一位关系元素的取值和第二位关系元素的取值均为目标取值,则确定切分方向为行方向和列方向。
其中,目标取值,可以根据实际情况进行设定,例如,目标取值可以设定为0。
举例而言,若切分映射关系为[0,0],即第一位关系元素的取值为0,第二位关系元素的取值为0,此种情况下,确定第一位关系元素的取值和第二位关系元素的取值均为目标取值0,则确定切分方向为行方向和列方向。
S702、确定第一位关系元素的取值为目标取值,且第二位关系元素的取值非目标取值,则确定切分方向为行方向。
举例而言,若切分映射关系为[0,-1],即第一位关系元素的取值为0,第二位关系元素的取值为-1,此种情况下,确定第一位关系元素的取值为目标取值0,且第二位关系元素的取值为-1,则确定切分方向为行方向。
S703、确定第一位关系元素的取值非目标取值,且第二位关系元素的取值为目标取值,则确定切分方向为列方向。
举例而言,若切分映射关系为[-1,-0],即第一位关系元素的取值为-1,第二位关系元素的取值为0,此种情况下,确定第一位关系元素的取值为-1,且第二位关系元素的取值为目标取值0,则确定切分方向为列方向。
S403、根据切分大小和切分方向,对完整模型参数进行切分以得到第二切片参数。
需要说明的是,由于当第一位关系元素的取值和第二位关系元素的取值均为非目标取值时,不对完整模型参数进行切分。因此,在对完整模型参数进行切分前,首先可以确定第一位关系元素的取值和第二位关系元素的取值不同时为非目标取值。
根据本公开实施例的基于多图形处理器GPU的分布式深度学习方法,可以通过根据进程组拓扑结构,获取完整模型参数的切分大小,并根据完整模型参数与拓扑结构维度的切分映射关系,获取完整模型参数的切分方向,进而根据切分大小和切分方向,对完整模型参数进行切分以得到第二切片参数。由此,本公开能够在训练过程中或者训练结束后的部署阶段下的任意阶段,基于分布式属性,准确地对完整模型参数进行切分,为参数的自动转换奠定了基础。
需要说明的是,本申请中,在试图将第二切片参数分配至各自对应的GPU时,可以按序进行分配。
作为一种可能的实现方式,如图8所示,在上述实施例的基础上,上述步骤S104中将第二切片参数分配至各自对应的GPU的具体过程,包括以下步骤:
S801、获取每个GPU对应的进程序号。
举例而言,4个GPU对应的进程序号分别为0、1、2、3。
S802、根据索引和进程序号,按序将第二切片参数分配至对应的GPU。
举例而言,如图9所示,以多阶段分布式模型训练为例,当资源数量改变、并行策略改变时,从逻辑视角来看是一个大小为[768,384]的参数在参与训练,而从物理视角来看,若当前资源数量是四个GPU,参数用户使用该四个GPU开始分布式任务。
此时,每个进程都会根据分布式属性来对完整的参数进行切分,可选地,cluster0中参数的dims_mapping为[0,-1],即参数的第0维会根据process_mesh的第0维来切分,即768均分为四份,最后根据当前进程号按顺序获得所需要的切片参数,即进程0分到第一份切片参数、进程1分到第二份切片参、进程1分到第三份切片参、进程4分到第四份切片参。
进一步地,本申请中,还可以对参与深度学习模型进行深度学习的多个GPU进行分组。
作为一种可能的实现方式,如图10所示,在上述实施例的基础上,具体包括以下步骤:
S1001、获取参与深度学习模型进行深度学习的GPU的处理器数量。
举例而言,若训练一段时间后资源数量增加,变为两个节点6个GPU,此种情况下,参与深度学习模型进行深度学习的GPU的处理器数量为6。
S1002、根据处理器数量和资源数量,对GPU进行分组。
作为一种可能的实现方式,如图11所示,在上述实施例的基础上,上述步骤S1002中根据处理器数量和资源数量,对GPU进行分组的具体过程,包括以下步骤:
S1101、响应于当前阶段对应的资源数量大于1,则根据资源数量确定目标节点。
S1102、获取目标节点的节点数量,并根据处理器数量和节点数量,对所述GPU进行分组。
举例而言,如图12所示,针对目标节点node 0,对应4个资源;针对目标节点node 1和node 2,分别对应3个资源。
综上所述,相关技术中,已有的参数自动转换方法通常根据参数及其对应的切分策略,进行相应的合并与重切分操作。通过一种切分策略对模型参数做合并处理,获得完整的模型参数后,再根据另外一种切分策略进行重切分,最终获得符合当前节点模型的参数值,并加载到模型中,以继续执行模型的训练或推理。
然而,为充分利用集群资源,在资源数量改变后,用户则需要改变并行策略后重提,并手动写参数转换的逻辑,这就要求用户对分布式的相关知识较为了解,而对于不熟悉分布式的算法工程师来说,无法轻易利用上一阶段训练的模型参数进行正确的切分与加载。另外对于数据并行、模型并行、流水线并行和任何通用的切分策略,无法做到任意转换,而使得分布式的使用门槛较高,且自适应能力受到限制。
由此,本申请提出的基于多图形处理器GPU的分布式深度学习方法,旨在多阶段分布式训练过程中或分布式训练后的推理部署阶段,如果并行策略的配置发生了变化,则可以根据参数及其分布式属性,自动对模型参数进行转换,保证可持续的训练和正确的推理。
其中,参数自动转化至少包括参数切分阶段。可选地,针对模型训练过程中的第一个阶段,参数自动转化仅包括参数切分阶段;可选地,从模型训练过程中的第二个阶段起,以及训练完成的部署阶段下,参数自动转化包括参数合并阶段以及参数切分(包括重新切分)阶段。
在对参数进行切分的过程中,可以根据分布式属性进行切分。
举例而言,如图13所示,当dims_mapping为-1时,表示参数该维度不切分,当dims_mapping为0时,表示参数该维度按照相应进程拓扑结构进行切分,即参数在维度0上均分4份分布到4个进程中。
进一步地,本申请提出的基于多图形处理器GPU的分布式深度学习方法,可以支持任意切分策略下参数的合并与重切分。
举例而言,如图14所示,在多阶段分布式训练过程中和分布式训练后的部署阶段下,一个模型(model)首先在一个并行策略下训练,即4路模型并行(mp4)的第一个训练阶段(train 1)。进一步地,资源充裕后为加快训练速度,在第二个并行策略下训练,即2路数据并行8路模型并行(dp2mp8)的第二个训练阶段(train 2)。此时由于多阶段之间的并行策略、资源数量可能不同,参数在物理设备上的分布也会有所不同,因此,为接着上一个阶段的参数继续训练,或训练完成后使用训练好的参数来进行推理部署,可以基于本申请提出的方法,通过converter(转换器)对模型的参数进行自动转换。
这样一来,每个进程即可获得在新分布式属性下的切片参数,且通过按序切分可以保证训练继续按照原本的曲线收敛。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
与上述几种实施例提供的基于多图形处理器GPU的分布式深度学习方法相对应,本公开的一个实施例还提供一种基于多图形处理器GPU的分布式深度学习装置,由于本公开实施例提供的基于多图形处理器GPU的分布式深度学习装置与上述几种实施例提供的基于多图形处理器GPU的分布式深度学习方法相对应,因此在基于多图形处理器GPU的分布式深度学习方法的实施方式也适用于本实施例提供的基于多图形处理器GPU的分布式深度学习装置,在本实施例中不再详细描述。
图15是根据本公开一个实施例的基于多图形处理器GPU的分布式深度学习装置的结构示意图。
如图15所示,该基于多图形处理器GPU的分布式深度学习装置1500,包括:获取模块1510、拼接模块1420、切分模块1530和分配模块1540。其中:
获取模块1510,用于确定当前阶段满足参数自动转换条件,则获取上一阶段的第一切片参数,其中,所述第一切片参数为对深度学习模型的完整模型参数进行切分得到的参数;
拼接模块1520,用于对所有的所述第一切片参数进行拼接,以得到所述完整模型参数;
切分模块1530,用于获取所述当前阶段对应的分布式属性信息,并根据所述当前阶段对应的分布式属性信息重新对所述完整模型参数进行切分以得到第二切片参数;
分配模块1540,用于将所述第二切片参数分配至各自对应的GPU,以使所述GPU根据对应的所述第二切片参数进行所述深度学习模型的深度学习。
其中,拼接模块1520,还用于:
获取每个所述第一切片参数在所述完整模型参数中的索引;
根据所述索引,确定所述第一切片参数的拼接顺序,并根据所述拼接顺序对所有的所述第一切片参数进行数组拼接及递归处理,以得到所述完整模型参数。
其中,切分模块1530,还用于:
获取用于表征切分大小的进程组拓扑结构,以及用于表征切分方向的所述完整模型参数与拓扑结构维度的切分映射关系作为所述当前阶段对应的分布式属性信息。
其中,切分模块1530,还用于:
根据所述进程组拓扑结构,获取所述完整模型参数的切分大小;
根据所述完整模型参数与所述拓扑结构维度的所述切分映射关系,获取所述完整模型参数的切分方向;
根据所述切分大小和所述切分方向,对所述完整模型参数进行切分以得到所述第二切片参数。
其中,切分模块1530,还用于:
获取所述进程组拓扑结构的结构元素的取值;
根据所述结构元素的取值,确定对所述完整模型参数进行切分的目标切分大小。
其中,切分模块1530,还用于:
获取所述切分映射关系的关系元素的取值;
根据所述关系元素的取值,获取所述完整模型参数的切分方向。
其中,切分模块1530,还用于:
确定第一位关系元素的取值和第二位关系元素的取值均为目标取值,则确定所述切分方向为行方向和列方向;或者,
确定所述第一位关系元素的取值为所述目标取值,且所述第二位关系元素的取值非所述目标取值,则确定所述切分方向为行方向;或者,
确定所述第一位关系元素的取值非所述目标取值,且所述第二位关系元素的取值为所述目标取值,则确定所述切分方向为列方向。
其中,分配模块1540,还用于:
获取每个所述GPU对应的进程序号;
根据所述索引和所述进程序号按序,将所述第二切片参数分配至对应的所述GPU。
其中,分配模块1540,还用于:
获取参与所述深度学习模型进行深度学习的所述GPU的处理器数量;
根据所述处理器数量和所述资源数量,对所述GPU进行分组。
其中,分配模块1540,还用于:
响应于所述当前阶段对应的所述资源数量大于1,则根据所述资源数量确定目标节点;
获取所述目标节点的节点数量,并根据所述处理器数量和所述节点数量,对所述GPU进行分组。
其中,获取模块1540,还用于:
确定所述上一阶段对应的第一资源数量与所述当前阶段对应的第二资源数量不一致,则确定所述当前阶段满足所述参数自动转换条件;或者,
确定所述上一阶段对应的第一并行策略与所述当前阶段对应的第二并行策略不一致,则确定所述当前阶段满足所述参数自动转换条件;或者,
确定所述第一资源数量与所述第二资源数量不一致,且所述第一并行策略与所述第二并行策略不一致,则确定所述当前阶段满足所述参数自动转换条件。
根据本公开实施例的基于多图形处理器GPU的分布式深度学习装置,可以通过确定当前阶段满足参数自动转换条件,则获取上一阶段的第一切片参数,并对所有的第一切片参数进行拼接,以得到完整模型参数,然后获取当前阶段对应的分布式属性信息,并根据当前阶段对应的分布式属性信息重新对完整模型参数进行切分以得到第二切片参数,进而将第二切片参数分配至各自对应的GPU,以使GPU根据对应的第二切片参数进行深度学习模型的深度学习。由此,本公开能够在确定当前阶段满足参数自动转换条件时,根据切片参数及其分布式属性,自动对模型参数进行转换,以保证模型的可持续性以及正确的推理,进而通过提高参数合并过程中的效率和准确率,确保分布式深度学习模型的深度学习效果。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图16示出了可以用来实施本公开的实施例的示例电子设备1600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图16所示,设备1600包括计算单元1601,其可以根据存储在只读存储器(ROM)1602中的计算机程序或者从存储单元1608加载到随机访问存储器(RAM)1603中的计算机程序,来执行各种适当的动作和处理。在RAM 1603中,还可存储设备1600操作所需的各种程序和数据。计算单元1601、ROM 1602以及RAM 1603通过总线1604彼此相连。输入/输出(I/O)接口1605也连接至总线1604。
设备1600中的多个部件连接至I/O接口1605,包括:输入单元1606,例如键盘、鼠标等;输出单元1607,例如各种类型的显示器、扬声器等;存储单元1608,例如磁盘、光盘等;以及通信单元1609,例如网卡、调制解调器、无线通信收发机等。通信单元1609允许设备1600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1601执行上文所描述的各个方法和处理,例如基于多图形处理器GPU的分布式深度学习方法。例如,在一些实施例中,基于多图形处理器GPU的分布式深度学习方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1608。在一些实施例中,计算机程序的部分或者全部可以经由ROM1602和/或通信单元1609而被载入和/或安装到设备1600上。当计算机程序加载到RAM 1603并由计算单元1601执行时,可以执行上文描述的基于多图形处理器GPU的分布式深度学习方法的一个或多个步骤。备选地,在其他实施例中,计算单元1601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于多图形处理器GPU的分布式深度学习方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网以及区块链网络。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式***的服务器,或者是结合了区块链的服务器。
本公开还提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时,实现如上所述的基于多图形处理器GPU的分布式深度学习方法。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (20)
1.一种基于多图形处理器GPU的分布式深度学习方法,包括:
对资源数量和/或并行策略进行实时检测,确定当前阶段满足参数自动转换条件,则获取上一阶段的第一切片参数,其中,所述第一切片参数为对深度学习模型的完整模型参数进行切分得到的参数;
对所有的所述第一切片参数进行拼接,以得到所述完整模型参数;
获取所述当前阶段对应的分布式属性信息,并根据所述当前阶段对应的分布式属性信息重新对所述完整模型参数进行切分以得到第二切片参数;
将所述第二切片参数分配至各自对应的GPU,以使所述GPU根据对应的所述第二切片参数进行所述深度学习模型的深度学习,其中,一个GPU对应一个进程;
其中,所述方法还包括:
获取参与所述深度学习模型进行深度学习的所述GPU的处理器数量;
响应于所述当前阶段对应的所述资源数量大于1,则根据所述资源数量确定目标节点;
获取所述目标节点的节点数量,并根据所述处理器数量和所述节点数量,对所述GPU进行分组。
2.根据权利要求1所述的方法,其中,所述对所有的所述第一切片参数进行拼接,以得到所述完整模型参数,包括:
获取每个所述第一切片参数在所述完整模型参数中的索引;
根据所述索引,确定所述第一切片参数的拼接顺序,并根据所述拼接顺序对所有的所述第一切片参数进行数组拼接及递归处理,以得到所述完整模型参数。
3.根据权利要求1或2所述的方法,其中,所述获取所述当前阶段对应的分布式属性信息,包括:
获取用于表征切分大小的进程组拓扑结构,以及用于表征切分方向的所述完整模型参数与拓扑结构维度的切分映射关系作为所述当前阶段对应的分布式属性信息。
4.根据权利要求3所述的方法,其中,所述根据所述当前阶段对应的分布式属性信息重新对所述完整模型参数进行切分以得到第二切片参数,包括:
根据所述进程组拓扑结构,获取所述完整模型参数的切分大小;
根据所述完整模型参数与所述拓扑结构维度的所述切分映射关系,获取所述完整模型参数的切分方向;
根据所述切分大小和所述切分方向,对所述完整模型参数进行切分以得到所述第二切片参数。
5.根据权利要求4所述的方法,其中,所述根据所述进程组拓扑结构,获取所述完整模型参数的切分大小,包括:
获取所述进程组拓扑结构的结构元素的取值;
根据所述结构元素的取值,确定对所述完整模型参数进行切分的目标切分大小。
6.根据权利要求4或5所述的方法,其中,所述根据所述完整模型参数与所述拓扑结构维度的所述切分映射关系,获取所述完整模型参数的切分方向,包括:
获取所述切分映射关系的关系元素的取值;
根据所述关系元素的取值,获取所述完整模型参数的切分方向。
7.根据权利要求6所述的方法,其中,所述根据所述关系元素的取值,获取所述完整模型参数的切分方向,包括:
确定第一位关系元素的取值和第二位关系元素的取值均为目标取值,则确定所述切分方向为行方向和列方向;或者,
确定所述第一位关系元素的取值为所述目标取值,且所述第二位关系元素的取值非所述目标取值,则确定所述切分方向为行方向;或者,
确定所述第一位关系元素的取值非所述目标取值,且所述第二位关系元素的取值为所述目标取值,则确定所述切分方向为列方向。
8.根据权利要求2所述的方法,其中,所述将所述第二切片参数分配至各自对应的GPU,包括:
获取每个所述GPU对应的进程序号;
根据所述索引和所述进程序号,按序将所述第二切片参数分配至对应的所述GPU。
9.根据权利要求1所述的方法,其中,所述确定当前阶段满足参数自动转换条件,包括:
确定所述上一阶段对应的第一资源数量与所述当前阶段对应的第二资源数量不一致,则确定所述当前阶段满足所述参数自动转换条件;或者,
确定所述上一阶段对应的第一并行策略与所述当前阶段对应的第二并行策略不一致,则确定所述当前阶段满足所述参数自动转换条件;或者,
确定所述第一资源数量与所述第二资源数量不一致,且所述第一并行策略与所述第二并行策略不一致,则确定所述当前阶段满足所述参数自动转换条件。
10.一种基于多图形处理器GPU的分布式深度学习装置,包括:
获取模块,用于对资源数量和/或并行策略进行实时检测,确定当前阶段满足参数自动转换条件,则获取上一阶段的第一切片参数,其中,所述第一切片参数为对深度学习模型的完整模型参数进行切分得到的参数;
拼接模块,用于对所有的所述第一切片参数进行拼接,以得到所述完整模型参数;
切分模块,用于获取所述当前阶段对应的分布式属性信息,并根据所述当前阶段对应的分布式属性信息重新对所述完整模型参数进行切分以得到第二切片参数;
分配模块,用于将所述第二切片参数分配至各自对应的GPU,以使所述GPU根据对应的所述第二切片参数进行所述深度学习模型的深度学习,其中,一个GPU对应一个进程;
其中,所述分配模块,还用于:
获取参与所述深度学习模型进行深度学习的所述GPU的处理器数量;
响应于所述当前阶段对应的所述资源数量大于1,则根据所述资源数量确定目标节点;
获取所述目标节点的节点数量,并根据所述处理器数量和所述节点数量,对所述GPU进行分组。
11.根据权利要求10所述的装置,其中,所述拼接模块,还用于:
获取每个所述第一切片参数在所述完整模型参数中的索引;
根据所述索引,确定所述第一切片参数的拼接顺序,并根据所述拼接顺序对所有的所述第一切片参数进行数组拼接及递归处理,以得到所述完整模型参数。
12.根据权利要求10或11所述的装置,其中,所述切分模块,还用于:
获取用于表征切分大小的进程组拓扑结构,以及用于表征切分方向的所述完整模型参数与拓扑结构维度的切分映射关系作为所述当前阶段对应的分布式属性信息。
13.根据权利要求12所述的装置,其中,所述切分模块,还用于:
根据所述进程组拓扑结构,获取所述完整模型参数的切分大小;
根据所述完整模型参数与所述拓扑结构维度的所述切分映射关系,获取所述完整模型参数的切分方向;
根据所述切分大小和所述切分方向,对所述完整模型参数进行切分以得到所述第二切片参数。
14.根据权利要求13所述的装置,其中,所述切分模块,还用于:
获取所述进程组拓扑结构的结构元素的取值;
根据所述结构元素的取值,确定对所述完整模型参数进行切分的目标切分大小。
15.根据权利要求13或14所述的装置,其中,所述切分模块,还用于:
获取所述切分映射关系的关系元素的取值;
根据所述关系元素的取值,获取所述完整模型参数的切分方向。
16.根据权利要求15所述的装置,其中,所述切分模块,还用于:
确定第一位关系元素的取值和第二位关系元素的取值均为目标取值,则确定所述切分方向为行方向和列方向;或者,
确定所述第一位关系元素的取值为所述目标取值,且所述第二位关系元素的取值非所述目标取值,则确定所述切分方向为行方向;或者,
确定所述第一位关系元素的取值非所述目标取值,且所述第二位关系元素的取值为所述目标取值,则确定所述切分方向为列方向。
17.根据权利要求11所述的装置,其中,所述分配模块,还用于:
获取每个所述GPU对应的进程序号;
根据所述索引和所述进程序号按序,将所述第二切片参数分配至对应的所述GPU。
18.根据权利要求10所述的装置,其中,所述获取模块,还用于:
确定所述上一阶段对应的第一资源数量与所述当前阶段对应的第二资源数量不一致,则确定所述当前阶段满足所述参数自动转换条件;或者,
确定所述上一阶段对应的第一并行策略与所述当前阶段对应的第二并行策略不一致,则确定所述当前阶段满足所述参数自动转换条件;或者,
确定所述第一资源数量与所述第二资源数量不一致,且所述第一并行策略与所述第二并行策略不一致,则确定所述当前阶段满足所述参数自动转换条件。
19.一种电子设备,其特征在于,包括处理器和存储器;
其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如权利要求1-9中任一项所述的方法。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210542618.5A CN114820279B (zh) | 2022-05-18 | 2022-05-18 | 基于多gpu的分布式深度学习方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210542618.5A CN114820279B (zh) | 2022-05-18 | 2022-05-18 | 基于多gpu的分布式深度学习方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114820279A CN114820279A (zh) | 2022-07-29 |
CN114820279B true CN114820279B (zh) | 2023-03-24 |
Family
ID=82515333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210542618.5A Active CN114820279B (zh) | 2022-05-18 | 2022-05-18 | 基于多gpu的分布式深度学习方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114820279B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934181B (zh) * | 2022-11-07 | 2023-10-13 | 北京百度网讯科技有限公司 | 数据加载方法、装置、电子设备和存储介质 |
CN115563508A (zh) * | 2022-11-08 | 2023-01-03 | 北京百度网讯科技有限公司 | 模型训练方法、装置以及设备 |
CN115543639B (zh) * | 2022-12-01 | 2023-04-28 | 阿里云计算有限公司 | 分布式执行深度学习任务的优化方法和分布式*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3506095A2 (en) * | 2017-12-29 | 2019-07-03 | INTEL Corporation | Communication optimizations for distributed machine learning |
KR102163402B1 (ko) * | 2020-06-15 | 2020-10-08 | 주식회사 딥노이드 | 멀티 노드와 멀티 gpu를 이용한 분산 학습 시스템 및 방법 |
WO2022001086A1 (zh) * | 2020-06-29 | 2022-01-06 | 苏州浪潮智能科技有限公司 | 一种高效的gpu资源分配优化方法和*** |
WO2022088659A1 (zh) * | 2020-10-26 | 2022-05-05 | 北京市商汤科技开发有限公司 | 资源调度方法及装置、电子设备、存储介质和程序产品 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070291040A1 (en) * | 2005-01-25 | 2007-12-20 | Reuven Bakalash | Multi-mode parallel graphics rendering system supporting dynamic profiling of graphics-based applications and automatic control of parallel modes of operation |
US20080094403A1 (en) * | 2003-11-19 | 2008-04-24 | Reuven Bakalash | Computing system capable of parallelizing the operation graphics processing units (GPUs) supported on a CPU/GPU fusion-architecture chip and one or more external graphics cards, employing a software-implemented multi-mode parallel graphics rendering subsystem |
US8085273B2 (en) * | 2003-11-19 | 2011-12-27 | Lucid Information Technology, Ltd | Multi-mode parallel graphics rendering system employing real-time automatic scene profiling and mode control |
US20080246772A1 (en) * | 2003-11-19 | 2008-10-09 | Lucid Information Technology, Ltd. | Multi-mode parallel graphics rendering system (MMPGRS) employing multiple graphics processing pipelines (GPPLS) and real-time performance data collection and analysis during the automatic control of the mode of parallel operation of said GPPLS |
CA2637800A1 (en) * | 2006-01-18 | 2008-01-10 | Lucid Information Technology, Ltd. | Multi-mode parallel graphics rendering system employing real-time automatic scene profiling and mode control |
CN110389763B (zh) * | 2018-04-20 | 2023-06-16 | 伊姆西Ip控股有限责任公司 | 用于调度专用处理资源的方法、设备和计算机可读介质 |
CN110610449B (zh) * | 2018-06-15 | 2023-09-22 | 伊姆西Ip控股有限责任公司 | 处理计算任务的方法、设备和计算机程序产品 |
CN110795228B (zh) * | 2018-08-03 | 2023-08-25 | 伊姆西Ip控股有限责任公司 | 用于训练深度学习模型的方法和制品、以及计算*** |
US20210133591A1 (en) * | 2019-11-04 | 2021-05-06 | Baidu Usa Llc | Reducing training times of deep neural networks through efficient hybrid parallelism |
CN113821332B (zh) * | 2020-06-19 | 2024-02-13 | 富联精密电子(天津)有限公司 | 自动机器学习***效能调优方法、装置、设备及介质 |
US11409564B2 (en) * | 2020-07-31 | 2022-08-09 | International Business Machines Corporation | Resource allocation for tuning hyperparameters of large-scale deep learning workloads |
CN112114892B (zh) * | 2020-08-11 | 2023-07-21 | 北京奇艺世纪科技有限公司 | 深度学习模型的获取方法、加载方法及选取方法 |
CN112000473A (zh) * | 2020-08-12 | 2020-11-27 | ***股份有限公司 | 深度学习模型的分布式训练方法以及装置 |
US20220058512A1 (en) * | 2020-08-19 | 2022-02-24 | Bank Of America Corporation | Machine learning model training system |
CN112560936B (zh) * | 2020-12-11 | 2024-06-25 | 深圳市帮联科技有限公司 | 模型并行训练方法、装置、设备、存储介质和程序产品 |
CN113032117A (zh) * | 2021-03-10 | 2021-06-25 | 北京百度网讯科技有限公司 | 深度学习框架的训练方法、装置及存储介质 |
CN113791906A (zh) * | 2021-08-09 | 2021-12-14 | 戴西(上海)软件有限公司 | 基于gpu资源在人工智能与工程领域调度***及优化算法 |
CN113961351B (zh) * | 2021-10-28 | 2022-12-30 | 北京百度网讯科技有限公司 | 深度学习模型的分布式训练方法、装置、设备及存储介质 |
CN114091685B (zh) * | 2021-11-08 | 2022-08-23 | 北京百度网讯科技有限公司 | 深度学习框架的张量切分方法、装置、设备和存储介质 |
CN114202027B (zh) * | 2021-12-10 | 2023-05-23 | 北京百度网讯科技有限公司 | 执行配置信息的生成方法、模型训练方法和装置 |
-
2022
- 2022-05-18 CN CN202210542618.5A patent/CN114820279B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3506095A2 (en) * | 2017-12-29 | 2019-07-03 | INTEL Corporation | Communication optimizations for distributed machine learning |
KR102163402B1 (ko) * | 2020-06-15 | 2020-10-08 | 주식회사 딥노이드 | 멀티 노드와 멀티 gpu를 이용한 분산 학습 시스템 및 방법 |
WO2022001086A1 (zh) * | 2020-06-29 | 2022-01-06 | 苏州浪潮智能科技有限公司 | 一种高效的gpu资源分配优化方法和*** |
WO2022088659A1 (zh) * | 2020-10-26 | 2022-05-05 | 北京市商汤科技开发有限公司 | 资源调度方法及装置、电子设备、存储介质和程序产品 |
Non-Patent Citations (6)
Title |
---|
Central force optimization on a GPU: a case study in high performance metaheuristics;R. Green等;《Computer Science》;全文 * |
HetPipe: Enabling Large DNN Training on (Whimpy) Heterogeneous GPU Clusters through Integration of Pipelined Model Parallelism and Data Parallelism;Jay H. Park等;《Computer Science》;全文 * |
一种针对GPU资源的深度学习容器云研究;肖熠等;《中国传媒大学学报(自然科学版)》(第06期);全文 * |
基于容器云的深度学习平台设计与实现;朱天放等;《电子设计工程》(第09期);全文 * |
大数据的分布式机器学习的策略与原则;Eric P.Xing等;《Engineering》(第02期);全文 * |
深度神经网络并行化研究综述;朱虎明等;《计算机学报》(第08期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114820279A (zh) | 2022-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114820279B (zh) | 基于多gpu的分布式深度学习方法、装置及电子设备 | |
CN114862656B (zh) | 基于多gpu的分布式深度学习模型训练代价的获取方法 | |
JP2022018095A (ja) | マルチモーダル事前訓練モデル取得方法、装置、電子デバイス及び記憶媒体 | |
KR102521765B1 (ko) | 인과 관계의 판별 방법, 장치, 전자 기기 및 저장 매체 | |
CN114580263A (zh) | 基于知识图谱的信息***故障预测方法及相关设备 | |
CN114691148B (zh) | 模型推理加速方法、装置、电子设备及存储介质 | |
CN111143039A (zh) | 一种虚拟机的调度方法、装置及计算机存储介质 | |
JP7408741B2 (ja) | マルチタスクのデプロイ方法、装置、電子機器及び記憶媒体 | |
KR20220166241A (ko) | 데이터 처리 방법, 장치, 전자기기, 저장매체 및 프로그램 | |
JP7357114B2 (ja) | 生体検出モデルのトレーニング方法、装置、電子機器および記憶媒体 | |
CN114840322A (zh) | 任务调度方法及装置、电子设备和存储 | |
CN113657468A (zh) | 预训练模型的生成方法、装置、电子设备和存储介质 | |
WO2024040844A1 (zh) | 模型调试方法、装置、电子设备及存储介质 | |
CN115186738B (zh) | 模型训练方法、装置和存储介质 | |
CN115412401B (zh) | 训练虚拟网络嵌入模型及虚拟网络嵌入的方法和装置 | |
CN114817845B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
EP4092544A1 (en) | Method, apparatus and storage medium for deduplicating entity nodes in graph database | |
CN115794742A (zh) | 文件路径数据处理方法、装置、设备及存储介质 | |
CN114995719A (zh) | 列表渲染方法、装置、设备以及存储介质 | |
CN113962549A (zh) | 一种基于电网运行知识的业务流程编排方法及*** | |
CN113361574A (zh) | 数据处理模型的训练方法、装置、电子设备及存储介质 | |
CN114679468B (zh) | 文件传输方法、装置、电子设备及计算机可读存储介质 | |
CN116755714B (zh) | 深度神经网络模型的运行方法、装置、设备和存储介质 | |
CN114780021B (zh) | 副本修复方法、装置、电子设备及存储介质 | |
CN115934181B (zh) | 数据加载方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |