CN114862656B - 基于多gpu的分布式深度学习模型训练代价的获取方法 - Google Patents
基于多gpu的分布式深度学习模型训练代价的获取方法 Download PDFInfo
- Publication number
- CN114862656B CN114862656B CN202210542619.XA CN202210542619A CN114862656B CN 114862656 B CN114862656 B CN 114862656B CN 202210542619 A CN202210542619 A CN 202210542619A CN 114862656 B CN114862656 B CN 114862656B
- Authority
- CN
- China
- Prior art keywords
- operator
- communication
- time cost
- acquiring
- training
- 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
- 238000012549 training Methods 0.000 title claims abstract description 185
- 238000000034 method Methods 0.000 title claims abstract description 99
- 238000013136 deep learning model Methods 0.000 title claims abstract description 66
- 238000004891 communication Methods 0.000 claims description 167
- 238000004364 calculation method Methods 0.000 claims description 88
- 238000004088 simulation Methods 0.000 claims description 49
- 230000008569 process Effects 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 14
- 230000007246 mechanism Effects 0.000 claims description 9
- 235000008694 Humulus lupulus Nutrition 0.000 claims description 4
- 238000004064 recycling Methods 0.000 claims description 3
- 238000013135 deep learning Methods 0.000 abstract description 8
- 238000013473 artificial intelligence Methods 0.000 abstract description 7
- 238000013468 resource allocation Methods 0.000 abstract description 5
- 239000007787 solid Substances 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 12
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 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
- 230000009467 reduction Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003924 mental process Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000013439 planning 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
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 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
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开提供了一种基于多图像处理器GPU的分布式深度学***台资源分配和并行策略的选择提供显著的指导意义。
Description
技术领域
本公开涉及数据处理技术领域,尤其涉及人工智能技术领域,并且更具体地涉及深度学习及云计算技术领域。
背景技术
近年来,随着深度学习等人工智能技术的快速发展,模型参数量和数据量也随之攀升,而且深度学习模型的训练还需要不断地更新迭代参数来提高表达能力,这使得即使是计算机硬件和相应优化算法快速发展的今天,单机训练也已经无法满足需求。这样一来,能够提升模型的训练速度、提高训练的模型的规模的分布式并行训练等分布式深度学习方式便应运而生。
为基于最优的并行策略进行分布式并行训练,往往需要对多个并行优化策略进行分析。然而,相关技术中,尚不存在完善的并行策略获取方法,也就是说,尚不存在完善的基于多GPU(graphics processing unit,图形处理器)的分布式深度学习模型训练代价的获取方法。
因此,如何通过效率、准确性及可靠性较高的基于多GPU的分布式深度学习模型训练代价的获取方法,确保模型能够基于最优的并行策略进行训练,进而提高模型的深度学习效果,已成为了重要的研究方向之一。
发明内容
本公开提供了一种基于多图像处理器GPU的分布式深度学习模型训练代价的获取方法。
根据本公开的一方面,提供了一种基于多图像处理器GPU的分布式深度学习模型训练代价的获取方法,包括:
获取分布式深度学习模型的训练任务的至少一个并行策略;
针对每个所述并行策略,获取执行所述训练任务的多个GPU对应的每个所述算子进行模型训练时的时间代价,并将所有的所述算子的所述时间代价之和作为目标时间代价;
获取每个所述算子进行模型训练时的内存消耗,并将所有的所述内存消耗之和作为目标内存消耗;
根据所述目标内存消耗和所述目标时间代价,获取基于所述并行策略执行训练任务时的训练代价,并根据每个所述并行策略对应的所述训练代价,选取最优并行策略。
根据本公开的另一方面,提供了一种基于多图像处理器GPU的分布式深度学习模型训练代价的获取装置,包括:
第一获取模块,用于获取分布式深度学习模型的训练任务的至少一个并行策略;
第二获取模块,用于针对每个所述并行策略,获取执行所述训练任务的多个GPU对应的每个所述算子进行模型训练时的时间代价,并将所有的所述算子的所述时间代价之和作为目标时间代价;
第三获取模块,用于获取每个所述算子进行模型训练时的内存消耗,并将所有的所述内存消耗之和作为目标内存消耗;
选取模块,用于根据所述目标内存消耗和所述目标时间代价,获取基于所述并行策略执行训练任务时的训练代价,并根据每个所述并行策略对应的所述训练代价,选取最优并行策略。
根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开第一方面所述的基于多图像处理器GPU的分布式深度学习模型训练代价的获取方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开第一方面所述的基于多图像处理器GPU的分布式深度学习模型训练代价的获取方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序在被处理器执行时实现根据本公开第一方面所述的基于多图像处理器GPU的分布式深度学习模型训练代价的获取方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开第一实施例的示意图;
图2是根据本公开第二实施例的示意图;
图3是根据本公开第三实施例的示意图;
图4是根据本公开获取算子输入的示意图;
图5是根据本公开第五实施例的示意图;
图6是根据本公开第六实施例的示意图;
图7是根据本公开第七实施例的示意图;
图8是根据本公开获取通信算子时间的示意图;
图9是根据本公开第九实施例的示意图;
图10是根据本公开第十实施例的示意图;
图11是用来实现本公开实施例的基于多图像处理器GPU的分布式深度学习模型训练代价的获取方法的基于多图像处理器GPU的分布式深度学习模型训练代价的获取装置的框图;
图12是用来实现本公开实施例的基于多图像处理器GPU的分布式深度学习模型训练代价的获取方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
以下对本公开的方案涉及的技术领域进行简要说明:
数据处理(Data Processing),指的是对数据的采集、存储、检索、加工、变换和传输。数据处理的基本目的是从大量的、可能是杂乱无章的、难以理解的数据中抽取并推导出对于某些特定的人们来说是有价值、有意义的数据。
AI(Artificial Intelligence,人工智能),是研究使计算机来模拟人生的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术,也有软件层面的技术。人工智能硬件技术一般包括计算机视觉技术、语音识别技术、自然语言处理技术以及及其学习/深度学习、大数据处理技术、知识图谱技术等几大方面。
DL(Deep Learning,深度学习),是ML(Machine Learning,机器学习)领域中一个新的研究方向。它是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。
云计算(cloud computing),是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的***进行处理和分析这些小程序得到结果并返回给用户。云计算早期,简单地说,就是简单的分布式计算,解决任务分发,并进行计算结果的合并。因而,云计算又称为网格计算。通过这项技术,可以在很短的时间内(几秒钟)完成对数以万计的数据的处理,从而达到强大的网络服务。
下面参考附图描述本公开实施例的一种基于多图像处理器GPU的分布式深度学习模型训练代价的获取方法。
图1是根据本公开第一实施例的示意图。
如图1所示,本实施例提出的基于多图像处理器GPU的分布式深度学习模型训练代价的获取方法,包括如下步骤:
S101、获取分布式深度学习模型的训练任务的至少一个并行策略。
需要说明的是,虽然并行策略的应用使得训练超大模型成为可能,但并行策略复杂多样,因此,实现快速评估分布式并行训练的代价,对资源分配管理和并行策略的选择具有重要意义。
其中,在资源分配管理方面,资源管理平台往往承担着多个任务的运行,通过实际执行训练的方式常需要独占集群资源,根据训练结果再对并行策略进行调优,如此反复容易导致集群利用率低下,在此过程中也耗费了较多的人力和物力。同时,对开发者而言,选择多大的集群规模必须仔细考量,集群规模过小则无法执行实际训练,集群规模过大则会造成资源的浪费,二者都会给开发者带来直接的经济损失。
这样一来,针对组合多样的并行策略,如何根据内存、训练时间等条件综合考虑,确定不同策略组合的不同训练代价,进而选择最适合的并行策略,使分布式训练真正落地可行,已成为了亟待解决的问题。
需要说明的是,相关技术中,在获取最优的并行策略的过程中,往往会面临诸如需要根据不同结构的深度学习模型和使用场景分别进行计算而导致的效率极低的技术问题。
以神经网络层为粒度,计算每一层的代价,累加后得到最终整图代价的方法只能适用于特定结构的神经网络层,例如卷积层等,该种方法不能适用于其他常用模型,如自然语言处理领域中的transformer网络等。
采用实际执行计算算子的时间作为计算时间,该方式虽然简单,但耗时过长,仅适用于给定模型和资源的情况。对于任意模型和任意资源,无法在短时间内给出运行时间,不够通用。有部分技术基于计算算子的输入数据量进行建模,该种方法虽然避免了实际执行方式的耗时长问题,但无法评估模型的运行时间,对平台和开发者的参考价值较小。
通信时间虽然采用建模方式,但绝大部份的建模公式为,其中为通信数据量,为带宽。该种方式过于简单,没有考虑到集合通信算子的底层实现方式,在累加时也没有考虑通信同步的代价,结果往往与真值存在较大误差。
由此,本申请提出一种基于多图像处理器GPU(graphics processing unit,图形处理器)的分布式深度学习模型训练代价的获取方法,能够适用于各种深度学习模型和使用场景,能够在评估多种并行策略的代价的同时,确保较高的准确率。
其中,并行策略,指的是分布式并行训练策略,是分布式深度学习模型(以下简称模型)的训练依据。
需要说明的是,本申请对于并行策略的具体策略不作限定,可以根据实际情况进行选取。目前,分布式并行训练策略,主要包括:数据并行、模型并行、流水线并行和多种并行策略的组合等。
本申请实施例中,可以获取分布式深度学习模型的训练任务的至少一个并行策略,其中,任一并行策略均对于同一个训练任务。
举例而言,针对分布式深度学习模型的训练任务甲,可以获取3个并行策略:并行策略1、并行策略2和并行策略3。
S102、针对每个并行策略,获取执行训练任务的多个GPU对应的每个算子进行模型训练时的时间代价,并将所有的算子的所述时间代价之和作为目标时间代价。
需要说明的是,一般情况下,算子在进行模型训练的过程中产生的代价至少包括时间代价。由此,本申请实施例中,在获取到至少一个并行策略后,可以针对每个并行策略,获取执行训练任务的多个GPU对应的每个算子进行模型训练时的时间代价,并将所有的算子的所述时间代价之和作为目标时间代价。
举例而言,针对并行策略1,其指示的执行训练任务的多个GPU对应的算子为算子1、算子2和算子3,共3个算子,此种情况下,可以分别获取算子1、算子2和算子3进行模型训练时的时间代价分别为t1、t2和t3,并将t1+t2+t3=T1作为目标时间代价。
S103、获取每个算子进行模型训练时的内存消耗,并将所有的内存消耗之和作为目标内存消耗。
需要说明的是,相关技术中,大部分方法没有对内存消耗进行建模,无法判断切分后的计算图能否在实际执行的设备上放置,即可能会超出设备的最大显存,引发内存溢出(Out Of Memory,简称OOM)问题,不能实际执行模型的训练或推理。
其中,OOM问题,指的是应用***中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于能提供的最大内存的问题。
这样一来,极易忽略内存消耗带来的代价,并导致因忽略内存消耗而使得基于并行策略执行训练任务时的训练代价结果准确性较低的技术问题。
由此,本申请中,在获取目标时间代价之后,可以获取每个算子进行模型训练时的内存消耗,并将所有的内存消耗之和作为目标内存消耗。
举例而言,针对算子1、算子2和算子3,此种情况下,可以分别获取算子1、算子2和算子3进行模型训练时的内存消耗分别为m1、m2和m3,并将m1+m2+m3=M1作为目标内存消耗。
S104、根据目标内存消耗和目标时间代价,获取基于并行策略执行训练任务时的训练代价,并根据每个并行策略对应的训练代价,选取最优并行策略。
需要说明的是,本申请中对于根据每个并行策略对应的训练代价,选取最优并行策略的具体方式不作限定,可以根据实际情况进行设定。
作为一种可能的实现方式,可以将训练代价进行排序,并将训练代价最小的并行策略作为最优并行策略。
举例而言,针对并行策略1、并行策略2和并行策略3,其对应的训练代价分别为cost1、cost2和cost3,且cost1>cost2>cost3,此种情况下,可以将cost3对应的并行策略3作为最优并行策略。
根据本公开实施例的基于多图像处理器GPU的分布式深度学***台,提供较为准确的分布式训练代价获取结果以及较为准确的最优并行策略,为平台资源分配和并行策略的选择提供显著的指导意义。
需要说明的是,相关技术中,在计算算子的时间代价时,往往仅考虑算子的计算时间代价,忽略了算子可能存在的通信时间代价。由此,本申请中,在试图获取执行训练任务的多个GPU对应的每个算子进行模型训练时的时间代价时,可以根据算子在分布式场景下的实际情况,即实际执行的任务采用不同的获取策略。
作为一种可能的实现方式,如图2所示,在上述实施例的基础上,上述步骤S102中获取执行训练任务的多个GPU对应的每个算子进行模型训练时的时间代价的具体过程,包括以下步骤:
S201、确定算子在分布式场景下执行的任务为计算任务,则获取算子进行模型训练时的计算时间代价作为时间代价。
本申请实施例中,可以获取算子在分布式场景下执行的任务,并在确定算子在分布式场景下执行的任务为计算任务时,仅获取算子进行模型训练时的计算时间代价作为所述时间代价。
举例而言,针对算子1,其在分布式场景下执行的任务为计算任务,说明算子1在模型训练过程中仅执行计算任务,此种情况下,可以仅获取算子进行模型训练时的计算时间代价作为所述时间代价。
S202、确定算子在分布式场景下执行的任务为计算任务和通信任务,则获取算子进行模型训练时的计算时间代价,并获取算子进行模型训练时对应的通信时间代价,以将计算时间代价与通信时间代价之和作为时间代价。
本申请实施例中,在确定算子在分布式场景下执行的任务为计算任务和通信任务时,在如步骤S201中获取算子进行模型训练时的计算时间代价的基础上,获取算子进行模型训练时对应的通信时间代价,以将计算时间代价与通信时间代价之和作为时间代价。
举例而言,针对算子2,其在分布式场景下执行的任务为计算任务和通信任务,说明算子2在模型训练过程中除执行计算任务以外,还需要***对应的通信算子进行通信任务,此种情况下,可以将计算时间代价与通信时间代价之和作为时间代价。
下面分别针对获取算子进行模型训练时的计算时间代价和通信时间代价进行解释说明。
需要说明的是,若算子在分布式场景下执行的任务为计算任务和通信任务,则在该算子的目标时间代价获取过程中,计算时间代价的获取方式与在分布式场景下执行的任务为计算任务的算子的计算时间代价的获取方式均可以包括以下步骤。
针对获取算子进行模型训练时的计算时间代价,作为一种可能的实现方式,如图3所示,在上述实施例的基础上,具体包括以下步骤:
S301、获取算子的输入,其中,输入为算子在模型训练过程中的执行内容。
举例而言,如图4所示,以Matmul(矩阵相乘)算子为例,其输入可以为X和Y,且X和Y均为4*4的输入。
S302、获取算子的属性,并根据属性和输入,确定计算时间代价。
其中,算子的属性,可以为算子的部分特殊属性,例如,算子的属性可以为转置属性,其中,转置属性用于表示需要将输入进行转置。
进一步地,在获取算子的属性后,可以根据属性和输入,确定计算时间代价。
需要说明的是,本申请中对于根据属性和输入,确定计算时间代价的具体方式不作限定,可以根据实际情况进行设定。
作为一种可能的实现方式,在根据属性和输入,确定计算时间代价时,可以将输入和属性输入至第一算子模拟模型中,由第一算子模拟模型执行算子对应的模拟计算,以获取算子执行执行内容时的计算时间代价。
需要说明的是,区别于相关技术,本申请在获取算子的计算时间代价时,为了在任意资源和任意模型下均能够快速评估分布式并行策略的代价,可以首先对每个算子采样不同输入下的执行时间,采样样本数据量约为5000条,并按目标比例,例如8:1:1的比例,划分成训练集、验证集、测试集。进一步地,对训练集使用3层全连接网络,损失函数为均方误差进行训练,得到该算子的神经网络建模,即得到第一算子模拟模型。此种情况下,可以把算子的输入作为神经网络的输入,得到该算子在该种输入下的计算时间代价。
需要说明的是,本申请中,在获取算子的时间代价时,可以根据算子的计算执行顺序进行获取。
作为一种可能的实现方式,如图5所示,在上述实施例的基础上,具体包括以下步骤:
S501、获取算子对应的串行计算策略,并根据串行计算策略,获取每个算子的计算执行顺序。
其中,串行计算策略,可以为用户输入的串行计算图,串行计算图中携带有每个算子的计算执行顺序。
S502、根据计算执行顺序,获取每个算子的时间代价。
本申请实施例中,在获取计算执行顺序后,可以根据计算执行顺序,获取每个算子的时间代价。
举例而言,针对算子1、算子2和算子3,且3个算子的计算执行顺序为算子1至算子2至算子3,此种情况下,可以先获取算子1的时间代价,再获取算子2的时间代价,最后获取获取算子3的时间代价。
针对获取算子进行模型训练时的通信时间代价,作为一种可能的实现方式,如图6所示,在上述实施例的基础上,具体包括以下步骤:
S601、确定算子对应的通信算子。
需要说明的是,为了保证分布式与串行的计算等价性,针对在分布式场景下执行的任务为计算任务和通信任务的算子,需要在***对应正确大小的算子之后再***对应的通信算子。例如,在***对应正确大小的Matmul算子后,需要再***AllreduceSum通信算子。
其中,AllreduceSum是Allreduce中的一种操作。reduce称为规约运算,是一系列运算操作的统称,细分来说包括SUM(求和)、MIN(取最小值)、MAX(取最大值)等;reduce意为减少/精简,因为其操作在每个进程上获取一个输入元素数组,通过执行操作后,将得到精简的更少的元素;all reduce则是在所有的节点进程上都应用同样的reduce操作。
S602、获取参与分布式深度学习模型进行模型训练时的所有的GPU的目标集群信息。
需要说明的是,相关技术中,目标集群信息仅包括以下信息中的至少一个:时间T,其中,T=α+nβ;延迟α,即初始化时间,其中,α=αbase+α_hw;传送消息byte数n;每个byte的传输时间β,其中,β取所有参与通信链路中的最大值;基础延迟α_base,其中,α_base和组网结构有关,和进程数和节点数无关;硬件延迟α_hw,其中,α_hw和组网结构、进程数、节点数相关;外部连接硬件延迟α_interHw,其中,α_interHw和组网结构、进程数、节点数相关;内部连接硬件延迟α_intraHw,其中,α_intraHw和组网结构、进程数、节点数相关;进程数N_ranks;节点数N_nodes。
区别于相关技术,本申请中的目标集群信息在上述信息的基础上,综合考虑了硬件延迟、算子底层实现、设备连接等因素的影响,因此,本申请实施例中,目标集群信息在上述信息的基础上还加入了交换机延迟α_switch和跳步总数h。
S603、根据目标集群信息和通信算子,获取通信时间代价。
需要说明的是,本申请中,为了综合考虑具有各种集合属性的通信算子的通信时间代价,在根据目标集群信息和通信算子,获取通信时间代价时,可以根据不同通信算子的不同集合属性进行获取。
作为一种可能的实现方式,如图7所示,在上述实施例的基础上,上述步骤S603中根据目标集群信息和通信算子,获取通信时间代价的具体过程,包括以下步骤:
S701、获取通信算子的集合属性。
其中,集合属性,可以包括集合通信算子与非集合通信算子。
S702、响应于集合属性指示通信算子为集合通信算子,则获取通信算子的通信方式,并根据通信方式、目标集群信息和通信算子,获取第一子通信时间代价。
其中,通信方式,可以包括但不限于以下任一方式:Allreduce、Allgather、Broadcast等。
其中,Allreduce,是在所有的节点进程上都应用同样的reduce操作;Allgather,是一种多对多的收集操作;Broadcast,是一种一对多的广播操作。
作为一种可能的实现方式,可以将通信方式、目标集群信息和通信算子输入第二算子模拟模型中,由第二算子模拟模型执行通信算子对应的模拟通信,以获取第一子通信时间代价。
其中,第二算子模拟模型可以根据通信方式,选取对应的通信时间计算公式,并根据目标集群信息和通信算子进行计算。
举例而言,可以通过表1所示的表格,选取对应的通信时间计算公式。
表1
S703、获取参与分布式深度学习模型进行模型训练时的每个GPU对应的进程的完成时间,并根据完成时间,获取第二子通信时间代价。
需要说明的是,本申请除了算子的分布式执行逻辑,还将通信同步情形考虑在内,更加贴近分布式运行的真实场景,有效提高代价模型的准确度。
举例而言,如图8所示,当遇到集合通信算子时,在计算此刻该通信算子的进程组内不同进程上的代价之前,需对进程组内所有进程的时间取最大值作为所有进程的当前时间,以此来模拟通信同步情形,最后与通信算子时间进行累加作为执行该通信算子后的时间。
其中,针对每个进程rank,当前时间即为将每个rank的完成时间,rank的代价是计算代价和通信代价的累积。
由此,本申请实施例中,在根据完成时间,获取第二子通信时间代价时,可以从所有的完成时间中选取完成时间最大值作为第二子通信时间代价。
举例而言,针对以下3个完成时间:完成时间to’、t1’和t2’,此种情况下,可以将前述3个完成时间中的最大值max(to’,t1’,t2’)作为第二子通信时间代价。
S704、将第一子通信时间代价和第二子通信时间代价之和作为通信时间代价。
举例而言,针对算子1,其第一子通信时间代价为tcomm、第二子通信时间代价为max(to’,t1’,t2’),此种情况下,通信时间代价T通信=max(to’,t1’,t2’)+tcomm。
需要说明的是,本申请中,在确定通信算子的集合属性非集合通信类型时,则可以直接根据目标集群信息和通信算子,获取通信时间代价。
根据本公开实施例的基于多图像处理器GPU的分布式深度学习模型训练代价的获取方法,可以通过全面考虑到硬件延迟、算子底层实现、设备连接等因素,与通信量与带宽之比相比,能够大幅提高通信算子时间建模的准确性。
进一步地,本申请中在获取每个算子进行模型训练时的内存消耗时,作为一种可能的实现方式,如图9所示,在上述实施例的基础上,上述步骤S103中获取每个算子进行模型训练时的内存消耗的具体过程,包括以下步骤:
S901、确定算子为首位算子,则获取首位算子的首位输入,并根据首位输入和首位算子,确定首位算子执行对应的执行内容时的内存消耗。
需要说明的是,深度学习模型内存消耗主要来源于模型参数和算子产生的临时张量。一般而言,算子产生的输出会作为下一个算子的输入。
由此,本申请实施例中,可以确定算子为首位算子,则获取首位算子的首位输入,并根据首位输入和首位算子,确定首位算子执行对应的执行内容时的内存消耗。
S902、确定算子非首位算子,则获取当前序位算子的当前序位输入以及上一位算子的内存消耗,并根据上一位算子的内存消耗、当前序位输入和当前序位算子,确定当前序位算子执行对应的执行内容时的内存消耗。
需要说明的是,本申请实施例中,可以根据算子的输入进行建模,每个算子消耗的内存为算子的输入张量数据量乘以数据类型,对每个算子消耗的内存进行累加获得峰值内存代价。
可选地,可以将首位输入和首位算子输入至第三算子模拟模型中,由第三算子模拟模型执行首位算子对应的模拟计算,以获取首位算子执行执行内容时的内存消耗。
可选地,可以将上一位算子的内存消耗、当前序位输入和当前序位算子输入至第三算子模拟模型中,由第三算子模拟模型执行当前序位算子对应的模拟计算,以获取当前序位算子执行执行内容时的内存消耗。
进一步地,针对具有垃圾回收(Garbage Collection,简称GC)机制的分布式深度学习模型,还可以根据消耗和释放,动态地获取每个算子的内存消耗。
作为一种可能的实现方式,如图10所示,在上述实施例的基础上,具体包括以下步骤:
S1001、确定分布式深度学习模型具有垃圾回收机制,则获取每个算子的动态内存消耗和动态内存释放。
本申请实施例中,可以结合具体框架的GC机制,获得执行每一算子时的动态内存。
其中,GC机制,指的是一种自动的存储管理机制。当一些被占用的内存不再需要时,将其释放,以让出空间。
S1002、将动态内存消耗和动态内存释放之差作为每个算子的内存消耗。
举例而言,针对算子1,获取到动态内存消耗N为a、动态内存释放为b,此种情况下,算子1的内存消耗N=a-b。
根据本公开实施例的基于多图像处理器GPU的分布式深度学习模型训练代价的获取方法,可以能够通过综合考虑算子的时间代价和内存消耗,更加准确地获取并行策略的训练代价,进而为选取最优并行策略奠定了坚实的基础。进一步地,针对具有GC机制的模型,本申请同时支持内存消耗的动态获取方式,进一步确定了算子基于并行策略执行训练任务时的训练代价获取结果的准确性。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
与上述几种实施例提供的基于多图像处理器GPU的分布式深度学习模型训练代价的获取方法相对应,本公开的一个实施例还提供一种基于多图像处理器GPU的分布式深度学习模型训练代价的获取装置,由于本公开实施例提供的基于多图像处理器GPU的分布式深度学习模型训练代价的获取装置与上述几种实施例提供的基于多图像处理器GPU的分布式深度学习模型训练代价的获取方法相对应,因此在基于多图像处理器GPU的分布式深度学习模型训练代价的获取方法的实施方式也适用于本实施例提供的基于多图像处理器GPU的分布式深度学习模型训练代价的获取装置,在本实施例中不再详细描述。
图11是根据本公开一个实施例的基于多图像处理器GPU的分布式深度学习模型训练代价的获取装置的结构示意图。
如图11所示,该基于多图像处理器GPU的分布式深度学习模型训练代价的获取装置1100,包括:第一获取模块1110、第二获取模块1120、第三获取模块1130和选取模块1140。其中:
第一获取模块1110,用于获取分布式深度学习模型的训练任务的至少一个并行策略;
第二获取模块1120,用于针对每个所述并行策略,获取执行所述训练任务的多个GPU对应的每个所述算子进行模型训练时的时间代价,并将所有的所述算子的所述时间代价之和作为目标时间代价;
第三获取模块1130,用于获取每个所述算子进行模型训练时的内存消耗,并将所有的所述内存消耗之和作为目标内存消耗;
选取模块1140,用于根据所述目标内存消耗和所述目标时间代价,获取基于所述并行策略执行训练任务时的训练代价,并根据每个所述并行策略对应的所述训练代价,选取最优并行策略。
其中,第二获取模块1120,还用于:
确定所述算子在分布式场景下执行的任务为计算任务,则获取所述算子进行模型训练时的计算时间代价作为所述时间代价;或者,
确定所述算子在分布式场景下执行的任务为计算任务和通信任务,则获取所述算子进行模型训练时的计算时间代价,并获取所述算子进行模型训练时对应的通信时间代价,以将所述计算时间代价与所述通信时间代价之和作为所述时间代价。
其中,第二获取模块1120,还用于:
获取所述算子的输入,其中,所述输入为所述算子在模型训练过程中的执行内容;
获取所述算子的属性,并根据所述属性和所述输入,确定所述计算时间代价。
其中,第二获取模块1120,还用于:
将所述输入和所述属性输入至第一算子模拟模型中,由所述第一算子模拟模型执行所述算子对应的模拟计算,以获取所述算子执行所述执行内容时的所述计算时间代价。
其中,第二获取模块1120,还用于:
获取所述算子对应的串行计算策略,并根据所述串行计算策略,获取每个所述算子的计算执行顺序;
根据所述计算执行顺序,获取每个所述算子的所述时间代价。
其中,第二获取模块1120,还用于:
确定所述算子对应的通信算子;
获取参与所述分布式深度学习模型进行模型训练时的所有的GPU的目标集群信息;
根据所述目标集群信息和所述通信算子,获取所述通信时间代价。
其中,第二获取模块1120,还用于:
获取所述通信算子的集合属性;
响应于所述集合属性指示所述通信算子为集合通信算子,则获取所述通信算子的通信方式,并根据所述通信方式、所述目标集群信息和所述通信算子,获取第一子通信时间代价;
获取参与所述分布式深度学习模型进行模型训练时的每个所述GPU对应的进程的完成时间,并根据所述完成时间,获取第二子通信时间代价;
将所述第一子通信时间代价和所述第二子通信时间代价之和作为所述通信时间代价。
其中,第二获取模块1120,还用于:
将所述通信方式、所述目标集群信息和所述通信算子输入第二算子模拟模型中,由所述第二算子模拟模型执行所述通信算子对应的模拟通信,以获取所述第一子通信时间代价。
其中,第二获取模块1120,还用于:
从所有的所述完成时间中选取完成时间最大值作为所述第二子通信时间代价。
其中,所述目标集群信息至少包括以下之一:交换机延迟以及跳步总数。
其中,第三获取模块1130,还用于:
确定所述算子为首位算子,则获取所述首位算子的首位输入,并根据所述首位输入和所述首位算子,确定所述首位算子执行对应的执行内容时的内存消耗;或者,
确定所述算子非首位算子,则获取当前序位算子的当前序位输入以及上一位算子的内存消耗,并根据所述上一位算子的内存消耗、所述当前序位输入和所述当前序位算子,确定所述当前序位算子执行对应的执行内容时的内存消耗。
其中,第三获取模块1130,还用于:
将所述首位输入和所述首位算子输入至第三算子模拟模型中,由所述第三算子模拟模型执行所述首位算子对应的模拟计算,以获取所述首位算子执行所述执行内容时的内存消耗;或者,
将所述上一位算子的内存消耗、所述当前序位输入和所述当前序位算子输入至所述第三算子模拟模型中,由所述第三算子模拟模型执行所述当前序位算子对应的模拟计算,以获取所述当前序位算子执行所述执行内容时的内存消耗。
其中,第三获取模块1130,还用于:
确定所述分布式深度学习模型具有垃圾回收机制,则获取每个所述算子的动态内存消耗和动态内存释放;
将所述动态内存消耗和所述动态内存释放之差作为每个所述算子的所述内存消耗。
根据本公开实施例的基于多图像处理器GPU的分布式深度学***台,提供较为准确的分布式训练代价获取结果以及较为准确的最优并行策略,为平台资源分配和并行策略的选择提供显著的指导意义。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图12示出了可以用来实施本公开的实施例的示例电子设备1200的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图12所示,设备1200包括计算单元1201,其可以根据存储在只读存储器(ROM)1202中的计算机程序或者从存储单元1208加载到随机访问存储器(RAM)1203中的计算机程序,来执行各种适当的动作和处理。在RAM 1203中,还可存储设备1200操作所需的各种程序和数据。计算单元1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
设备1200中的多个部件连接至I/O接口1205,包括:输入单元1206,例如键盘、鼠标等;输出单元1207,例如各种类型的显示器、扬声器等;存储单元1208,例如磁盘、光盘等;以及通信单元1209,例如网卡、调制解调器、无线通信收发机等。通信单元1209允许设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1201可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1201的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1201执行上文所描述的各个方法和处理,例如基于多图像处理器GPU的分布式深度学习模型训练代价的获取方法。例如,在一些实施例中,基于多图像处理器GPU的分布式深度学习模型训练代价的获取方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1208。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1202和/或通信单元1209而被载入和/或安装到设备1200上。当计算机程序加载到RAM 1203并由计算单元1201执行时,可以执行上文描述的基于多图像处理器GPU的分布式深度学习模型训练代价的获取方法的一个或多个步骤。备选地,在其他实施例中,计算单元1201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于多图像处理器GPU的分布式深度学习模型训练代价的获取方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网以及区块链网络。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式***的服务器,或者是结合了区块链的服务器。
本公开还提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时,实现如上所述的基于多图像处理器GPU的分布式深度学习模型训练代价的获取方法。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (26)
1.一种基于多图像处理器GPU的分布式深度学习模型训练代价的获取方法,包括:
获取分布式深度学习模型的训练任务的至少一个并行策略,所述并行策略为分布式并行训练策略;
针对每个所述并行策略,获取执行所述训练任务的多个GPU对应的每个算子进行模型训练时的时间代价,并将所有的所述算子的所述时间代价之和作为目标时间代价;
获取每个所述算子进行模型训练时的内存消耗,并将所有的所述内存消耗之和作为目标内存消耗;
根据所述目标内存消耗和所述目标时间代价,获取基于所述并行策略执行训练任务时的训练代价,并根据每个所述并行策略对应的所述训练代价,选取最优并行策略;
其中,所述获取执行所述训练任务的多个GPU对应的每个所述算子进行模型训练时的时间代价,包括:
确定所述算子在分布式场景下执行的任务为计算任务和通信任务,则获取所述算子进行模型训练时的计算时间代价,并获取所述算子进行模型训练时对应的通信时间代价,以将所述计算时间代价与所述通信时间代价之和作为所述时间代价;
其中,所述获取所述算子进行模型训练时的通信时间代价,包括:
确定所述算子对应的通信算子;
获取参与所述分布式深度学习模型进行模型训练时的所有的GPU的目标集群信息;
根据所述目标集群信息和所述通信算子,获取所述通信时间代价。
2.根据权利要求1所述的方法,其中,所述获取执行所述训练任务的多个GPU对应的每个所述算子进行模型训练时的时间代价,还包括:
确定所述算子在分布式场景下执行的任务为计算任务,则获取所述算子进行模型训练时的计算时间代价作为所述时间代价。
3.根据权利要求2所述的方法,其中,所述获取所述算子进行模型训练时的计算时间代价,包括:
获取所述算子的输入,其中,所述输入为所述算子在模型训练过程中的执行内容;
获取所述算子的属性,并根据所述属性和所述输入,确定所述计算时间代价。
4.根据权利要求3所述的方法,其中,所述根据所述属性和所述输入,确定所述计算时间代价,包括:
将所述输入和所述属性输入至第一算子模拟模型中,由所述第一算子模拟模型执行所述算子对应的模拟计算,以获取所述算子执行所述执行内容时的所述计算时间代价。
5.根据权利要求2-4中任一项所述的方法,其中,所述方法还包括:
获取所述算子对应的串行计算策略,并根据所述串行计算策略,获取每个所述算子的计算执行顺序;
根据所述计算执行顺序,获取每个所述算子的所述时间代价。
6.根据权利要求1所述的方法,其中,所述根据所述目标集群信息和所述通信算子,获取所述通信时间代价,包括:
获取所述通信算子的集合属性;
响应于所述集合属性指示所述通信算子为集合通信算子,则获取所述通信算子的通信方式,并根据所述通信方式、所述目标集群信息和所述通信算子,获取第一子通信时间代价;
获取参与所述分布式深度学习模型进行模型训练时的每个所述GPU对应的进程的完成时间,并根据所述完成时间,获取第二子通信时间代价;
将所述第一子通信时间代价和所述第二子通信时间代价之和作为所述通信时间代价。
7.根据权利要求6所述的方法,其中,所述根据所述通信方式、所述目标集群信息和所述通信算子,获取第一子通信时间代价,包括:
将所述通信方式、所述目标集群信息和所述通信算子输入第二算子模拟模型中,由所述第二算子模拟模型执行所述通信算子对应的模拟通信,以获取所述第一子通信时间代价。
8.根据权利要求7所述的方法,其中,所述根据所述完成时间,获取第二子通信时间代价,包括:
从所有的所述完成时间中选取完成时间最大值作为所述第二子通信时间代价。
9.根据权利要求6或7所述的方法,其中,所述目标集群信息至少包括以下之一:交换机延迟以及跳步总数。
10.根据权利要求1所述的方法,其中,所述获取每个所述算子进行模型训练时的内存消耗,包括:
确定所述算子为首位算子,则获取所述首位算子的首位输入,并根据所述首位输入和所述首位算子,确定所述首位算子执行对应的执行内容时的内存消耗;或者,
确定所述算子非首位算子,则获取当前序位算子的当前序位输入以及上一位算子的内存消耗,并根据所述上一位算子的内存消耗、所述当前序位输入和所述当前序位算子,确定所述当前序位算子执行对应的执行内容时的内存消耗。
11.根据权利要求10所述的方法,其中,所述方法还包括:
将所述首位输入和所述首位算子输入至第三算子模拟模型中,由所述第三算子模拟模型执行所述首位算子对应的模拟计算,以获取所述首位算子执行所述执行内容时的内存消耗;或者,
将所述上一位算子的内存消耗、所述当前序位输入和所述当前序位算子输入至所述第三算子模拟模型中,由所述第三算子模拟模型执行所述当前序位算子对应的模拟计算,以获取所述当前序位算子执行所述执行内容时的内存消耗。
12.根据权利要求10或11所述的方法,其中,所述方法还包括:
确定所述分布式深度学习模型具有垃圾回收机制,则获取每个所述算子的动态内存消耗和动态内存释放;
将所述动态内存消耗和所述动态内存释放之差作为每个所述算子的所述内存消耗。
13.一种基于多图像处理器GPU的分布式深度学习模型训练代价的获取装置,包括:
第一获取模块,用于获取分布式深度学习模型的训练任务的至少一个并行策略,所述并行策略为分布式并行训练策略;
第二获取模块,用于针对每个所述并行策略,获取执行所述训练任务的多个GPU对应的每个算子进行模型训练时的时间代价,并将所有的所述算子的所述时间代价之和作为目标时间代价;
第三获取模块,用于获取每个所述算子进行模型训练时的内存消耗,并将所有的所述内存消耗之和作为目标内存消耗;
选取模块,用于根据所述目标内存消耗和所述目标时间代价,获取基于所述并行策略执行训练任务时的训练代价,并根据每个所述并行策略对应的所述训练代价,选取最优并行策略;
其中,所述第二获取模块,还用于:确定所述算子在分布式场景下执行的任务为计算任务和通信任务,则获取所述算子进行模型训练时的计算时间代价,并获取所述算子进行模型训练时对应的通信时间代价,以将所述计算时间代价与所述通信时间代价之和作为所述时间代价;
其中,获取所述算子进行模型训练时对应的通信时间代价,包括:
确定所述算子对应的通信算子;获取参与所述分布式深度学习模型进行模型训练时的所有的GPU的目标集群信息;根据所述目标集群信息和所述通信算子,获取所述通信时间代价。
14.根据权利要求13所述的装置,其中,所述第二获取模块,还用于:
确定所述算子在分布式场景下执行的任务为计算任务,则获取所述算子进行模型训练时的计算时间代价作为所述时间代价。
15.根据权利要求14所述的装置,其中,所述第二获取模块,还用于:
获取所述算子的输入,其中,所述输入为所述算子在模型训练过程中的执行内容;
获取所述算子的属性,并根据所述属性和所述输入,确定所述计算时间代价。
16.根据权利要求15所述的装置,其中,所述第二获取模块,还用于:
将所述输入和所述属性输入至第一算子模拟模型中,由所述第一算子模拟模型执行所述算子对应的模拟计算,以获取所述算子执行所述执行内容时的所述计算时间代价。
17.根据权利要求14-16中任一项所述的装置,其中,所述第二获取模块,还用于:
获取所述算子对应的串行计算策略,并根据所述串行计算策略,获取每个所述算子的计算执行顺序;
根据所述计算执行顺序,获取每个所述算子的所述时间代价。
18.根据权利要求13所述的装置,其中,所述第二获取模块,还用于:
获取所述通信算子的集合属性;
响应于所述集合属性指示所述通信算子为集合通信算子,则获取所述通信算子的通信方式,并根据所述通信方式、所述目标集群信息和所述通信算子,获取第一子通信时间代价;
获取参与所述分布式深度学习模型进行模型训练时的每个所述GPU对应的进程的完成时间,并根据所述完成时间,获取第二子通信时间代价;
将所述第一子通信时间代价和所述第二子通信时间代价之和作为所述通信时间代价。
19.根据权利要求18所述的装置,其中,所述第二获取模块,还用于:
将所述通信方式、所述目标集群信息和所述通信算子输入第二算子模拟模型中,由所述第二算子模拟模型执行所述通信算子对应的模拟通信,以获取所述第一子通信时间代价。
20.根据权利要求19所述的装置,其中,所述第二获取模块,还用于:
从所有的所述完成时间中选取完成时间最大值作为所述第二子通信时间代价。
21.根据权利要求18或19所述的装置,其中,所述目标集群信息至少包括以下之一:交换机延迟以及跳步总数。
22.根据权利要求13所述的装置,其中,所述第三获取模块,还用于:
确定所述算子为首位算子,则获取所述首位算子的首位输入,并根据所述首位输入和所述首位算子,确定所述首位算子执行对应的执行内容时的内存消耗;或者,
确定所述算子非首位算子,则获取当前序位算子的当前序位输入以及上一位算子的内存消耗,并根据所述上一位算子的内存消耗、所述当前序位输入和所述当前序位算子,确定所述当前序位算子执行对应的执行内容时的内存消耗。
23.根据权利要求22所述的装置,其中,所述第三获取模块,还用于:
将所述首位输入和所述首位算子输入至第三算子模拟模型中,由所述第三算子模拟模型执行所述首位算子对应的模拟计算,以获取所述首位算子执行所述执行内容时的内存消耗;或者,
将所述上一位算子的内存消耗、所述当前序位输入和所述当前序位算子输入至所述第三算子模拟模型中,由所述第三算子模拟模型执行所述当前序位算子对应的模拟计算,以获取所述当前序位算子执行所述执行内容时的内存消耗。
24.根据权利要求22或23所述的装置,其中,所述第三获取模块,还用于:
确定所述分布式深度学习模型具有垃圾回收机制,则获取每个所述算子的动态内存消耗和动态内存释放;
将所述动态内存消耗和所述动态内存释放之差作为每个所述算子的所述内存消耗。
25.一种电子设备,其特征在于,包括处理器和存储器;
其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如权利要求1-12中任一项所述的方法。
26.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210542619.XA CN114862656B (zh) | 2022-05-18 | 2022-05-18 | 基于多gpu的分布式深度学习模型训练代价的获取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210542619.XA CN114862656B (zh) | 2022-05-18 | 2022-05-18 | 基于多gpu的分布式深度学习模型训练代价的获取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114862656A CN114862656A (zh) | 2022-08-05 |
CN114862656B true CN114862656B (zh) | 2023-05-05 |
Family
ID=82640151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210542619.XA Active CN114862656B (zh) | 2022-05-18 | 2022-05-18 | 基于多gpu的分布式深度学习模型训练代价的获取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114862656B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115660049B (zh) * | 2022-11-02 | 2023-07-25 | 北京百度网讯科技有限公司 | 模型处理方法、装置、电子设备以及存储介质 |
CN116187426B (zh) * | 2022-11-09 | 2024-04-19 | 北京百度网讯科技有限公司 | 深度学习模型的模型参数多流广播方法及其装置 |
CN115829053B (zh) * | 2022-11-25 | 2023-09-19 | 北京百度网讯科技有限公司 | 模型运行策略确定方法、装置、电子设备以及存储介质 |
CN116151374B (zh) * | 2022-11-29 | 2024-02-13 | 北京百度网讯科技有限公司 | 分布式模型推理方法、装置、设备、存储介质以及程序产品 |
CN115878332B (zh) * | 2023-02-14 | 2023-05-26 | 北京燧原智能科技有限公司 | 深度学习网络中的内存资源分配方法、装置、设备及介质 |
CN116382599B (zh) * | 2023-06-07 | 2023-08-29 | 之江实验室 | 一种面向分布式集群的任务执行方法、装置、介质及设备 |
CN117114091B (zh) * | 2023-10-25 | 2024-03-05 | 深圳开鸿数字产业发展有限公司 | 基于联邦学习的计算图处理方法、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112766502A (zh) * | 2021-02-27 | 2021-05-07 | 上海商汤智能科技有限公司 | 基于分布式通信的神经网络训练方法、装置及存储介质 |
CN113128702A (zh) * | 2021-04-15 | 2021-07-16 | 杭州电子科技大学 | 一种基于强化学习的神经网络自适应分布式并行训练方法 |
WO2021195989A1 (en) * | 2020-03-31 | 2021-10-07 | Alibaba Group Holding Limited | Parallel method based on hybrid architecture in distributed training |
CN113762512A (zh) * | 2021-11-10 | 2021-12-07 | 北京航空航天大学杭州创新研究院 | 分布式模型训练方法、***及相关装置 |
CN114021733A (zh) * | 2021-09-30 | 2022-02-08 | 苏州浪潮智能科技有限公司 | 模型训练优化方法、装置、计算机设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220044112A1 (en) * | 2020-08-10 | 2022-02-10 | Facebook, Inc. | Performing Synchronization in the Background for Highly Scalable Distributed Training |
CN113961351B (zh) * | 2021-10-28 | 2022-12-30 | 北京百度网讯科技有限公司 | 深度学习模型的分布式训练方法、装置、设备及存储介质 |
CN114186633B (zh) * | 2021-12-10 | 2023-04-07 | 北京百度网讯科技有限公司 | 模型的分布式训练方法、装置、设备以及存储介质 |
-
2022
- 2022-05-18 CN CN202210542619.XA patent/CN114862656B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021195989A1 (en) * | 2020-03-31 | 2021-10-07 | Alibaba Group Holding Limited | Parallel method based on hybrid architecture in distributed training |
CN112766502A (zh) * | 2021-02-27 | 2021-05-07 | 上海商汤智能科技有限公司 | 基于分布式通信的神经网络训练方法、装置及存储介质 |
CN113128702A (zh) * | 2021-04-15 | 2021-07-16 | 杭州电子科技大学 | 一种基于强化学习的神经网络自适应分布式并行训练方法 |
CN114021733A (zh) * | 2021-09-30 | 2022-02-08 | 苏州浪潮智能科技有限公司 | 模型训练优化方法、装置、计算机设备及存储介质 |
CN113762512A (zh) * | 2021-11-10 | 2021-12-07 | 北京航空航天大学杭州创新研究院 | 分布式模型训练方法、***及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114862656A (zh) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114862656B (zh) | 基于多gpu的分布式深度学习模型训练代价的获取方法 | |
US11675940B2 (en) | Generating integrated circuit floorplans using neural networks | |
EP3446260B1 (en) | Memory-efficient backpropagation through time | |
AU2021240155A9 (en) | Control Pulse Generation Method, Apparatus, System, Device And Storage Medium | |
AU2021240156B2 (en) | Quantum Control Pulse Generation Method And Apparatus, Device, And Storage Medium | |
CN110366734A (zh) | 优化神经网络架构 | |
CN113821332B (zh) | 自动机器学习***效能调优方法、装置、设备及介质 | |
US20230222000A1 (en) | Recommendations for scheduling jobs on distributed computing devices | |
US9053263B2 (en) | Scheduling discrete event simulation | |
CN111753983A (zh) | 神经网络模型的定制化方法、***、设备和存储介质 | |
CN114820279B (zh) | 基于多gpu的分布式深度学习方法、装置及电子设备 | |
US11651198B2 (en) | Data processing method and apparatus for neural network | |
CN111145076A (zh) | 数据并行化处理方法、***、设备及存储介质 | |
CN118428455A (zh) | 增强神经网络 | |
CN114661571B (zh) | 模型评测方法、装置、电子设备和存储介质 | |
CN115186738A (zh) | 模型训练方法、装置和存储介质 | |
AU2015101031A4 (en) | System and a method for modelling the performance of information systems | |
CN113570067A (zh) | 分布式***的同步方法、装置及程序产品 | |
CN117827619B (zh) | 异构算力的耗时预测仿真方法、装置、设备、介质及*** | |
CN111679924A (zh) | 构件化软件***可靠性仿真方法、装置及电子设备 | |
CN117273115B (zh) | 一种反向计算图的静态生成方法、装置、设备及介质 | |
CN112148285B (zh) | 一种界面设计方法、装置、电子设备及存储介质 | |
US10902174B1 (en) | Power and ground mesh modeling for placement in circuit design | |
KR20230087310A (ko) | 인공지능 기반 클라우드 학습 서비스 장치 및 방법 | |
CN115759260A (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 |