CN113918224A - 机器学习的数据处理方法、装置、电子设备及存储介质 - Google Patents
机器学习的数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113918224A CN113918224A CN202111197684.5A CN202111197684A CN113918224A CN 113918224 A CN113918224 A CN 113918224A CN 202111197684 A CN202111197684 A CN 202111197684A CN 113918224 A CN113918224 A CN 113918224A
- Authority
- CN
- China
- Prior art keywords
- data
- computing
- parallel pipeline
- task
- tasks
- 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.)
- Pending
Links
- 238000010801 machine learning Methods 0.000 title claims abstract description 47
- 238000003672 processing method Methods 0.000 title claims description 13
- 238000003860 storage Methods 0.000 title claims description 12
- 238000004364 calculation method Methods 0.000 claims abstract description 153
- 238000012545 processing Methods 0.000 claims abstract description 105
- 238000000034 method Methods 0.000 claims abstract description 34
- 230000005540 biological transmission Effects 0.000 claims abstract description 33
- 230000015654 memory Effects 0.000 claims description 47
- 238000004590 computer program Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 9
- 230000004931 aggregating effect Effects 0.000 claims 1
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000001133 acceleration Effects 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 239000013598 vector Substances 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003902 lesion Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Image Processing (AREA)
Abstract
本申请提供了一种机器学习的数据计算方法、装置;方法包括:通过中央处理器启动图形处理器中用于机器学习的多个并行流水线计算任务,并将每个并行流水线计算任务的状态更新为就绪状态;通过中央处理器向第一并行流水线计算任务传输第一数据,并在传输过程中将除第一并行流水线计算任务之外的并行流水线计算任务的状态从就绪状态更新为等待状态;当第一并行流水线计算任务开始时,通过中央处理器将第二数据传输到第二并行流水线计算任务中进行计算;当每个并行流水线计算任务完成时,将每个并行流水线计算任务的计算结果进行汇总,得到机器学习的运算结果。通过本申请能够充分利用硬件资源,实现高效率计算加速。
Description
技术领域
本申请涉及人工智能技术,尤其涉及一种机器学习的数据处理方法、装置、电子设备及计算机可读存储介质。
背景技术
随着计算机技术发展和大数据应用的普及,使用机器学习算法从大数据中挖掘出有用信息越来越频繁。同时在机器学习建模过程中也发现,数据对于机器学习模型质量有着至关重要的作用。如果能获取更多高质量的数据,训练出的模型性能越好。而在实际业务中,数据常常包含了用户的隐私信息。根据一些数据监管法律法规,不能直接从第三方收集数据。在联邦学习的技术框架下,通过数据加密运算,可以做到既能保护用户隐私又能充分挖掘各方数据价值。联邦学习使用的加密计算方法之一为非对称加密,这种算法非常耗费算力,其中主要原因之一就是非对称加密中参与计算的数字位宽很大,比如256bit、512bit、1024bit,甚至更高。
图形处理器(GPU,Graphics Processing Unit)作为一种异构计算硬件,其计算单元为数量众多的通用并行计算架构单元(CPU,Compute Unified Device Architecturecore),可以用于并行加速很多算法。但现有的程序基本是利用了数据并行的特点,没有发挥出流水线的优势。利用图形处理器异构硬件加速时,数据先从中央处理器拷贝到图形处理器,再由图形处理器计算,计算完再从图形处理器到中央处理器,这三个步骤有严格的先后关系,所以在执行拷贝时,图形处理器的计算资源闲置浪费,执行计算时,数据接口资源闲置浪费。
相关技术中,基于传统利用图形处理器异构硬件加速的技术方案,由于数据在中央处理器、图形处理器的频繁传输,导致计算资源以及数据接口资源的浪费,无法有效的提高计算效率,且涉及到计算的数字位宽很大时,对计算效率的提升不明显。
发明内容
本申请实施例提供一种机器学习的数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够充分利用硬件资源,实现高效率计算加速。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种机器学习的数据处理方法,包括:
通过中央处理器启动图形处理器中用于机器学习的多个并行流水线计算任务,并将每个所述并行流水线计算任务的状态更新为就绪状态;
通过所述中央处理器向第一并行流水线计算任务传输第一数据,并在传输过程中将除所述第一并行流水线计算任务之外的并行流水线计算任务的状态从所述就绪状态更新为等待状态;
当所述第一并行流水线计算任务开始时,通过所述中央处理器将第二数据传输到第二并行流水线计算任务中进行计算;其中,所述第二并行流水线计算任务为除所述第一并行流水线计算任务之外的任意并行流水线计算任务;
当每个所述并行流水线计算任务完成时,将每个所述并行流水线计算任务的计算结果进行汇总,得到所述机器学习的运算结果。
本申请实施例提供一种机器学习的数据处理装置,包括:
数据启动模块,用于通过中央处理器启动图形处理器中用于机器学习的多个并行流水线计算任务,并将每个所述并行流水线计算任务的状态更新为就绪状态;
数据传输模块,用于通过所述中央处理器向第一并行流水线计算任务传输第一数据,并在传输过程中将除所述第一并行流水线计算任务之外的并行流水线计算任务的状态从所述就绪状态更新为等待状态;
数据计算模块,用于当所述第一并行流水线计算任务开始时,通过所述中央处理器将第二数据传输到第二并行流水线计算任务中进行计算;其中,所述第二并行流水线计算任务为除所述第一并行流水线计算任务之外的任意并行流水线计算任务;
数据汇总模块,用于当每个所述并行流水线计算任务完成时,将每个所述并行流水线计算任务的计算结果进行汇总,得到所述机器学习的运算结果。
在上述方案中,所述数据启动模块,还用于根据待计算数据在所述中央处理器中传输的速度,确定所述多个并行流水线计算任务的数量;其中,所述待计算数据包括所述第一数据和所述第二数据,所述多个并行流水线计算任务的数量与所述待计算数据在中央处理器中传输的速度负相关;将所述待计算数据拆分成多份,并通过通用并行计算架构的接口建立相互独立的多个并行流水线计算任务。
在上述方案中,所述数据传输模块,还用于所述待计算数据被拆分的份数与所述多个并行流水线计算任务的数量相等,所述多份数据与所述多个并行流水线计算任务存在一一对应的关系;将所述多份数据中的任意一份数据作为所述第一数据,并通过所述中央处理器向第一并行流水线计算任务进行传输。
在上述方案中,所述数据计算模块,还用于针对所述第一并行流水线计算任务执行以下处理:通过所述中央处理器计算数据拷贝时间和数据计算时间的比值,基于所述比值确定所述第一并行流水线计算任务中串行子计算任务的数量;根据所述串行子计算任务的数量,将所述第一并行流水线计算任务分割成具有关联关系的多个串行子计算任务;其中,所述多个串行子计算任务用于对所述第一数据进行计算,以得到所述第一并行流水线计算任务的计算结果。
在上述方案中,数据计算模块,还用于根据所述串行子计算任务的数量,将所述串行子计算任务分割成多个串行子计算任务;将第1个所述串行子计算任务设置为数据转入,并将最后一个所述串行子计算任务设置为数据转出,以及将第2至倒数第二个所述串行子计算任务设置为多个运算级,得到所述多个串行子计算任务,其中,所述第2至倒数第二个多个串行子计算任务用于基于所述第一数据进行计算。
在上述方案中,数据计算模块,还用于根据所述第一数据的运算特征,将所述第一数据划分成多个独立的运算部分;其中所述运算部分包括运算数据和运算规则;将所述多个独立的运算部分传输到所述第2至倒数第二个所述串行子计算任务中进行计算;其中所述多个独立的运算部分与所述第2至倒数第二个所述串行子计算任务存在一一对应的关系。
在上述方案中,数据计算模块,还用于针对不同并行流水线计算任务中不具有关联关系的任意两个串行子计算任务,执行以下处理:通过通用并行计算架构的函数对所述不具有关联关系的任意两个串行子计算任务进行异步调用。
在上述方案中,数据计算模块,还用于将所述多份数据中除所述第一数据以外的任意一份数据作为所述第二数据,并通过所述中央处理器将所述第二数据传输到第二并行流水线计算任务中进行计算。
在上述方案中,数据汇总模块,还用于当所述并行流水线计算任务中的每个串行子计算任务完成时,对每个所述串行子计算任务的计算结果进行汇总得到运算结果;其中,所述运算结果为所述串行子计算任务对应的所述并行流水线计算任务的计算结果;每个所述并行流水线计算任务的运算结果进行汇总,得到所述机器学习的运算结果。
本申请实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行存储器中存储的可执行指令时,实现本申请实施例提供的机器学习的数据处理方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于被处理器执行时,实现本申请实施例提供的机器学习的数据处理方法。
本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的机器学习的数据处理方法。
本申请实施例具有以下有益效果:
通用中央处理器启动图形处理器中的并行流水线计算任务,并控制并行流水线计算任务的状态,对计算数据的传输进行处理。与相关技术中对大数的模幂运算加速方法相比,本申请基于流水线的优化设计,充分利用图形处理器上的数据传输和计算资源,不仅在数据层面并行加速,在流水线上也进行优化设计,进而充分利用硬件资源,实现高效率计算加可以达到更优的加速效果。
附图说明
图1是本申请实施例提供的数据计算系统的一个可选的结构示意图;
图2是本申请实施例提供的电子设备的一个可选的结构示意图;
图3是本申请实施例提供的数据计算方法的一个可选的流程示意图;
图4是本申请实施例提供的数据计算方法的一个可选的流程示意图;
图5是本申请实施例提供的数据计算方法的一个可选的流程示意图;
图6是本申请实施例提供的数据计算方法的一个可选的流程示意图;
图7是本申请实施例提供的数据计算方法的一个可选的系统架构示意图;
图8是本申请实施例提供的数据计算方法的一个可选的处理示意图;
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)通用并行计算架构(CUDA,Compute Unified Device Architecture),通用并行计算架构是用于图形处理器计算的开发环境,一个全新的软硬件架构,可以将图形处理器视为一个并行数据计算的设备,对所进行的计算进行分配和管理。
2)异构计算(HC,Heterogeneous Computer)技术:能高效地获取高性能计算能力、可扩展性好、计算资源利用率高、发展潜力巨大,目前已经成为并行/分布计算领域的热点技术。异构计算主要是指使用不同体系架构的计算单元组成系统的计算方式。
3)大数模幂运算及规则(Modular power operations and rules for largenumbers):模运算即求余运算。“模”是“Mod”的音译,模运算多应用于程序编写中。Mod的含义为求余。模运算在数论和程序设计中都有着广泛的应用,例如奇偶数的判别到素数的判别、模幂运算到最大公约数的求法、孙子问题到凯撒密码问题。幂运算则是指先进行幂运算,在进行模运算。
申请人发现,相关技术在利用图形处理器异构硬件加速时,数据先从中央处理器拷贝到图形处理器,再由图形处理器计算,计算完再从图形处理器拷贝回中央处理器,这三个步骤有严格的先后关系,所以在执行拷贝时,图形处理器的计算资源闲置浪费了,执行计算时,数据接口资源闲置浪费。图形处理器在高位宽且数据量庞大的场景下,具有更深的挖掘图形处理器的计算优势的前景。
本申请实施例提供一种机器学习的数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够充分利用硬件资源,实现高效率计算加速。
首先对本申请实施例提供的机器学习的数据处理系统进行说明,参见图1,图1是本申请实施例提供的机器学习的数据处理系统100的一个可选的架构示意图,终端400通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输。
在一些实施例中,终端400可以是笔记本电脑,平板电脑,台式计算机,智能手机,专用消息设备,便携式游戏设备,智能音箱,智能手表等,但并不局限于此。服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,Content Delivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器。网络300可以是广域网或者局域网,又或者是二者的组合。终端400以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
终端400,用于发送携带待处理的数据计算请求至服务器200,以请求服务器200计算出该待处理数据的计算结果。
服务器200,用于从数据计算请求中通过中央处理器启动图形处理器中用于机器学习的多个并行流水线计算任务,并将每个并行流水线计算任务的状态更新为就绪状态;通过中央处理器向第一并行流水线计算任务传输第一数据,并在传输过程中将除第一并行流水线计算任务之外的并行流水线计算任务的状态从就绪状态更新为等待状态;当第一并行流水线计算任务开始时,通过中央处理器将第二数据传输到第二并行流水线计算任务中进行计算;其中,第二并行流水线计算任务为除第一并行流水线计算任务之外的任意并行流水线计算任务;当每个并行流水线计算任务完成时,将每个并行流水线计算任务的计算结果进行汇总,得到机器学习的运算结果,并将运算结果返回至终端400;终端400,还用于输出待计算数据的运算结果。
在一些实施例中,终端400上设置有数据计算客户端410,数据计算客户端410响应于数据计算指令,发送待处理的数据计算请求至服务器;服务器从数据计算请求中通过中央处理器启动图形处理器中用于机器学习的多个并行流水线计算任务,并将每个并行流水线计算任务的状态更新为就绪状态;通过中央处理器向第一并行流水线计算任务传输第一数据,并在传输过程中将除第一并行流水线计算任务之外的并行流水线计算任务的状态从就绪状态更新为等待状态;当第一并行流水线计算任务开始时,通过中央处理器将第二数据传输到第二并行流水线计算任务中进行计算;其中,第二并行流水线计算任务为除第一并行流水线计算任务之外的任意并行流水线计算任务;当每个并行流水线计算任务完成时,将每个并行流水线计算任务的计算结果进行汇总,得到机器学习的运算结果,并将运算结果返回至数据计算客户端410,合格数据计算客户端410输出运算结果。
需要说明的是,本申请实施例提供的数据计算方法除了可以由终端和服务器联合实施外,还可以由终端独立实现。
下面,说明实施本申请实施例提供的数据计算方法的电子设备为终端时的示例性应用。
示例的,以图1中的终端400为例,终端400上设置有数据计算客户端410,用户基于数据计算客户端410通过中央处理器启动图形处理器中用于机器学习的多个并行流水线计算任务,并将每个并行流水线计算任务的状态更新为就绪状态;通过中央处理器向第一并行流水线计算任务传输第一数据,并在传输过程中将除第一并行流水线计算任务之外的并行流水线计算任务的状态从就绪状态更新为等待状态;当第一并行流水线计算任务开始时,通过中央处理器将第二数据传输到第二并行流水线计算任务中进行计算;其中,第二并行流水线计算任务为除第一并行流水线计算任务之外的任意并行流水线计算任务;当每个并行流水线计算任务完成时,将每个并行流水线计算任务的计算结果进行汇总,得到机器学习的运算结果,并将运算结果返回至数据计算客户端410,数据计算客户端410输出运算结果。
示例的,本申请实施例提供的数据计算方法可以应用于语音识别,图像处理等,例如以语音识别为例,在语音识别过程中从一段连续声波中采样,将每个采样值量化,得到声波的压缩数字化表示。采样值位于重叠的帧中,对于每一帧,抽取出一个描述频谱内容的特征向量。然后,根据语音信号的特征识别语音所代表的单词,通过语音信号采集语音通常通过话筒输入计算机。话筒将声波转换为电压信号,然后通过A/D装置(如声卡)进行采样,从而将连续的电压信号转换为计算机能够处理的数字信号。通过对语音信号预处理语音信号号在采集后首先要进行滤波、A/D变换,预加重(Preemphasis)和端点检测等预处理,。线性预测编码的基本思想是:语音信号采样点之间存在相关性,可用过去的若干采样点的线性组合预测当前和将来的采样点值。线性預测系数以通过使预测信号和实际信号之间的均方误差最小来唯一确定。语音线性预测系数作为语音信号的一种特征参数,把标量改为一维的向量,对向量进行量化。和标量量化一样,向量量化是把向量空间分成若干个小区域,每个小区域寻找一个代表向量,量化时落入小区域的向量就用这个代表向量代替。当提取声音特征集合以后,就可以识别这些特征所代表的单词。识别系统的输入是从语音信号中提取出的特征参数,通过最大似然决策贝叶斯(Bayes)判决的基础上预测编码参数。在预测编码参数中涉及的运算可以采用本发明提供的数据计算方法以加快数据处理的效率。
参见图2,图2是本申请实施例提供的电子设备500的一个可选的结构示意图,在实际应用中,电子设备500可以实施为图1中的终端400或服务器200,以电子设备为图1所示的服务器200为例,对实施本申请实施例的数据计算方法的电子设备进行说明。图2所示的电子设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线系统540耦合在一起。可以理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统540。
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块553,用于经由一个或多个与用户接口530相关联的输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,对于服务器来说,上述的用户接口、呈现模块和输出处理装置是可以缺省的。
在一些实施例中,本申请实施例提供的数据计算装置可以采用软件方式实现,图2示出了存储在存储器550中的数据计算装置555,其可以是程序和插件等形式的软件,包括以下软件模块:数据启动模块5551、特征传输模块5552、数据计算模块5553、数据汇总模块5554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的数据计算装置可以采用硬件方式实现,作为示例,本申请实施例提供的数据计算装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的数据计算方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
参见图3,图3是本申请实施例提供的机器学习的数据处理方法的一个可选的流程示意图,将结合图3示出的步骤进行说明。
在步骤101中,通过中央处理器启动图形处理器中用于机器学习的多个并行流水线计算任务。
这里,中央处理器的结构主要包括运算器(AU,Arithmetic Unit)、控制单元(CU,Control Unit)、寄存器(Register)、高速缓存器(Cache)和它们之间通讯的数据、控制及状态的总线。计算单元主要执行算术运算、移位等操作以及地址运算和转换,存储单元主要用于保存运算中产生的数据以及指令等。控制单元则对指令译码,并且发出为完成每条指令所要执行的各个操作的控制信号,而图形处理器无法单独工作,需要由中央处理器进行控制启动。其中并行流水线计算任务可以是同时使用多种计算资源解决计算问题的过程,并提高计算机系统计算速度和处理能力。通过多个处理器来共同求解同一问题,将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行计算,通过中央处理器启动图形处理器中多个并行流水线计算任务可以提高计算效率。
例如,当中央处理器读取到指令后,通过指令总线送到控制器中进行译码,并发出相应的操作控制信号,对图形处理器中的运算单元进行控制,并启动形成多个并行流水线计算任务,其中并行流水线计算任务是由图形处理器中的处理核心组成,按照操作指令对数据进行计算。
需要说明的是,中央处理器可单独处理复杂的逻辑运算和不同的数据类型,当需要大量的处理类型统一的数据时,可通过中央处理器调用图形处理器进行并行计算,其中多个并行流水线计算任务包括第一并行流水线计算任务。
在步骤102中,将每个并行流水线计算任务的状态更新为就绪状态。
在一些实施例中,并行流水线计算任务的状态包括就绪状态、等待状态、执行状态、阻塞状态。例如流水线计算任务在运行中不断地改变运行状态。其中就绪状态是指当流水线计算任务已分配到除中央处理器以外的所有必要的资源,只要获得处理机便可立即执行。执行状态是指当流水线计算任务已获得处理机,其程序正在处理机上执行,此时的流水线计算任务状态称为执行状态。阻塞状态是指流水线计算任务正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而进入阻塞状态。引起进程阻塞的事件有很多种,例如等待I/O完成、申请缓冲区不能满足、等待信号等。
需要说明的是,处理机包括中央处理器,主存储器,输入-输出接口,加接外围设备构成完整的计算机系统。处理机是处理计算机系统中存储程序和数据,并按照程序规定的步骤执行指令的部件。
在步骤103中,通过中央处理器向第一并行流水线计算任务传输第一数据,并在传输过程中将除第一并行流水线计算任务之外的并行流水线计算任务的状态从就绪状态更新为等待状态。
承接上文,这里第一数据指的是根据大数模幂运算及规则将待计算数据中256bit的大数模幂运算中被分成4个64bit大数模幂运算中的其中一个,通过中央处理器将被选中的64bit大数模幂运算向第一并行流水线任务进行传输时,将由通用并行计算架构的接口建立的除第一并行流水线计算任务以外的并行流水线计算任务的状态从就绪状态更新为等待状态,进而实现并行流水线计算任务的快速响应。
需要说明的是,除第一并行流水线计算任务之外的并行流水线计算任务具体是:在多个并行流水线计算任务中除第一并行流水线计算任务之外的其他并行流水线计算任务。
在步骤104中,当第一并行流水线计算任务开始时,通过中央处理器将第二数据传输到第二并行流水线计算任务中进行计算;其中,第二并行流水线计算任务为除第一并行流水线计算任务之外的任一并行流水线计算任务。
在一些实施例中,将所述多份数据中除所述第一数据以外的任意一份数据作为所述第二数据,并通过所述中央处理器将所述第二数据传输到第二并行流水线计算任务中进行计算。
作为示例,根据第一数据64bit大数模幂运算中的运算特征,将第一数据64bit大数模幂运算划分成4个独立的运算部分,将4份数据中除第一数据以外的任意一份数据作为第二数据,例如将第二数据64bit大数模幂运算通过中央处理器传输到第二并行流水线计算任务中进行计算。
在一些实施例中,参见图4,在执行完图3示出的步骤101之前,还可以执行图4示出步骤106至步骤107,将结合图4示出的步骤进行说明。
在步骤106中,根据待计算数据在中央处理器中传输的速度,确定多个并行流水线计算任务的数量,其中,待计算数据包括第一数据和第二数据,所述多个并行流水线计算任务的数量与待计算数据在中央处理器中传输的速度负相关。
在一些实施例中,根据待计算数据在中央处理器中传输的速度,确定多个并行流水线计算任务的数量N,其中N为大于1的整数,可以通过以下方式确定多个并行流水线计算任务的数量N:图形处理器的显存和中央处理器片内的内存之间的数据传输是通过显存位宽和显存频率决定的,显存位宽和显存频率越高,并行流水线计算任务的数量越少,反之显存位宽和显存频率越低,并行流水线计算任务的数量越多,并行流水线计算任务的数量与显存频率和显存位宽负相关,通过根据待计算数据在中央处理器中传输的速度合理的确定并行流水线计算任务的数量,提高了硬件资源的利用率。
在步骤107中,将待计算数据拆分成多份,并通过通用并行计算架构的接口建立相互独立的多个并行流水线计算任务。
在一些实施例中,将待计算数据拆分成N份,并通过通用并行计算架构的接口建立相互独立的N个并行流水线计算任务,根据大数模幂运算及规则将待计算数据分解为多个部分,再通过通用并行计算架构的接口建立相互独立的多个并行流水线计算任务,通过建立后的多个并行流水线计算任务分别去计算这些小块的数据得到各自的计算结果,最后再将其汇总起来。例如将256bit的大数模幂运算拆分为4个64bit大数模幂运算,分别由4个线程并行处理,即N等于4。
在另一些实施例中,待计算数据被拆分的份数与多个并行流水线计算任务的数量相等,将N份数据中的任意一份数据作为第一数据,并通过中央处理器向第一并行流水线计算任务进行传输,承接上文作为示例根据大数模幂运算及规则将4个64bit大数模幂运算待计算数据中任一一个64bit大数模幂运算作为第一数据通过中央处理器向第一并行流水线计算任务进行传输。
在步骤105中,当每个并行流水线计算任务完成时,将每个并行流水线计算任务的计算结果进行汇总,得到机器学习的运算结果。
在一些实施例中,当并行流水线计算任务中的每个串行子计算任务完成时,对每个串行子计算任务的计算结果进行汇总得到运算结果;其中,运算结果为串行子计算任务对应的并行流水线计算任务的计算结果;将每个并行流水线计算任务的运算结果进行汇总,得到机器学习的运算结果。
作为示例,当并行流水线计算任务中的每个串行子计算任务完成对应的计算待计算数据时,得到相应的计算结果。在每个串行子计算任务计算得到的计算结果,并将计算结果存储到每个串行子计算任务对应的最后一个串行子计算任务后,将最后一个串行子计算任务中得到的计算结果进行汇总从而得到机器学习的运算结果,进而加快了计算结果汇总的效率。
在一些实施例中,参见图5,在执行完图3示出的步骤103之前,还可以执行图5示出步骤108至步骤109,将结合图5示出的步骤进行说明。
在步骤108中,通过中央处理器计算数据拷贝时间和数据计算时间的比值,基于比值确定第一并行流水线计算任务中串行子计算任务的数量。
在一些实施例中,根据中央处理器向内存写数据的时间以及读内存数据的时间确定出数据拷贝时间A,具体的当程序加载进内存后,指令放在代码(CODE)段,数据放在数据段。数据段中数据的地址由段寄存器和该数据偏移组成。代码段的地址由cs寄存器和ip寄存器组成。中央处理器向内存写数据的时,相当于将数据写入内存地址中。数据的地址经过地址总线送给译码器,译码器的有效输出送给锁存单元的使能端,而中央处理器中寄存器数据通过数据总线送给锁存单元的输入端,实现数据存入内存。而在中央处理器读内存数据时,相当于将内存地址中的数据读入中央处理器。数据的地址经过地址总线送给译码器,译码器的有效输出送给锁存单元的使能端,此时锁存单元将输出端数据送入数据总线,再通过数据总线送入中央处理器。数据计算时间是指中央处理器对所输入的待计算数据通过计算得出最后的运算结果所用的时间为数据计算时间B。
作为示例,根据待计算数据拷贝时间A为0.012ms与待计算数据计算时间B的比值为0.002ms,从而确定出第一并行流水线计算任务中串行子计算任务的数量M,M等于6。
需要说明的是,通过中央处理器计算数据拷贝时间和数据计算时间的比值,基于比值确定第一并行流水线计算任务中串行子计算任务的数量M,M为大于1的整数。
在步骤109中,根据串行子计算任务的数量,将第一并行流水线计算任务分割成具有关联关系的多个串行子计算任务。
在一些实施例中,根据串行子计算任务的数量,将串行子计算任务分割成M个串行子计算任务;将第1个所述串行子计算任务设置为数据转入,并将第M个串行子计算任务设置为数据转出,以及将第2至M-1个串行子计算任务设置为多个运算级,得到多个串行子计算任务,其中,第2至M-1个多个串行子计算任务用于基于第一数据进行计算。
作为示例,根据待计算数据拷贝时间A与待计算数据计算时间B的比值确定出第一并行流水线计算任务中串行子计算任务的数量为X,根据串行子计算任务用于对第一数据进行计算,从而得到第一并行流水线计算任务的计算结果。
在另一些实施例中,承接上文,根据所确定的串行子计算任务的数量M,M为6时,即将串行子计算任务分割成6个串行子计算任务,将第1个串行子计算任务设置为接收待计算数据的计算任务,即可以接收到所需要计算的待计算数据并进行存储,并将第2至5个串行子计算任务设置为多个运算级,通过对第1个串行子计算任务中存储的待计算数据进行计算,分阶段的得到相应的计算结果,进而将第6个串行子计算任务设置为将待计算数据计算完成后得到的计算结果进行存储,对之后计算数据结果的转出进行准备,基于流水线式优化程序的基础上,在不同的运算级上对数据进行转入和转出。
在另一些实施例中,根据第一数据64bit大数模幂运算中的运算特征,将第一数据64bit大数模幂运算划分成4个独立的运算部分,即分成4个16bit大数模幂运算,在16bit大数模幂运算中包括具体的数据以及数据之间相互的运算规则,并将4个16bit大数模幂运算中所包括的运算部分依次对应的传输到第2至5个串行子计算任务中进行计算,即第一个16bit大数模幂运算传输到第2个串行子计算任务中进行计算,第二个16bit大数模幂运算传输到第3个串行子计算任务中进行计算,依次类推。
在另一些实施例中,针对不同并行流水线计算任务中不具有关联关系的任意两个串行子计算任务,执行以下处理:通过通用并行计算架构的函数对不具有关联关系的任意两个串行子计算任务进行异步调用,具体的,对处于同一数据流内的计算与数据拷贝都是依次进行的,但一个数据流内的计算可以和另一个流的数据传输同时进行,通过异步调用能够使图形处理器中的执行单元与存储器单元同时工作,更好地提高图形处理器的性能。并且当图形处理器在进行计算或者数据传输时就返回给主机线程,主机不必等待图形处理器运行完毕就可以进行一些计算。使用图形处理器的异步函数,会使设备在完成请求任务前,返回主机线程,主机线程不会进入让步(yield)、阻滞(block)或者自旋(spi n)。
下面,将说明本申请实施例在实际的应用场景(例如推荐场景、图像识别场景)中的示例性应用。以实施例提供的数据计算方法由服务器实施进行说明。
参见图6,图6是本申请实施例提供的数据计算方法的一个可选的流程示意图,将结合图6示出的步骤进行说明。
以应用于联邦学习为例,参见图7,图7是本申请实施例提供的数据计算方法的一个可选的系统架构示意图,以推荐场景为例,例如根据多个银行之间共享用户数据,将各银行间共享的用户数据通过联邦学习训练推荐模型,服务器在接收到本地计算设备的本地参数信息更新之后,更新全局参数信息(U1、U2…Un),服务器不需要等待本地计算设备发送完整的待计算数据。异步并行模式规避了等待计算设备的问题,能够加速全局参数信息的更新流程,从而减少联邦学习推荐模型的训练时长,并根据联邦学习推荐模型向客户进行产品推荐。以图像识别场景为例,例如多个医院之间共享的医疗图像数据,将共享的医疗图像数据通过联邦学习训练病灶识别模型,进行参数的异步更新,能够加速医疗图像的特征参数信息的更新,进而加快在不同医院间对病变图像的识别。
步骤401,根据待计算数据在中央处理器中传输的速度,确定流水线的条数。
作为示例,CPU包括运算器,寄存器和控制器三部分,运算器是指计算机中的各种算数和逻辑运算操作的部件,算术逻辑单元是中央处理器核心部分,相当于执行部门;控制器是发布命令,发挥着整个计算机系统操作的协调与指挥作用,相当于调控中心;而寄存器就是由控制器到达运算器的途径,相当于中转的一个连接站,采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度将待计算的数据拆分为N份,这个例子中取N为4,然后通过CUDA接口建立4个相互独立的流水线。
步骤402,在大数模幂的GPU加速算法中,根据评估数据拷贝时间和数据计算时间的比例,数据计算时间大致为数据拷贝的4倍,将大数模幂运算拆分成4个相互依赖的小步骤。
在一些实施例中,根据大数模幂的运算数据和运算规则,对接收到的数据设置对应运算级,放入运算级中,例如对于1024位的大整数运算,将其分成256位,依据大数模运算的运算特点,大数模运算可以分成多个独立的运算,对256位继续进行细化成4个64位,还可以进一步对单个64位再分成4个16位的整数运算,加上数据转入和数据转出,设计成一个6级流水线。流水线中的每一级运算,都会在上级计算完成后进入待执行状态,一旦有计算资源,就会立刻执行。
参见图8,图8是本申请实施例提供的数据计算方法的一个可选的处理示意图,将结合图8进行说明。
步骤403,在CPU代码端启动所有流水线任务,4条流水线就绪。流水线1在执行数据传入时,其他3条流水线等待执行;流水线1进入第一级数据运算时,流水线2可以同时进行数据传输,合理利用硬件资源。
在一些实施例中,对不存在依赖关系的运算级,利用CUDA的函数异步调用实现CPU和GPU子任务的异步协同并行。对在GPU上处理的运算级,利用CUDA编程设计实现该运算级的GPU并行处理,GPU中独立的计算产生的中间结果直接存储在GPU的设备存储器中,不拷贝到主机内存,仅仅将最终结果拷贝到主机内存,同时利用CUDA的流并行使CPU、GPU间的数据传输与计算执行重叠。
需要说明的是,相比与未经过优化的程序中,数据的处理流程仅仅为数据拷进、数据计算和数据拷出并有着严格的次序,而在对流水线经过优化的程序后会分成多条流水线对数据进行处理。
步骤404,等待所有流水线运行完成,则完成了所有的数据计算。
下面继续说明本申请实施例提供的数据计算装置555的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器550的数据计算装置555中的软件模块可以包括:数据启动模块5551,用于通过中央处理器启动图形处理器中用于机器学习的多个并行流水线计算任务,并将每个并行流水线计算任务的状态更新为就绪状态;数据传输模块5552,用于通过中央处理器向第一并行流水线计算任务传输第一数据,并在传输过程中将除第一并行流水线计算任务之外的并行流水线计算任务的状态从就绪状态更新为等待状态;数据计算模块5553,用于当第一并行流水线计算任务开始时,通过中央处理器将第二数据传输到第二并行流水线计算任务中进行计算;其中,第二并行流水线计算任务为除第一并行流水线计算任务之外的任一并行流水线计算任务;数据汇总模块5554,用于当每个并行流水线计算任务完成时,将每个并行流水线计算任务的计算结果进行汇总,得到机器学习的运算结果;
在一些实施例中,数据启动模块5551,还用于根据待计算数据在中央处理器中传输的速度,确定多个并行流水线计算任务的数量;其中,待计算数据包括第一数据和第二数据,所述多个并行流水线计算任务的数量与待计算数据在中央处理器中传输的速度负相关;将待计算数据拆分成多份,并通过通用并行计算架构的接口建立相互独立的多个并行流水线计算任务;其中,待计算数据与并行流水线计算任务存在一一对应的关系。
在一些实施例中,数据传输模块5552,还用于待计算数据被拆分的份数与所述多个并行流水线计算任务的数量相等,所述多份数据与所述多个并行流水线计算任务存在一一对应的关系;将多份数据中的任意一份数据作为第一数据,并通过中央处理器向第一并行流水线计算任务进行传输。
在一些实施例案中,数据计算模块5553,还用于针对第一并行流水线计算任务执行以下处理:通过中央处理器计算数据拷贝时间和数据计算时间的比值,基于比值确定第一并行流水线计算任务中串行子计算任务的数量;根据串行子计算任务的数量,将第一并行流水线计算任务分割成具有关联关系的多个串行子计算任务;其中,多个串行子计算任务用于对第一数据进行计算,以得到第一并行流水线计算任务的计算结果。
在一些实施例中,数据计算模块5553,还用于根据串行子计算任务的数量,将串行子计算任务分割成多个串行子计算任务;将第1个串行子计算任务设置为数据转入,并将最后一个串行子计算任务设置为数据转出,以及将第2至倒数第二个串行子计算任务设置为多个运算级,得到多个串行子计算任务,其中,第2至倒数第二个多个串行子计算任务用于基于第一数据进行计算。
在一些实施例中,数据计算模块5553,还用于根据第一数据的运算特征,将第一数据划分成多个独立的运算部分;其中运算部分包括运算数据和运算规则;将多个独立的运算部分传输到第2至倒数第二个串行子计算任务中进行计算;其中多个独立的运算部分与第2至倒数第二个串行子计算任务存在一一对应的关系。
在一些实施例中,数据计算模块5553,还用于针对不同并行流水线计算任务中不具有关联关系的任意两个串行子计算任务,执行以下处理:通过通用并行计算架构的函数对不具有关联关系的任意两个串行子计算任务进行异步调用。
在一些实施例中,数据计算模块5553,还用于将多份数据中除第一数据以外的任意一份数据作为第二数据,并通过中央处理器将第二数据传输到第二并行流水线计算任务中进行计算。
在一些实施例中,数据汇总模块5554,还用于当并行流水线计算任务中的每个串行子计算任务完成时,对每个串行子计算任务的计算结果进行汇总得到运算结果;其中,运算结果为串行子计算任务对应的并行流水线计算任务的计算结果;每个并行流水线计算任务的运算结果进行汇总,得到机器学习的运算结果。需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。
本申请实施例提供了一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现本申请实施例提供的数据计算方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的数据计算方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上,本发明实施例的技术方案具有以下有益效果:
利用通用并行计算架构对中央处理器和图形处理器进行数据的控制,并基于流水线式优化程序的基础上,在不同的运算级上对数据进行转入和转出。与相关技术中对大数的模幂运算加速方法相比,本申请基于流水线和并行化双重优化设计,通过对待大数的计算数据根据运算规则进行提前划分,充分利用图形处理器上的数据传输和计算资源,不仅在数据层面并行加速,并通过在流水线计算任务进行串行子计算任务的分割使得计算数据与子计算任务一一对应,充分利用硬件资源,实现高效率计算可以达到更优的加速效果。
以上,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (13)
1.一种机器学习的数据处理方法,其特征在于,应用于电子设备,所述电子设备包括中央处理器和图形处理器,所述方法包括:
通过所述中央处理器启动所述图形处理器中用于机器学习的多个并行流水线计算任务,并将每个所述并行流水线计算任务的状态更新为就绪状态;
通过所述中央处理器向第一并行流水线计算任务传输第一数据,并在传输过程中将除所述第一并行流水线计算任务之外的并行流水线计算任务的状态,从所述就绪状态更新为等待状态;
当所述第一并行流水线计算任务开始时,通过所述中央处理器将第二数据传输到第二并行流水线计算任务中进行计算;其中,所述第二并行流水线计算任务为除所述第一并行流水线计算任务之外的任意并行流水线计算任务;
当每个所述并行流水线计算任务完成时,将每个所述并行流水线计算任务的计算结果进行汇总,得到所述机器学习的运算结果。
2.根据权利要求1所述的方法,其特征在于,所述通过中央处理器启动图形处理器中用于机器学习的多个并行流水线计算任务之前,所述方法还包括:
根据待计算数据在所述中央处理器中传输的速度,确定所述多个并行流水线计算任务的数量;
其中,所述待计算数据包括所述第一数据和所述第二数据,所述多个并行流水线计算任务的数量与所述待计算数据在中央处理器中传输的速度负相关;
将所述待计算数据拆分成多份数据,并通过通用并行计算架构的接口建立相互独立的多个并行流水线计算任务。
3.根据权利要求2所述的方法,其特征在于,
所述待计算数据被拆分的份数与所述多个并行流水线计算任务的数量相等,所述多份数据与所述多个并行流水线计算任务存在一一对应的关系;
所述通过所述中央处理器向第一并行流水线计算任务传输第一数据,包括:
将所述多份数据中的任意一份数据作为所述第一数据,并通过所述中央处理器向第一并行流水线计算任务进行传输。
4.根据权利要求1所述的方法,其特征在于,当所述第一并行流水线计算任务开始时之前,所述方法还包括:
针对所述第一并行流水线计算任务执行以下处理:
通过所述中央处理器计算数据拷贝时间和数据计算时间的比值,基于所述比值确定所述第一并行流水线计算任务中串行子计算任务的数量;
根据所述串行子计算任务的数量,将所述第一并行流水线计算任务分割成具有关联关系的多个串行子计算任务;
其中,所述多个串行子计算任务用于对所述第一数据进行计算,以得到所述第一并行流水线计算任务的计算结果。
5.根据权利要求4所述的方法,其特征在于,所述根据所述串行子计算任务的数量,将所述第一并行流水线计算任务分割成具有关联关系的多个串行子计算任务,包括:
根据所述串行子计算任务的数量,将所述串行子计算任务分割成多个串行子计算任务;
将第1个所述串行子计算任务设置为数据转入,并将最后一个所述串行子计算任务设置为数据转出,以及将第2至倒数第二个所述串行子计算任务设置为多个运算级,得到所述多个串行子计算任务,其中,所述第2至倒数第二个多个串行子计算任务用于基于所述第一数据进行计算。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
根据所述第一数据的运算特征,将所述第一数据划分成多个独立的运算部分;其中所述运算部分包括运算数据和运算规则;
将所述多个独立的运算部分传输到所述第2至倒数第二个所述串行子计算任务中进行计算;其中所述多个独立的运算部分与所述第2至倒数第二个所述串行子计算任务存在一一对应的关系。
7.根据权利要求4的方法,其特征在于,所述方法还包括:
针对不同并行流水线计算任务中不具有关联关系的任意两个串行子计算任务,执行以下处理:
通过通用并行计算架构的函数对所述不具有关联关系的任意两个串行子计算任务进行异步调用。
8.根据权利要求1所述的方法,其特征在于,所述通过所述中央处理器将第二数据传输到第二并行流水线计算任务中进行计算,包括:
将所述多份数据中除所述第一数据以外的任意一份数据作为所述第二数据,并通过所述中央处理器将所述第二数据传输到第二并行流水线计算任务中进行计算。
9.根据权利要求1所述的方法,其特征在于,所述当每个所述并行流水线计算任务完成时,将每个所述并行流水线计算任务的运算结果进行汇总,得到机器学习的运算结果,包括:
当所述并行流水线计算任务中的每个串行子计算任务完成时,对每个所述串行子计算任务的计算结果进行汇总得到运算结果;其中,所述运算结果为所述串行子计算任务对应的所述并行流水线计算任务的计算结果;
将每个所述并行流水线计算任务的运算结果进行汇总,得到所述机器学习的运算结果。
10.一种机器学习的数据处理装置,其特征在于,装置包括:
数据启动模块,用于通过中央处理器启动图形处理器中用于机器学习的多个并行流水线计算任务,并将每个所述并行流水线计算任务的状态更新为就绪状态;
数据传输模块,用于通过所述中央处理器向第一并行流水线计算任务传输第一数据,并在传输过程中将除所述第一并行流水线计算任务之外的并行流水线计算任务的状态从所述就绪状态更新为等待状态;
数据计算模块,用于当所述第一并行流水线计算任务开始时,通过所述中央处理器将第二数据传输到第二并行流水线计算任务中进行计算;其中,所述第二并行流水线计算任务为除所述第一并行流水线计算任务之外的任意并行流水线计算任务;
数据汇总模块,用于当每个所述并行流水线计算任务完成时,将每个所述并行流水线计算任务的计算结果进行汇总,得到所述机器学习的运算结果。
11.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行存储器中存储的可执行指令时,实现权利要求1至9任一项机器学习的数据处理方法。
12.一种计算机可读存储介质,其特征在于,存储有可执行指令,所述可执行指令用于被处理器执行时,实现权利要求1至9任一项机器学习的数据处理方法。
13.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至9任一项机器学习的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111197684.5A CN113918224A (zh) | 2021-10-14 | 2021-10-14 | 机器学习的数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111197684.5A CN113918224A (zh) | 2021-10-14 | 2021-10-14 | 机器学习的数据处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113918224A true CN113918224A (zh) | 2022-01-11 |
Family
ID=79240523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111197684.5A Pending CN113918224A (zh) | 2021-10-14 | 2021-10-14 | 机器学习的数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113918224A (zh) |
-
2021
- 2021-10-14 CN CN202111197684.5A patent/CN113918224A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | Pipe-SGD: A decentralized pipelined SGD framework for distributed deep net training | |
WO2022089256A1 (zh) | 联邦神经网络模型的训练方法、装置、设备、计算机程序产品及计算机可读存储介质 | |
KR102121159B1 (ko) | 이벤트-구동 블록체인 워크플로우 프로세싱 | |
US20190324888A1 (en) | Data flow graph computation using exceptions | |
CN111448550A (zh) | 网络可访问的机器学习模型训练和托管系统 | |
US20210295168A1 (en) | Gradient compression for distributed training | |
CN111338695B (zh) | 基于流水线技术的数据处理方法及相关产品 | |
CN110909527B (zh) | 文本处理模型的运行方法、装置、电子设备、及存储介质 | |
WO2014108768A1 (en) | Computing regression models | |
JP2023075239A (ja) | 連合学習方法、装置、機器及び媒体 | |
CN114356540A (zh) | 一种参数更新方法、装置、电子设备和存储介质 | |
KR20210084220A (ko) | 부분 판독/기입을 갖는 재구성 가능한 시스톨릭 어레이를 위한 시스템 및 방법 | |
CN115016735B (zh) | 一种分布式缓存系统的控制方法、装置及介质 | |
CN114911596A (zh) | 针对模型训练的调度方法、装置、电子设备和存储介质 | |
CN115310408A (zh) | 结合元数据的基于变换器的编码 | |
WO2024179503A1 (zh) | 一种语音处理方法及其相关设备 | |
JP2022078286A (ja) | データ処理モデルのトレーニング方法、装置、電子機器及び記憶媒体 | |
US20220237435A1 (en) | Systems and methods for routing within multitask mixture-of-experts models | |
CN117669498A (zh) | 信息处理方法和装置 | |
US11157406B2 (en) | Methods for providing data values using asynchronous operations and querying a plurality of servers | |
CN113918224A (zh) | 机器学习的数据处理方法、装置、电子设备及存储介质 | |
CN116909748A (zh) | 算力资源分配方法、装置、电子设备及存储介质 | |
CN116760661A (zh) | 数据存储方法、装置、计算机设备、存储介质和程序产品 | |
CN114817845B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN116029346A (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 |