CN114021733B - 模型训练优化方法、装置、计算机设备及存储介质 - Google Patents
模型训练优化方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN114021733B CN114021733B CN202111159790.4A CN202111159790A CN114021733B CN 114021733 B CN114021733 B CN 114021733B CN 202111159790 A CN202111159790 A CN 202111159790A CN 114021733 B CN114021733 B CN 114021733B
- Authority
- CN
- China
- Prior art keywords
- time
- stage
- training
- thread
- model
- 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 210
- 238000000034 method Methods 0.000 title claims abstract description 112
- 238000005457 optimization Methods 0.000 title claims abstract description 44
- 238000012545 processing Methods 0.000 claims abstract description 37
- 238000004364 calculation method Methods 0.000 claims description 49
- 238000004891 communication Methods 0.000 claims description 28
- 230000015654 memory Effects 0.000 claims description 21
- 238000004458 analytical method Methods 0.000 abstract description 22
- 238000013473 artificial intelligence Methods 0.000 abstract description 9
- 238000004590 computer program Methods 0.000 description 26
- 238000013135 deep learning Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 9
- 239000002699 waste material Substances 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
-
- 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
-
- 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
Abstract
本发明公开了一种模型训练优化方法、装置、计算机设备及存储介质,适用于人工智能技术领域。该方法将模型训练分为文件名读取阶段、数据读取解析阶段和训练阶段,该方法包括:获取待训练模型的批处理数据大小;根据批处理数据大小,分别计算文件名读取阶段和训练阶段对应的第一时间和第二时间;确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系;根据第一时间、第二时间以及对应关系,计算线程的优化数值;按照优化数值开启相应数量的线程对模型进行训练。采用本方法能够尽可能地节省CPU的资源占用,使得CPU在负载最小的情况下,使模型训练过程中的数据读取解析阶段与训练阶段两个阶段的任务达到负载均衡的状态。
Description
技术领域
本发明涉及人工智能技术领域,具体涉及一种模型训练优化方法、装置、计算机设备及存储介质。
背景技术
随着人工智能技术的不断发展,在人工智能算法模型训练过程中,数据搬运的复杂度显著提高,容易带来数据的计算开销无法覆盖数据的传输开销的问题,因此,数据读取解析阶段也是影响人工智能算法模型训练整体性能的关键因素。
在现有技术中,最常用的方式是在人工智能算法模型训练过程中开启最大线程数量来提高模型训练的整体性能。
然而统计结果显示,线程开启数量与模型训练性能并不是线性增长的关系,当数据处理线程超出CPU承载限制时,因为占用过多的CPU资源,影响系统整体运行,导致数据读取性能下降。
发明内容
有鉴于此,本发明实施例提供了一种模型训练优化方法、装置、计算机设备及存储介质,以解决在模型训练过程中对模型训练进行优化的问题。
根据第一方面,本发明实施例提供了一种模型训练优化方法,将模型训练分为文件名读取阶段、数据读取解析阶段和训练阶段;方法包括:获取待训练模型的批处理数据大小;根据批处理数据大小,分别计算文件名读取阶段和训练阶段对应的第一时间和第二时间;确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系;根据第一时间、第二时间以及对应关系,计算线程的优化数值;按照优化数值开启相应数量的线程对模型进行训练。
在本申请实施例中,计算机设备获取待训练模型的批处理数据大小,并根据批处理数据大小,分别计算文件名读取阶段和训练阶段对应的第一时间和第二时间。确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系。根据第一时间、第二时间以及对应关系,计算线程的优化数值。按照优化数值开启相应数量的线程对模型进行训练。上述方法中,计算机设备通过计算得到第一时间、第二时间以及对应关系,并根据第一时间、第二时间以及对应关系,计算线程的优化数值,实现了在待训练模型训练过程中将数据读取解析阶段与训练阶段并行调度调优。从而保证计算得到的线程的优化数值,可以缩短待训练模型在数据读取解析阶段对应的第三时间。因此,使模型训练过程中的数据读取解析阶段与训练阶段两个阶段的任务达到负载均衡的状态。从而不仅可以保证计算机设备完成待训练模型的训练过程的时间最短,且可以保证计算机设备可以完成其他任务,进而,尽可能地节省CPU的资源占用,使得CPU在负载最小的情况下,进一步优化了深度学习框架中原数据读取解析阶段与模型训练的并行流水,即提高了CPU的资源利用率,减少CPU资源浪费,提高了待训练模型的训练过程的整体性能和能效。
结合第一方面,在本申请第一方面第一实施例中,根据第一时间、第二时间以及对应关系,计算线程的优化数值,包括:
从第一时间和第二时间中确定最大时间;根据对应关系以及最大时间,计算线程的优化数值。
在本申请实施例中,由于文件名读取阶段对应的第一时间、数据读取解析阶段对应的第三时间以及训练阶段对应的第二时间中的最大时间,决定了模型训练的整个时长。因此,计算机设备从第一时间和第二时间中确定最大时间,根据对应关系以及最大时间,计算线程的优化数值。可以保证在计算机设备开启优化数值对应的线程之后,待训练模型的训练时长最短,且使得待训练模型的整个训练过程整体性能最高。
结合第一方面第一实施例,在本申请第一方面第二实施例中,根据对应关系以及最大时间,计算线程的优化数值,包括:根据对应关系,计算第三时间;利用第三时间小于等于最大时间,计算线程的优化数值的第一取值范围;根据当前设备允许开启的最大线程数计算线程的优化数值的第二取值范围;将第一取值范围和第二取值范围取交集,确定线程的优化数值。
在本申请实施例中,计算机设备根据对应关系,计算第三时间,并利用第三时间小于等于最大时间,计算线程的优化数值的第一取值范围。然后,计算机设备根据当前设备允许开启的最大线程数计算线程的优化数值的第二取值范围。将第一取值范围和第二取值范围取交集,确定线程的优化数值。从而可以保证计算机设备确定的线程数量的准确性,进一步可以保证计算机设备可以在开最少线程的情况下,完成对待训练模型的训练。从而,尽可能地节省CPU的资源占用,使得CPU在负载最小的情况下,使模型训练过程中的数据读取解析阶段与训练阶段两个阶段的任务达到负载均衡的状态,进一步优化了深度学习框架中原数据读取解析阶段与模型训练的并行流水,即提高了CPU的资源利用率,减少CPU资源浪费,提高了待训练模型的训练过程的整体性能和能效。
结合第一方面,在本申请第一方面第三实施例中,确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系,包括:获取当前设备的性能参数;根据当前设备的性能参数,确定每个线程处理一个数据的第四时间;根据第四时间以及批处理数据大小,确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系。
在本申请实施例中,计算机设备获取当前设备的性能参数,并根据当前设备的性能参数,确定每个线程处理一个数据的第四时间。然后,根据第四时间以及批处理数据大小,确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系。从而可以保证计算机设备确定的数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系准确,进而保证根据对应关系计算得到的线程数量准确,能够尽可能地节省当前设备中CPU的资源占用,使得CPU在负载最小的情况下,使数据读取解析阶段与模型训练两个阶段的任务达到负载均衡的状态,进一步优化了深度学习框架中原数据读取解析阶段与模型训练的并行流水,即提高了CPU的资源利用率,减少CPU资源浪费,提高了模型训练的整体性能和能效。
结合第一方面第三实施例,在本申请第一方面第四实施例中,根据第四时间以及批处理数据大小,确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系,包括:获取各线程的线程加速比;根据线程加速比、第四时间以及批处理数据大小,确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系;其中,对应关系为:第三时间等于批处理数据大小除以当前设备开启的线程数量,乘以第四时间,再乘以线程加速比。
在本申请实施例中,计算机设备获取各线程的线程加速比,根据线程加速比、第四时间以及批处理数据大小,确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系。由于考虑到了各线程的加速比,因此,可以进一步保证确定的数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系的准确性,进而保证计算得到的第三时间的准确性。进而可以准确计算出线程的数量,能够尽可能地节省当前设备中CPU的资源占用,使得CPU在负载最小的情况下,使数据读取解析阶段与模型训练两个阶段的任务达到负载均衡的状态,进一步优化了深度学习框架中原数据读取解析阶段与模型训练的并行流水,即提高了CPU的资源利用率,减少CPU资源浪费,提高了模型训练的整体性能和能效。
结合第一方面,在本申请第一方面第五实施例中,根据批处理数据大小,计算文件名读取阶段对应的第一时间,包括:根据批处理数据大小,计算待训练模型在读取一个文件名对应的第五时间;将第五时间乘以待读取的文件名的数量,计算得到第一时间。
在本申请实施例中,计算机根据批处理数据大小,计算待训练模型在读取一个文件名对应的第五时间,将第五时间乘以待读取的文件名的数量,计算得到第一时间。从而保证了计算得到的第一时间的准确性,进一步保证根据第一时间和第二时间计算得到的最大时间的准确性。
结合第一方面,在本申请第一方面第六实施例中,根据批处理数据大小,计算训练阶段对应的第二时间,包括:获取当前设备的性能参数;根据性能参数以及批处理数据大小,计算待训练模型在训练阶段中每个节点对应的理论计算量和理论通信量;根据各理论计算量和各理论通信量,计算得到各节点对应的训练时间;将各训练时间相加,计算得到第二时间。
在本申请实施例中,计算机设备获取当前设备的性能参数,并根据性能参数以及批处理数据大小,计算待训练模型在训练阶段中每个节点对应的理论计算量和理论通信量。然后,计算机设备根据各理论计算量和各理论通信量,计算得到各节点对应的训练时间,并将各训练时间相加,计算得到第二时间。因此,上述方法可以保证计算得到的第二时间的准确性,进一步保证根据第一时间和第二时间计算得到的最大时间的准确性。
根据第二方面,本发明实施例提供了一种模型训练优化装置,将模型训练分为文件名读取阶段、数据读取解析阶段和训练阶段;装置包括:
获取模块,用于获取待训练模型的批处理数据大小;
第一计算模块,用于根据批处理数据大小,分别计算文件名读取阶段和训练阶段对应的第一时间和第二时间;
确定模块,用于确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系;
第二计算模型,用于根据第一时间、第二时间以及对应关系,计算线程的优化数值;
训练模块,用于按照优化数值开启相应数量的线程对模型进行训练。
结合第二方面,在本申请第二方面第一实施例中,上述第二计算模块,包括:
第一确定单元,用于从第一时间和第二时间中确定最大时间;
计算单元,用于根据对应关系以及最大时间,计算线程的优化数值。
结合第二方面第一实施例,在本申请第二方面第二实施例中,上述计算单元,具体用于根据对应关系,计算第三时间;利用第三时间小于等于最大时间,计算线程的优化数值的第一取值范围;根据当前设备允许开启的最大线程数计算线程的优化数值的第二取值范围;将第一取值范围和第二取值范围取交集,确定线程的优化数值。
结合第二方面,在本申请第二方面第三实施例中,上述确定模块,包括:
获取单元,用于获取当前设备的性能参数;
第二确定单元,用于根据当前设备的性能参数,确定每个线程处理一个数据的第四时间;
第三确定单元,用于根据第四时间以及批处理数据大小,确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系。
结合第二方面第三实施例,在本申请第二方面第四实施例中,上述第三确定单元,具体用于获取各线程的线程加速比;根据线程加速比、第四时间以及批处理数据大小,确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系;其中,对应关系为:第三时间等于批处理数据大小除以当前设备开启的线程数量,乘以第四时间,再乘以线程加速比。
结合第二方面,在本申请第二方面第五实施例中,上述第一计算模块,具体用于根据批处理数据大小,计算待训练模型在读取一个文件名对应的第五时间;将第五时间乘以待读取的文件名的数量,计算得到第一时间。
结合第二方面,在本申请第二方面第六实施例中,上述第一计算模块,具体用于获取当前设备的性能参数;根据性能参数以及批处理数据大小,计算待训练模型在训练阶段中每个节点对应的理论计算量和理论通信量;根据各理论计算量和各理论通信量,计算得到各节点对应的训练时间;将各训练时间相加,计算得到第二时间。
根据第三方面,本发明实施例提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行第一方面或者第一方面的任意一种实施方式中的模型训练优化方法。
根据第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储计算机指令,计算机指令用于使计算机执行第一方面或者第一方面的任意一种实施方式中的模型训练优化方法。
根据第五方面,本发明实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,使计算机执行第一方面或者第一方面的任意一种实施方式中的模型训练优化方法。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了一个实施例中模型训练优化方法中模型训练过程划分的示意图;
图2示出了另一个实施例中模型训练优化方法的步骤流程图;
图3示出了另一个实施例中模型训练优化方法的步骤流程图;
图4示出了另一个实施例中模型训练优化方法的步骤流程图;
图5示出了另一个实施例中模型训练优化方法的步骤流程图;
图6示出了另一个实施例中模型训练优化方法的步骤流程图;
图7示出了另一个实施例中模型训练优化方法的步骤流程图;
图8示出了另一个实施例中模型训练优化方法的步骤流程图;
图9示出了另一个实施例中模型训练优化方法的步骤流程图;
图10示出了另一个实施例中模型训练优化装置的结构框图;
图11示出了一个实施例中模型训练优化装置的结构框图;
图12示出了一个实施例中模型训练优化装置的结构框图;
图13示出了一个实施例中模型训练优化装置的结构框图;
图14示出了一个实施例计算机设备为服务器时的内部结构图;
图15示出了一个实施例计算机设备为终端时的内部结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着人工智能技术的不断发展,在人工智能算法模型训练过程中,数据搬运的复杂度显著提高,容易带来数据的计算开销无法覆盖数据的传输开销的问题,因此,数据读取解析阶段也是影响人工智能算法模型训练整体性能的关键因素。
为了提高数据读取解析的效率,主流深度学习框架采用多线程并行流水设计进行数据处理。OneFlow在计算图中显示的表达数据搬运,将模型训练任务过程中的数据读取、数据传输等IO操作,封装成与计算图同一标准的计算子图,实现数据搬运与模型训练之间的自动流水并行控制,为深度学习框架在模型分布式训练中性能优化开启了新的思路。TensorFlow通过建立文件名队列和任务队列,采用多线程流水控制的方式从文件名队列中读取图片数据,进行数据解析,并将解析后的数据加入任务队列中为训练任务提供输入数据,实现了数据加载与训练任务的并行流水。
虽然上述深度学习框架实现了数据读取解析模块和模型训练模块的流水并行,但是对于不同的训练任务,数据读取解析的速率和模型训练的性能可能存在较大的差距,开启固定线程数的方式容易导致数据读取解析与训练任务负载不均衡,训练过程出现数据读取过快,数据队列缓存溢出,或者是数据读取过慢,训练过程等待时间漫长的问题。TensorFlow等深度学习框架通过人工经验去定义数据读取阶段的线程数量来实现流水,最常用的方式是针对性能瓶颈模块开启最大线程数量来提高性能。
然而统计结果显示,线程开启数量与读取性能并不是线性增长的关系,当数据处理线程超出CPU承载限制时,因为占用过多的CPU资源,影响系统整体运行,导致数据读取性能下降。
基于上述问题,本申请实施例提供了一种模型训练优化方法、装置、计算机设备及存储介质,能够尽可能地节省CPU的资源占用,使得CPU在负载最小的情况下,使模型训练过程中的数据读取解析阶段与训练阶段两个阶段的任务达到负载均衡的状态。
需要说明的是,本申请实施例提供的模型训练优化的方法,其执行主体可以是模型训练优化的装置,该模型训练优化的装置可以通过软件、硬件或者软硬件结合的方式实现成为计算机设备的部分或者全部,其中,该计算机设备可以是服务器或者终端,其中,本申请实施例中的服务器可以为一台服务器,也可以为由多台服务器组成的服务器集群,本申请实施例中的终端可以是智能手机、个人电脑、平板电脑、可穿戴设备以及智能机器人等其他智能硬件设备。下述方法实施例中,均以执行主体是计算机设备为例来进行说明。
在本申请一个实施例中,提供了一种模型训练优化方法,如图1所示,可以将模型训练分为文件名读取阶段、数据读取解析阶段和训练阶段。如图2所示,以该方法应用于计算机设备为例进行说明,包括以下步骤:
步骤201,获取待训练模型的批处理数据大小。
具体地,批处理数据大小可以是用户根据待训练模型进行设置,计算机设备可以通过对待训练模型进行识别和读取,获取到待训练模型的批处理数据大小。其中,批处理数据大小用于表征待训练模型在模型训练过程中,可以同时处理的一批数据的数量。例如,假设待训练模型的批处理数据大小为64,则说明该待训练模型可以一次处理64个数据。
步骤202,根据批处理数据大小,分别计算文件名读取阶段和训练阶段对应的第一时间和第二时间。
在一种可选的实施方式中,计算机设备根据待训练模型的批处理数据大小,利用预设的计算理论以及计算公式,分别计算文件名读取阶段和训练阶段对应的第一时间和第二时间。
在另一种可选的实施方式中,计算机设备还可以通过进行模拟试验的方式,分别模拟待训练模型进行文件名读取以及进行训练的过程,根据模拟试验的结果,计算得到文件名读取阶段和训练阶段分别对应的第一时间和第二时间。
步骤203,确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系。
具体地,计算机设备可以先预先假设开启多个预设数量的线程,并分别计算在开启多个预设数量的线程的情况下,待训练模型在数据读取解析阶段对应的多个第三时间,并根据计算得到的多个第三时间以及多个预设数量的线程,拟合数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系,从而确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系。
示例性的,计算机设备可以先假设开启3个线程,并计算在开启3个线程的情况下,待训练模型在数据读取解析阶段对应的第三时间;然后,计算机假设开启4个线程,并计算在开启4个线程的情况下,待训练模型在数据读取解析阶段对应的第三时间;然后,计算机假设开启5个线程,并计算在开启5个线程的情况下,待训练模型在数据读取解析阶段对应的第三时间。以此类推,计算机设备可以计算得到多个线程数量,以及线程数量对应的第三时间,计算机设备可以对多个线程数量和多个第三时间进行拟合,从而确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系。
步骤204,根据第一时间、第二时间以及对应关系,计算线程的优化数值。
具体地,计算机设备可以根据对应关系分别计算开启不同数量的线程的情况下,待训练模型在数据读取解析阶段对应的第三时间。然后计算机设备将第一时间、第二时间以及第三时间进行对比,从而确定待训练模型完成整个模型训练过程需要的时间。当完成整个模型训练过程需要的时间过长时,计算机设备可以更改线程的优化数值,并根据优化后的数值再次计算第三时间,然后将第一时间、第二时间以及第三时间进行对比,从而确定待训练模型完成整个模型训练过程需要的时间。直至完成整个模型训练过程需要的时间达到最短时,计算机设备确定当前最短时间对应的线程的数值为线程的优化数值。
步骤205,按照优化数值开启相应数量的线程对模型进行训练。
具体地,计算机设备按照优化数值开启相应数量的线程,然后基于相应数量的线程对模型进行训练,从而可以保证完成模型训练的时间最短。
在本申请实施例中,计算机设备获取待训练模型的批处理数据大小,并根据批处理数据大小,分别计算文件名读取阶段和训练阶段对应的第一时间和第二时间。确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系。根据第一时间、第二时间以及对应关系,计算线程的优化数值。按照优化数值开启相应数量的线程对模型进行训练。上述方法中,计算机设备通过计算得到第一时间、第二时间以及对应关系,并根据第一时间、第二时间以及对应关系,计算线程的优化数值,实现了在待训练模型训练过程中将数据读取解析阶段与训练阶段并行调度调优。从而保证计算得到的线程的优化数值,可以缩短待训练模型在数据读取解析阶段对应的第三时间。因此,使模型训练过程中的数据读取解析阶段与训练阶段两个阶段的任务达到负载均衡的状态。从而不仅可以保证计算机设备完成待训练模型的训练过程的时间最短,且可以保证计算机设备可以完成其他任务,进而,尽可能地节省CPU的资源占用,使得CPU在负载最小的情况下,进一步优化了深度学习框架中原数据读取解析阶段与模型训练的并行流水,即提高了CPU的资源利用率,减少CPU资源浪费,提高了待训练模型的训练过程的整体性能和能效。
在本申请一个实施例中,如图3所示,上述步骤204中的“根据第一时间、第二时间以及对应关系,计算线程的优化数值”,可以包括以下步骤:
步骤301,从第一时间和第二时间中确定最大时间。
具体地,由于在模型训练过程中,文件名读取阶段、数据读取解析阶段以及训练阶段是进行一个往复循环,因此,文件名读取阶段对应的第一时间、数据读取解析阶段对应的第三时间以及训练阶段对应的第二时间中的最大时间,决定了模型训练的整个时长。
因此,计算机设备可以将计算得到的文件名读取阶段对应的第一时间和训练阶段对应的第二时间进行对比,并将第一时间和第二时间中的较大时间确定为最大时间,从而使得计算机设备从第一时间和第二时间中确定最大时间。
是理性的,假设第一时间为T1,第二时间为T2,计算机设备将T1和T2进行对比,并将T1和T2中的较大时间确定为最大时间Tm。
步骤302,根据对应关系以及最大时间,计算线程的优化数值。
具体地,计算机设备在确定最大时间以后,可以根据数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系,计算得到第三时间。然后计算机设备可以将第三时间和上述确定的最大时间进行对比。
在一种可选地实施方式中,为了使得待训练模型地训练过程时间最短,计算机设备可以使得第三时间小于最大时间,从而可以得到一个关于线程的优化数值对应地取值范围。计算机设备可以根据计算出来的取值范围,计算出线程的优化数值。
在本申请实施例中,由于文件名读取阶段对应的第一时间、数据读取解析阶段对应的第三时间以及训练阶段对应的第二时间中的最大时间,决定了模型训练的整个时长。因此,计算机设备从第一时间和第二时间中确定最大时间,根据对应关系以及最大时间,计算线程的优化数值。可以保证在计算机设备开启优化数值对应的线程之后,待训练模型的训练时长最短,且使得待训练模型的整个训练过程整体性能最高。
在本申请一个实施例中,如图4所示,上述步骤302中的“根据对应关系以及最大时间,计算线程的优化数值”,可以包括以下步骤:
步骤401,根据对应关系,计算第三时间。
具体地,计算机设备可以根据数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系,利用当前设备开启的线程数量以及其他计算参数,计算得到第三时间。
步骤402,利用第三时间小于等于最大时间,计算线程的优化数值的第一取值范围。
具体地,由于在模型训练过程中,文件名读取阶段、数据读取解析阶段以及训练阶段是进行一个往复循环,因此,文件名读取阶段对应的第一时间、数据读取解析阶段对应的第三时间以及训练阶段对应的第二时间中的最大时间,决定了待训练模型训练的整个时长。
因此,当第三时间大于等于最大时间时,整个待训练模型的训练时长可能为第三时间,且训练时长大于最大时间。而当第三时间小于等于最大时间时,整个待训练模型的训练时长可能为最大时间,且训练时长等于最大时间。因此,当第三时间小于等于最大时间时,待训练模型训练的整个时长最短。
计算机设备利用第三时间小于等于最大时间,可以计算得到计算线程的优化数值的第一取值范围。
步骤403,根据当前设备允许开启的最大线程数计算线程的优化数值的第二取值范围。
具体地,在开启一定数量线程之前,必须保证计算机设备允许开启一定数量的线程。因此,必须保证当前设备允许开启的最大线程数据大于等于当前设备开启的线程数量。因此,计算机设备需要根据当前设备允许开启的最大线程数计算线程的优化数值的第二取值范围。
示例性的,假设计算机设备允许开启的线程数量为16个线程,那么设备当前开启的线程数量需要小于等于16。
步骤404,将第一取值范围和第二取值范围取交集,确定线程的优化数值。
具体地,在计算机设备计算得到线程数量的第一取值范围和第二取值范围之后,计算机设备可以将第一取值范围和第二取值范围取交集,根据取交集之后的集合,确定线程的优化数值。
在一种可选的实现方式中,取交集之后的集合中包括多个整数,也就是说计算机可以开启的线程数量有多种。这时,计算机设备可以选择开启最少的线程数量,并把其他的线程留给计算机设备完成其他任务。因此,即保证了计算机设备在训练待训练模型时,整体训练时长最短,也能保证计算机设备整体性能最强。
示例性的,假设计算机设备将第一取值范围和第二取值范围取交集之后得到的取值范围为(5.4,8.5)即线程的优化数值可以为6、7、8,那么计算机设备可以开启6个线程训练待训练模型,把其他的线程留给计算机设备完成其他任务。因此,即保证了计算机设备在训练待训练模型时,整体训练时长最短,也能保证计算机设备整体性能最强。
在本申请实施例中,计算机设备根据对应关系,计算第三时间,并利用第三时间小于等于最大时间,计算线程的优化数值的第一取值范围。然后,计算机设备根据当前设备允许开启的最大线程数计算线程的优化数值的第二取值范围。将第一取值范围和第二取值范围取交集,确定线程的优化数值。从而可以保证计算机设备确定的线程数量的准确性,进一步可以保证计算机设备可以在开最少线程的情况下,完成对待训练模型的训练。从而,尽可能地节省CPU的资源占用,使得CPU在负载最小的情况下,使模型训练过程中的数据读取解析阶段与训练阶段两个阶段的任务达到负载均衡的状态,进一步优化了深度学习框架中原数据读取解析阶段与模型训练的并行流水,即提高了CPU的资源利用率,减少CPU资源浪费,提高了待训练模型的训练过程的整体性能和能效。
在本申请一个实施例中,如图5所示,上述步骤203中的“确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系”,可以包括以下步骤:
步骤501,获取当前设备的性能参数。
具体地,计算机设备可以利用数据读取的方式,读取当前设备的性能参数。
步骤502,根据当前设备的性能参数,确定每个线程处理一个数据的第四时间。
具体地,计算机设备可以根据当前设备的性能参数以及数据的大小,计算每个线程处理一个数据的第四时间。其中,处理过程可以包括对数据进行读取以及解析。
步骤503,根据第四时间以及批处理数据大小,确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系。
具体地,计算机设备在确定了每个线程处理一个数据的第四时间之后,根据批处理数据大小,可以计算得到一个线程处理一批数据的时长,然后,计算机设备根据一个线程处理一批数据的时长计算得到开启多个线程处理一批数据的时长,从而计算机设备可以计算数据读取解析阶段对应的第三时间,并确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系。
在本申请实施例中,计算机设备获取当前设备的性能参数,并根据当前设备的性能参数,确定每个线程处理一个数据的第四时间。然后,根据第四时间以及批处理数据大小,确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系。从而可以保证计算机设备确定的数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系准确,进而保证根据对应关系计算得到的线程数量准确,能够尽可能地节省当前设备中CPU的资源占用,使得CPU在负载最小的情况下,使数据读取解析阶段与模型训练两个阶段的任务达到负载均衡的状态,进一步优化了深度学习框架中原数据读取解析阶段与模型训练的并行流水,即提高了CPU的资源利用率,减少CPU资源浪费,提高了模型训练的整体性能和能效。
在本申请一个实施例中,如图6所示,上述步骤503中的“数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系”,可以包括如下:
步骤601,获取各线程的线程加速比。
具体地,计算机设备可以通过数据读取的方式获取各线程的线程加速比。
步骤602,根据线程加速比、第四时间以及批处理数据大小,确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系。
其中,对应关系为:第三时间等于批处理数据大小除以当前设备开启的线程数量,乘以第四时间,再乘以线程加速比。
具体地,计算机设备在获取到线程加速比之后,可以根据线程加速比、第四时间以及批处理数据大小,更加准确地确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系。
计算机设备在确定了每个线程处理一个数据的第四时间之后,根据批处理数据大小,可以计算得到一个线程处理一批数据的时长,然后,计算机设备根据一个线程处理一批数据的时长计算得到开启多个线程处理一批数据的时长,计算机设备再乘以每个线程地加速比,从而计算机设备确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系。
示例性地,假设批处理数据大小为B,每个线程处理一个数据的时间t2,线程加速比λ,线程数据量为n,那么第三时间T3=B*t2*λ/n。
基于上述实施例可知,假设最大时间为Tm,则T3小于等于Tm,即B*t2*λ/n≤Tm,即B*t2*λ/Tm≤n,即计算得到线程优化数值的第一取值范围。
假设,当前设备允许开启的最大的线程数量为N,则根据当前设备允许开启的最大线程数计算线程的优化数值的第二取值范围,可得n≤N。
最终得到,n的取值范围为B*t2*λ/Tm≤n≤N。
在本申请实施例中,计算机设备获取各线程的线程加速比,根据线程加速比、第四时间以及批处理数据大小,确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系。由于考虑到了各线程的加速比,因此,可以进一步保证确定的数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系的准确性,进而保证计算得到的第三时间的准确性。进而可以准确计算出线程的数量,能够尽可能地节省当前设备中CPU的资源占用,使得CPU在负载最小的情况下,使数据读取解析阶段与模型训练两个阶段的任务达到负载均衡的状态,进一步优化了深度学习框架中原数据读取解析阶段与模型训练的并行流水,即提高了CPU的资源利用率,减少CPU资源浪费,提高了模型训练的整体性能和能效。
在本申请一个实施例中,如图7所示,上述步骤202中的“根据批处理数据大小,计算文件名读取阶段对应的第一时间”,包括:
步骤701,根据批处理数据大小,计算待训练模型在读取一个文件名对应的第五时间。
具体地,计算机设备可以根据批处理数据大小,一次读取一批文件名,并记录读取一批文件的总时长,然后利用总时长除以文件名的数量,计算得到读取一个文件名对应的第五时间。
示例性的,假设待训练模型的批处理数据大小为64,则待处理模型可以一次读取64个文件名,然后计算读取64个文件名的时间,假设读物64个文件名的时间为0.64s,则待训练模型在读取一个文件名对应的第五时间则为0.01s。
步骤702,将第五时间乘以待读取的文件名的数量,计算得到第一时间。
具体地,计算机设备获取待读取的文件名的总数据,利用待读取的文件名的总数量乘以第五时间,计算得到第一时间。
示例性的,假设待读物的文件名的数量为500,则计算机设备利用500*0.01=5s,则计算机设备计算得到的第一时间为5s。
在本申请实施例中,计算机根据批处理数据大小,计算待训练模型在读取一个文件名对应的第五时间,将第五时间乘以待读取的文件名的数量,计算得到第一时间。从而保证了计算得到的第一时间的准确性,进一步保证根据第一时间和第二时间计算得到的最大时间的准确性。
在本申请一个实施例中,如图8所示,上述步骤202中的“根据批处理数据大小,计算训练阶段对应的第二时间”,包括:
步骤801,获取当前设备的性能参数。
具体地,计算机设备可以通过数据读取的方式获取到当前设备的性能参数。其中,性能参数可以包括计算机设备的数量以及各计算机设备CPU的参数。
步骤802,根据性能参数以及批处理数据大小,计算待训练模型在训练阶段中每个节点对应的理论计算量和理论通信量。
具体地,计算机设备可以根据性能参数和批处理数据大小,计算待训练模型在训练阶段中的卷积层和全连接层中每个节点对应的理论计算量和理论通信量。
(1)理论计算量可以根据如下内容进行计算,理论计算量的单位为:FLOPS。
①首先介绍卷积层的理论计算量:
Cin个通道上一次卷积计算:
加法运算:(K*K-1)*Cin;
乘法运算:K*K*Cin;通道方向加法:Cin-1;
综上:((K*K-1)*Cin)+K*K*Cin+(Cin-1)=2*K*K*Cin-1;
那么,卷积层总的理论计算量:(2*K*K*Cin-1)*(M*M*Cout)*N可简化为:2*K*K*Cin*(M*M*Cout)*N
其中,K为卷积核的大小;M为正向时输出图片的大小;N为批处理数据大小;Cin为输入通道数;Cout为输出通道数。
②介绍全连接层的理论计算量:
前向:输入为N*Cin;输出为N*Cout,,中间计算为矩阵乘法;
总的理论计算量为:N*(Cin+Cin-1)*Cout;
反向1:输入N*Cout,输出N*Cin,总的计算量为:N*(Cout+Cout-1)*Cin.
反向2:输入N*Cout,Cin*N,输出Cin*Cout的矩阵;总的计算量为:N*Cin*Cout
其中,K为卷积核的大小;M为正向时输出图片的大小;N为批处理数据大小;Cin为输入通道数;Cout为输出通道数。
(2)理论通信量可以根据如下内容进行计算,理论通信量的单位为:B。
①首先介绍卷积层的理论通信量:写数据过程:4*(Cin*I*I+Cout*K*K);读数据过程:4*(Cout*M*M);
②介绍全连接层的理论通信量:写数据量过程:4*(Cin+Cin*Cout)读数据过程:4*Cout;
其中I:输入图片大小;K为卷积核的大小;M为正向时输出图片的大小;N为批处理数据大小;Cin为输入通道数;Cout为输出通道数。
步骤803,根据各理论计算量和各理论通信量,计算得到各节点对应的训练时间。
具体地,计算机设备在计算得到卷积层各全连接层各节点对应的理论计算量和理论通信量之后,可以根据各理论计算量和各理论通信量,计算得到各节点对应的训练时间。
步骤804,将各训练时间相加,计算得到第二时间。
具体地,计算机设备将各节点对应的训练时间,进行相加,计算得到待训练模型在训练阶段对应的第二时间。
在本申请实施例中,计算机设备获取当前设备的性能参数,并根据性能参数以及批处理数据大小,计算待训练模型在训练阶段中每个节点对应的理论计算量和理论通信量。然后,计算机设备根据各理论计算量和各理论通信量,计算得到各节点对应的训练时间,并将各训练时间相加,计算得到第二时间。因此,上述方法可以保证计算得到的第二时间的准确性,进一步保证根据第一时间和第二时间计算得到的最大时间的准确性。
为了更好的解释本申请实施例提供的模型训练优化方法,如图9所示,本申请实施例提供了一种模型训练优化方法的整体流程图,可以包括如下步骤:
步骤901,获取待训练模型的批处理数据大小。
步骤902,根据批处理数据大小,计算待训练模型在读取一个文件名对应的第五时间。
步骤903,将第五时间乘以待读取的文件名的数量,计算得到第一时间。
步骤904,获取当前设备的性能参数。
步骤905,根据性能参数以及批处理数据大小,计算待训练模型在训练阶段中每个节点对应的理论计算量和理论通信量。
步骤906,根据各理论计算量和各理论通信量,计算得到各节点对应的训练时间。
步骤907,将各训练时间相加,计算得到第二时间。
步骤908,获取当前设备的性能参数。
步骤909,根据当前设备的性能参数,确定每个线程处理一个数据的第四时间。
步骤910,获取各线程的线程加速比。
步骤911,根据线程加速比、第四时间以及批处理数据大小,确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系。
步骤912,从第一时间和第二时间中确定最大时间。
步骤913,根据对应关系,计算第三时间。
步骤914,利用第三时间小于等于最大时间,计算线程的优化数值的第一取值范围。
步骤915,根据当前设备允许开启的最大线程数计算线程的优化数值的第二取值范围。
步骤916,将第一取值范围和第二取值范围取交集,确定线程的优化数值。
在本申请一个可选的实施例中,该模型训练优化方法的核心是设计了自动查找最优线程数配置的反向查找方法,其主要包括消耗时间预估模块、最优线程数计算模块和数据配置模块,如图10所示。由于在同一硬件环境下,第一和第三阶段的时间消耗与数据批处理的大小成正比,消耗时间预估模块用于在固定数据批处理大小的情况下,完成第一和第三阶段的时间占用理论评估,以及第二阶段中,每个线程处理一个数据的时间占用测试评估。最优线程数计算模块,通过消耗时间预估模块中对三个时间的预估数据,利用理论计算公式反向计算,自动得出CPU的最优线程数。在流水执行状态下,整个系统的消耗时间就是执行时间最长的阶段的时间,因此计算开启最少的线程数n,即n尽可能地小,使得整个系统的时间T最小。最后数据配置模块根据计算出的最优线程数对原有的数据读取解析阶段与模型训练流程进行线程配置,并启动待训练模型的模型训练过程。
应该理解的是,虽然图2-9的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-9中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
相应地,请参考图11,本发明实施例提供一种模型训练优化装置1100,将模型训练分为文件名读取阶段、数据读取解析阶段和训练阶段;上述模型训练优化装置1100,包括:获取模块1110、第一计算模块1120、确定模块1130、第二计算模型1140以及训练模块1150,其中:
获取模块1110,用于获取待训练模型的批处理数据大小;
第一计算模块1120,用于根据批处理数据大小,分别计算文件名读取阶段和训练阶段对应的第一时间和第二时间;
确定模块1130,用于确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系;
第二计算模型1140,用于根据第一时间、第二时间以及对应关系,计算线程的优化数值;
训练模块1150,用于按照优化数值开启相应数量的线程对模型进行训练。
在本申请一个实施例中,如图12所示,上述第二计算模块1140,包括:第一确定单元1141和计算单元1142,其中:
第一确定单元1141,用于从第一时间和第二时间中确定最大时间;
计算单元1142,用于根据对应关系以及最大时间,计算线程的优化数值。
在本申请一个实施例中,上述计算单元1142,具体用于根据对应关系,计算第三时间;利用第三时间小于等于最大时间,计算线程的优化数值的第一取值范围;根据当前设备允许开启的最大线程数计算线程的优化数值的第二取值范围;将第一取值范围和第二取值范围取交集,确定线程的优化数值。
在本申请一个实施例中,如图13所示,上述确定模块1130,包括:获取单元1131、第二确定单元1132和第三确定单元1133,其中:
获取单元1131,用于获取当前设备的性能参数;
第二确定单元1132,用于根据当前设备的性能参数,确定每个线程处理一个数据的第四时间;
第三确定单元1133,用于根据第四时间以及批处理数据大小,确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系。
在本申请一个实施例中,上述第三确定单元1133,具体用于获取各线程的线程加速比;根据线程加速比、第四时间以及批处理数据大小,确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系;其中,对应关系为:第三时间等于批处理数据大小除以当前设备开启的线程数量,乘以第四时间,再乘以线程加速比。
在本申请一个实施例中,上述第一计算模块1120,具体用于根据批处理数据大小,计算待训练模型在读取一个文件名对应的第五时间;将第五时间乘以待读取的文件名的数量,计算得到第一时间。
在本申请一个实施例中,上述第一计算模块1120,具体用于获取当前设备的性能参数;根据性能参数以及批处理数据大小,计算待训练模型在训练阶段中每个节点对应的理论计算量和理论通信量;根据各理论计算量和各理论通信量,计算得到各节点对应的训练时间;将各训练时间相加,计算得到第二时间。
关于模型训练优化装置的具体限定以及有益效果可以参见上文中对于模型训练优化方法的限定,在此不再赘述。上述模型训练优化装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图14所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种模型训练优化方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图15所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储模型训练优化数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种模型训练优化方法。
本领域技术人员可以理解,图14和15中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在本申请一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,将模型训练分为文件名读取阶段、数据读取解析阶段和训练阶段;该处理器执行计算机程序时实现以下步骤:获取待训练模型的批处理数据大小;根据批处理数据大小,分别计算文件名读取阶段和训练阶段对应的第一时间和第二时间;确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系;根据第一时间、第二时间以及对应关系,计算线程的优化数值;按照优化数值开启相应数量的线程对模型进行训练。
在本申请一个实施例中,处理器执行计算机程序时还实现以下步骤:从第一时间和第二时间中确定最大时间;根据对应关系以及最大时间,计算线程的优化数值。
在本申请一个实施例中,处理器执行计算机程序时还实现以下步骤:根据对应关系,计算第三时间;利用第三时间小于等于最大时间,计算线程的优化数值的第一取值范围;根据当前设备允许开启的最大线程数计算线程的优化数值的第二取值范围;将第一取值范围和第二取值范围取交集,确定线程的优化数值。
在本申请一个实施例中,处理器执行计算机程序时还实现以下步骤:获取当前设备的性能参数;根据当前设备的性能参数,确定每个线程处理一个数据的第四时间;根据第四时间以及批处理数据大小,确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系。
在本申请一个实施例中,处理器执行计算机程序时还实现以下步骤:获取各线程的线程加速比;根据线程加速比、第四时间以及批处理数据大小,确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系;其中,对应关系为:第三时间等于批处理数据大小除以当前设备开启的线程数量,乘以第四时间,再乘以线程加速比。
在本申请一个实施例中,处理器执行计算机程序时还实现以下步骤:根据批处理数据大小,计算待训练模型在读取一个文件名对应的第五时间;将第五时间乘以待读取的文件名的数量,计算得到第一时间。
在本申请一个实施例中,处理器执行计算机程序时还实现以下步骤:获取当前设备的性能参数;根据性能参数以及批处理数据大小,计算待训练模型在训练阶段中每个节点对应的理论计算量和理论通信量;根据各理论计算量和各理论通信量,计算得到各节点对应的训练时间;将各训练时间相加,计算得到第二时间。
在本申请一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,将模型训练分为文件名读取阶段、数据读取解析阶段和训练阶段;计算机程序被处理器执行时实现以下步骤:获取待训练模型的批处理数据大小;根据批处理数据大小,分别计算文件名读取阶段和训练阶段对应的第一时间和第二时间;确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系;根据第一时间、第二时间以及对应关系,计算线程的优化数值;按照优化数值开启相应数量的线程对模型进行训练。
在本申请一个实施例中,计算机程序被处理器执行时还实现以下步骤:从第一时间和第二时间中确定最大时间;根据对应关系以及最大时间,计算线程的优化数值。
在本申请一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据对应关系,计算第三时间;利用第三时间小于等于最大时间,计算线程的优化数值的第一取值范围;根据当前设备允许开启的最大线程数计算线程的优化数值的第二取值范围;将第一取值范围和第二取值范围取交集,确定线程的优化数值。
在本申请一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取当前设备的性能参数;根据当前设备的性能参数,确定每个线程处理一个数据的第四时间;根据第四时间以及批处理数据大小,确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系。
在本申请一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取各线程的线程加速比;根据线程加速比、第四时间以及批处理数据大小,确定数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系;其中,对应关系为:第三时间等于批处理数据大小除以当前设备开启的线程数量,乘以第四时间,再乘以线程加速比。
在本申请一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据批处理数据大小,计算待训练模型在读取一个文件名对应的第五时间;将第五时间乘以待读取的文件名的数量,计算得到第一时间。
在本申请一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取当前设备的性能参数;根据性能参数以及批处理数据大小,计算待训练模型在训练阶段中每个节点对应的理论计算量和理论通信量;根据各理论计算量和各理论通信量,计算得到各节点对应的训练时间;将各训练时间相加,计算得到第二时间。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random AccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种模型训练优化方法,其特征在于,将所述模型训练分为文件名读取阶段、数据读取解析阶段和训练阶段;所述方法包括:
获取待训练模型的批处理数据大小;
根据所述批处理数据大小,分别计算所述文件名读取阶段和所述训练阶段对应的第一时间和第二时间;
确定所述数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系;
根据所述第一时间、所述第二时间以及所述对应关系,计算所述线程的优化数值;
按照所述优化数值开启相应数量的线程对所述模型进行训练。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一时间、所述第二时间以及所述对应关系,计算所述线程的优化数值,包括:
从所述第一时间和所述第二时间中确定最大时间;
根据所述对应关系以及所述最大时间,计算所述线程的优化数值。
3.根据权利要求2所述的方法,其特征在于,所述根据所述对应关系以及所述最大时间,计算所述线程的优化数值,包括:
根据所述对应关系,计算所述第三时间;
利用所述第三时间小于等于所述最大时间,计算所述线程数量的第一取值范围;
根据当前设备允许开启的最大线程数计算所述线程的优化数值的第二取值范围;
将所述第一取值范围和所述第二取值范围取交集,确定所述线程的优化数值。
4.根据权利要求1所述的方法,其特征在于,所述确定所述数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系,包括:
获取所述当前设备的性能参数;
根据所述当前设备的性能参数,确定每个线程处理一个数据的第四时间;
根据所述第四时间以及所述批处理数据大小,确定所述数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第四时间以及所述批处理数据大小,确定所述数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系,包括:
获取各所述线程的线程加速比;
根据所述线程加速比、所述第四时间以及所述批处理数据大小,确定所述数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系;其中,所述对应关系为:所述第三时间等于所述批处理数据大小除以当前设备开启的线程数量,乘以所述第四时间,再乘以所述线程加速比。
6.根据权利要求1所述的方法,其特征在于,根据所述批处理数据大小,计算所述文件名读取阶段对应的第一时间,包括:
根据所述批处理数据大小,计算所述待训练模型在读取一个文件名对应的第五时间;
将所述第五时间乘以待读取的文件名的数量,计算得到所述第一时间。
7.根据权利要求1所述的方法,其特征在于,根据所述批处理数据大小,计算所述训练阶段对应的第二时间,包括:
获取所述当前设备的性能参数;
根据所述性能参数以及所述批处理数据大小,计算所述待训练模型在所述训练阶段中每个节点对应的理论计算量和理论通信量;
根据各所述理论计算量和各所述理论通信量,计算得到各所述节点对应的训练时间;
将各所述训练时间相加,计算得到所述第二时间。
8.一种模型训练优化装置,其特征在于,将所述模型训练分为文件名读取阶段、数据读取解析阶段和训练阶段;所述装置包括:
获取模块,用于获取待训练模型的批处理数据大小;
第一计算模块,用于根据所述批处理数据大小,分别计算所述文件名读取阶段和所述训练阶段对应的第一时间和第二时间;
确定模块,用于确定所述数据读取解析阶段对应的第三时间与当前设备开启的线程数量之间的对应关系;
第二计算模型,用于根据所述第一时间、所述第二时间以及所述对应关系,计算所述线程的优化数值;
训练模块,用于按照所述优化数值开启相应数量的线程对所述模型进行训练。
9.一种计算机设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-7中任一项所述的模型训练优化方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的模型训练优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111159790.4A CN114021733B (zh) | 2021-09-30 | 2021-09-30 | 模型训练优化方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111159790.4A CN114021733B (zh) | 2021-09-30 | 2021-09-30 | 模型训练优化方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114021733A CN114021733A (zh) | 2022-02-08 |
CN114021733B true CN114021733B (zh) | 2023-11-14 |
Family
ID=80055309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111159790.4A Active CN114021733B (zh) | 2021-09-30 | 2021-09-30 | 模型训练优化方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114021733B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114862656B (zh) * | 2022-05-18 | 2023-05-05 | 北京百度网讯科技有限公司 | 基于多gpu的分布式深度学习模型训练代价的获取方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810048A (zh) * | 2014-03-11 | 2014-05-21 | 国家电网公司 | 一种面向资源利用最优的线程数量自动调整方法及装置 |
CN111752713A (zh) * | 2020-06-28 | 2020-10-09 | 浪潮电子信息产业股份有限公司 | 模型并行训练任务负载均衡方法、装置、设备及存储介质 |
CN112000472A (zh) * | 2020-08-11 | 2020-11-27 | 苏州浪潮智能科技有限公司 | 一种高性能服务器gpu性能瓶颈调优方法、装置及存储介质 |
-
2021
- 2021-09-30 CN CN202111159790.4A patent/CN114021733B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810048A (zh) * | 2014-03-11 | 2014-05-21 | 国家电网公司 | 一种面向资源利用最优的线程数量自动调整方法及装置 |
CN111752713A (zh) * | 2020-06-28 | 2020-10-09 | 浪潮电子信息产业股份有限公司 | 模型并行训练任务负载均衡方法、装置、设备及存储介质 |
CN112000472A (zh) * | 2020-08-11 | 2020-11-27 | 苏州浪潮智能科技有限公司 | 一种高性能服务器gpu性能瓶颈调优方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114021733A (zh) | 2022-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10963292B2 (en) | Techniques to manage virtual classes for statistical tests | |
CN107612886B (zh) | 一种Spark平台Shuffle过程压缩算法决策方法 | |
CN112433819A (zh) | 异构集群调度的模拟方法、装置、计算机设备及存储介质 | |
CN114862656B (zh) | 基于多gpu的分布式深度学习模型训练代价的获取方法 | |
CN104765589B (zh) | 基于mpi的网格并行预处理方法 | |
CN110826708B (zh) | 一种用多核处理器实现神经网络模型拆分方法及相关产品 | |
CN110378400B (zh) | 一种用于图像识别的模型训练方法及装置 | |
CN109992866A (zh) | 负荷预测模型的训练方法、装置、可读介质及电子设备 | |
CN102253919A (zh) | 基于gpu和cpu协同运算的并行数值模拟方法和系统 | |
Li et al. | Dynamic dataflow scheduling and computation mapping techniques for efficient depthwise separable convolution acceleration | |
Marszałkowski et al. | Time and energy performance of parallel systems with hierarchical memory | |
CN114021733B (zh) | 模型训练优化方法、装置、计算机设备及存储介质 | |
WO2020164644A2 (zh) | 神经网络模型拆分方法、装置、计算机设备和存储介质 | |
CN111198754A (zh) | 一种任务调度方法及装置 | |
CN104935523A (zh) | 一种负载均衡的处理方法和设备 | |
CN112200310B (zh) | 智能处理器、数据处理方法及存储介质 | |
CN111158901B (zh) | 计算图的优化方法、装置、计算机设备和存储介质 | |
CN111045912B (zh) | 一种ai应用性能评估方法、装置及其相关设备 | |
Riahi et al. | Comparison of analytical and ML-based models for predicting CPU–GPU data transfer time | |
CN116069603B (zh) | 应用的性能测试方法、建立性能测试模型的方法及装置 | |
CN110555793A (zh) | 高效的深度卷积实现方法及包括该方法的视觉处理方法 | |
CN111736968B (zh) | 配电系统云数据中心计算资源优化配置方法、装置、设备及介质 | |
CN110415162B (zh) | 大数据中面向异构融合处理器的自适应图划分方法 | |
Uddin et al. | Analytical-based high-level simulation of the microthreaded many-core architectures | |
TWI782845B (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 |