CN114020476A - 一种作业的处理方法、设备及介质 - Google Patents
一种作业的处理方法、设备及介质 Download PDFInfo
- Publication number
- CN114020476A CN114020476A CN202111649711.8A CN202111649711A CN114020476A CN 114020476 A CN114020476 A CN 114020476A CN 202111649711 A CN202111649711 A CN 202111649711A CN 114020476 A CN114020476 A CN 114020476A
- Authority
- CN
- China
- Prior art keywords
- computing
- mode
- processing
- task
- job
- 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.)
- Granted
Links
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/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/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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种作业的处理方法、设备及介质,涉及计算机技术领域,该方法包括接收待处理的作业,该作业包括多个计算任务,多个计算任务中的每个计算任务对应至少一个算子,然后根据算子与计算单元的对应关系,确定多个计算任务中每个计算任务对应的计算单元,当多个计算任务中的第一计算任务和第二计算任务对应的计算单元的类型不同时,根据作业的输入规模,确定计算单元的计算模式,接着将多个计算任务调度至对应的计算单元,并通过计算单元按照计算模式对作业进行处理。因此,该方法能够提高作业的处理效率,进而提高人工智能模型的推理效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种作业的处理方法、设备、计算机存储介质及计算机程序产品。
背景技术
随着计算机技术尤其是人工智能(artificial intelligence,AI)技术的发展,AI应用已经广泛用于目标检测、语音识别、人脸识别等领域。AI应用通常是基于AI模型,例如是深度神经网络模型进行推理,以实现相应的功能。利用深度神经网络模型在进行推理过程中,需要大量的计算资源来对推理作业进行处理。一般地,中央处理器(centralprocessing unit,CPU)、图形处理器(graphics processing unit,GPU)、现场可编程逻辑门阵列(field programmable gate array,FPGA)、专用集成电路(application specificintegrated circuit,ASIC)等计算单元能够提供计算资源。
目前,利用深度神经网络模型在进行推理过程中,通过异构计算的方式对推理作业进行处理,如利用多种计算单元对该推理作业进行协同处理。通常情况下,通过异构计算的方式对推理作业进行协同处理的过程较为固定,例如将推理作业中计算量较大的计算任务(例如利用卷积层提取特征的任务)加载到算力较好的计算单元如GPU进行处理,将推理作业中计算量较小的计算任务(例如进行加减法运算的任务)加载到算力较差的计算单元如CPU进行处理。
然而,通过异构计算的方式对推理作业进行处理的效率较差。因此,如何提供一种作业的处理方法,提高人工智能模型的推理效率,是业界重点关注的问题。
发明内容
本申请目的在于:提供一种作业的处理方法、设备、计算机存储介质及计算机程序产品,提高作业的处理效率,进而提高AI模型的推理效率。
本申请技术方案如下:
第一方面,本申请提供了一种作业的处理方法,该方法可以由计算设备执行,计算设备可以包括多种不同的计算单元,例如,计算设备可以包括CPU、GPU、DSP等计算单元,用于对作业进行处理,还包括用于在运行时存储参数、梯度等信息的内存,还包括用于持久存储网络模型或者是模型参数的后端存储系统,还包括用于进行网络数据传输的网络接口控制器,用于接收待处理的作业,如包括多个计算任务的作业,多个计算任务中的每个计算任务对应至少一个算子。具体地,该方法包括:
计算设备接收上述待处理的作业,然后根据算子与计算单元的对应关系,确定多个计算任务中每个计算任务对应的计算单元,当多个计算任务中的第一计算任务和第二计算任务对应的计算单元的类型不同时,根据作业的输入规模,确定计算单元的计算模式,最后将多个计算任务调度至对应的计算单元,并通过计算单元按照确定的计算模式,对作业进行处理。
计算设备在对待处理的作业进行处理过程中,不仅考虑了该待处理的作用中计算任务,而且还考虑了作业的输入规模,利用与计算任务对应的计算单元,对该计算任务进行处理时,能够使计算单元以较高的效率对该计算任务进行处理。并且,基于作业的输入规模,确定计算单元的计算模式,能够有效权衡同步模式下的拷贝时延与异步模式下的竞争时延,进而通过时延较短的计算模式对作业进行处理,能够缩短对作业处理的耗时,提高异构计算的计算效率,进而提高对作业进行处理的处理效率。
在一些可能的实现方式中,作业的输入规模可以通过作业的输入数据的批尺寸表征,当该输入数据的批尺寸小于或等于第一预设阈值时,确定计算单元的计算模式为异步模式;当该输入数据的批尺寸大于第一预设阈值时,确定计算单元的计算模式为同步模式。其中上述第一预设阈值可以基于计算设备分别采用异步模式和同步模式对同一个作业进行处理,确定两种模式的耗时相同时,作业的输入规模为上述第一预设阈值。如此,基于输入数据的批尺寸和第一预设阈值进行比较后,选择耗时较短的计算模式,可以有效提高计算设备处理作业的效率。
在一些可能的实现方式中,当输入规模的批尺寸大于第二预设阈值时,将输入数据的批尺寸降低至小于或等于该第二预设阈值,该第二预设阈值大于上述第一预设阈值。其中,第二预设阈值可以基于预设耗时确定,第二预设阈值与该预设耗时正相关,当预设耗时较大时,第二预设阈值越大;当预设耗时较小时,第二预设阈值越小。预设耗时可以是可接受的最大耗时。如此,计算设备可以在输入规模的批尺寸较大时,将作业进行分批处理,减少不同计算任务之间的竞争,从而进一步提高作业进行处理的处理效率。
在一些可能的实现方式中,计算单元的核数不同时,计算设备采用不同的处理方式。具体地,当计算单元的核数为单核时,通过计算单元按照计算模式对作业进行串行处理,从而减少竞争延时,提高处理效率;当计算单元的核数为多核时,通过计算单元按照计算模式对作业进行并行处理,从而减少处理耗时,提高处理效率。
在一些可能的实现方式中,当多个计算任务中的第一计算任务和第二计算任务对应的计算单元的类型为预设类型时,例如均为GPU时,将多个计算任务调度到该GPU,通过GPU对作业进行处理,当然,预设类型为CPU时,将多个计算任务调度到CPU,通过CPU对作业进行处理。
在一些可能的实现方式中,计算单元设置有运行队列,运行队列包括至少一个计算任务,其中,计算单元在每个处理周期从运行队列取出的计算任务个数小于或等于计算单元的核数,如此能够避免不同的计算任务之间的竞争,从而减少竞争时延,进一步提高处理效率。
在一些可能的实现方式中,计算设备可以将多个计算任务中的第一计算任务加入到第一计算单元对应的第一运行队列,将多个计算任务中的第二计算任务加入到第二计算单元对应的第二运行队列,然后从第一运行队列中取出第一计算任务,按照计算模式对该第一计算任务进行处理,当第一计算单元完成对该第一计算任务的处理后,从第二运行队列中取出第二计算任务,按照计算模式对该第二计算任务进行处理,从而保证同一批作业中多个计算任务按照预设处理顺序被处理。
第二方面,本申请提供了一种作业的处理装置,该作业的处理装置包括:
接收模块,用于接收待处理的作业,所述作业包括多个计算任务,所述多个计算任务中的每个计算任务对应至少一个算子;
计算单元确定模块,用于根据算子与计算单元的对应关系,确定所述多个计算任务中每个计算任务对应的计算单元;
计算模式确定模块,用于当所述多个计算任务中的第一计算任务和第二计算任务对应的计算单元的类型不同时,根据所述作业的输入规模,确定所述计算单元的计算模式;
处理模块,用于将所述多个计算任务调度至对应的计算单元,并通过所述计算单元按照所述计算模式对所述作业进行处理。
在一些可能的实现方式中,所述输入规模通过输入数据的批尺寸表征;所述计算模式确定模块,用于当所述输入数据的批尺寸小于或等于第一预设阈值时,确定所述计算单元的计算模式为异步模式。
在一些可能的实现方式中,所述输入规模通过输入数据的批尺寸表征;所述计算模式确定模块,用于当所述输入数据的批尺寸大于第一预设阈值时,确定所述计算单元的计算模式为同步模式。
在一些可能的实现方式中,所述接收模块,还用于当所述输入数据的批尺寸大于第二预设阈值时,将所述输入数据的批尺寸降低至小于或等于所述第二预设阈值,所述第二预设阈值大于所述第一预设阈值。
在一些可能的实现方式中,处理模块,具体用于当所述计算单元的核数为单核时,通过所述计算单元按照所述计算模式对所述作业进行串行处理。
在一些可能的实现方式中,处理模块,具体用于当所述计算单元的核数为多核时,通过所述计算单元按照所述计算模式对所述作业进行并行处理。
在一些可能的实现方式中,所述处理模块,还用于当所述多个计算任务中的第一计算任务和第二计算任务对应的计算单元的类型为预设类型时,将所述多个计算任务调度至所述计算单元,通过所述计算单元对所述作业进行处理。
在一些可能的实现方式中,所述计算单元设置有运行队列,所述运行队列包括至少一个计算任务;其中,所述计算单元在每个处理周期从所述运行队列取出的计算任务个数小于或等于所述计算单元的核数。
在一些可能的实现方式中,所述处理模块,还用于将所述多个计算任务中的第一计算任务加入到所述第一计算单元对应的第一运行队列,将所述多个计算任务中的第二计算任务加入到所述第二计算单元对应的第二运行队列;所述处理模块,具体用于从所述第一运行队列中取出所述第一计算任务,按照所述计算模式对所述第一计算任务进行处理,当所述第一计算单元完成对所述第一计算任务的处理后,从所述第二运行队列中取出所述第二计算任务,按照所述计算模式对所述第二计算任务进行处理。
第三方面,本申请提供了一种电子设备,该电子设备包括:存储器和处理器;
在所述存储器中存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令;当所述指令被所述处理器执行时,使得所述电子设备执如第一方面中任一项所述的方法。
第四方面,本申请提供了一种计算机存储介质,该计算机存储介质包括计算机指令,当所述计算机指令在计算设备上运行时,所述计算设备执行如第一方面中任一项所述的方法。
第五方面,本申请提供了一种计算机程序产品,该计算机程序产品包括指令;当所述指令被计算设备运行时,使得所述计算设备执行如第一方面中任一项所述的方法。
应当理解的是,本申请中对技术特征、技术方案、有益效果或类似语言的描述并不是暗示在任意的单个实施例中可以实现所有的特点和优点。相反,可以理解的是对于特征或有益效果的描述意味着在至少一个实施例中包括特定的技术特征、技术方案或有益效果。因此,本说明书中对于技术特征、技术方案或有益效果的描述并不一定是指相同的实施例。进而,还可以任何适当的方式组合本实施例中所描述的技术特征、技术方案和有益效果。本领域技术人员将会理解,无需特定实施例的一个或多个特定的技术特征、技术方案或有益效果即可实现实施例。在其他实施例中,还可在没有体现所有实施例的特定实施例中识别出额外的技术特征和有益效果。
附图说明
图1为本申请实施例提供的一种异构计算的示意图;
图2为本申请实施例提供的一种作业的处理方法的流程图;
图3A为本申请实施例提供的一种提交作业界面的示意图;
图3B为本申请实施例提供的又一种提交作业界面的示意图;
图4A为本申请实施例提供的一种采用组合方式1对作业进行处理的耗时示意图;
图4B为本申请实施例提供的一种采用组合方式3对作业进行处理的耗时示意图;
图4C为本申请实施例提供的一种采用组合方式2对作业进行处理的耗时示意图;
图4D为本申请实施例提供的一种采用组合方式4对作业进行处理的耗时示意图;
图4E为本申请实施例提供的一种采用组合方式5对作业进行处理的耗时示意图;
图5为本申请实施例提供的一种处理作业的示意图;
图6为本申请实施例提供的一种采用GPU对作业进行处理的耗时示意图;
图7为本申请实施例提供的一种确定组合方式的方法流程图;
图8为本申请实施例提供的一种电子设备的示意图;
图9为本申请实施例提供的一种作业的处理装置的示意图。
具体实施方式
本申请说明书和权利要求书及附图说明中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍:
作业是指用户研发的关于深度学习的计算业务的程序实例的集合,在批处理系统中,作业也可称为批作业。在深度学习的应用场景中,所涉及的计算业务包括训练、推理、调测以及可视化等。本申请中主要以推理作业为例,但并不仅仅局限于推理作业。
计算任务是指一个作业内,程序实例的集合中的实例个体。通常一个计算任务对应至少一个算子。算子是指完成上述计算任务所需要进行的操作。例如,在图像处理场景中,作业包括裁剪相关的计算任务1、提取特征相关的计算任务2以及生成识别结果相关的计算任务3。计算任务1可以对应算子1,算子1可以是裁剪操作,计算任务2可以对应算子2,算子2可以是进行特征提取的操作,计算任务3可以对应算子3,算子3可以是生成识别结果的操作。
计算单元是指能够处理上述计算任务的设备,例如计算单元可以是CPU、GPU、FPGA、ASIC、数字信号处理器(digital signal processor,DSP)等。不同的计算单元所擅长的计算任务不同,例如CPU的核数较少,并行处理能力较差,因此更擅长处理计算量较小的计算任务,GPU的核数较多,并行处理能力较强,因此更擅长处理计算量较大的计算任务。基于此,可以通过异构计算的方式,对计算任务进行处理。
异构计算是指多种计算单元(例如CPU、GPU、DSP、AI加速器、FPGA等)搭配、集成和融合后,协同对作业进行处理。通常情况下,异构计算架构的芯片中既有CPU等传统的通用计算单元,也有高性能的专用计算单元。
通过异构计算的方式对作业进行协同处理的过程中,异构计算的方式较为固定,如上述利用GPU处理计算量较大的计算任务,利用CPU处理计算量较小的计算任务。然而,异构计算的效率不仅受到计算单元的影响,而且还与异构计算的计算模式相关,计算模式可以分为同步模式和异步模式。采用较为固定的计算模式,会存在降低异构计算的效率的情况。
以异构计算的方式为CPU和GPU协同处理为例,如图1所示,计算模式为同步模式时,可以先由CPU对数据进行处理,然后将CPU处理后的数据由CPU的内存拷贝到GPU的显存,CPU指示GPU对CPU处理后的数据进行后续处理,当GPU对COU处理后数据进行处理后,再由GPU的显存拷贝到CPU的内存。同步模式的情况下,数据在CPU的内存和GPU的显存之间拷贝过程,会存在拷贝时延,该拷贝时延会影响异构计算的效率。计算模式为异步模式时,CPU在对处理进行处理过程中,无需对数据全部处理完后,再由CPU的内存拷贝到GPU的显存,而是处理完一条数据后,即可将该条数据由CPU的内存拷贝到GPU的显示,并指示GPU对该条数据进行处理,再由GPU的显存拷贝到CPU的内存。异步模式的情况下,数据在CPU的内存和显存之间拷贝过程,CPU可以同时对其他数据进行处理,但是不同的数据处于不同的队列中,不同的队列之间会存在竞争,进而会出现竞争时延,该竞争时延会影响异构计算的效率。
有鉴于此,本申请实施例提供了一种作业的处理方法,该方法可以由计算设备执行。计算设备可以是服务器,服务器可以是云服务器,例如是中心云计算集群中的中心服务器,或者是边缘云计算集群中的边缘服务器。服务器也可以是本地数据中心中的服务器。本地数据中心是指用户直接控制的数据中心。
计算设备包括多种不同的计算单元,例如计算设备包括CPU、GPU、DSP、AI加速器、FPGA、DSP等。计算设备还包括用于在运行时存储参数、梯度等信息的内存,例如高带宽存储器(high bandwidth memory,HBM),双倍速率内存(Double Data Rate,DDR)等。用于持久存储网络模型和模型参数的后端存储系统,例如Flash、固态硬盘(solid state drives,SSD)等。计算设备还可以包括用于进行网络数据传输的网络接口控制器(network interfacecontroller,NIC),也成网卡,该NIC例如可以为以太(Eth)网卡,远程直接内存访问(remotedirect memory access,RDMA)网卡等。
具体地,该方法包括,计算设备接收到处理的作业,该作业包括多个计算任务,多个计算任务中的每个计算任务对应至少一个算子,然后根据算子与计算单元的对应关系,确定多个计算任务中每个计算任务对应的计算单元,当多个计算任务中的第一计算任务和第二计算任务对应的计算单元的类型不同时,根据作业的输入规模,确定计算单元的计算模式,最后将多个计算任务调度至对应的计算单元,并通过计算单元按照确定的计算模式,对作业进行处理。
该方法中,在对待处理的作业进行处理过程中,不仅考虑了该待处理的作业中计算任务,而且还考虑的作业的输入规模。利用与计算任务对应的计算单元,对该计算任务进行处理时,能够使计算单元以较高的效率对该计算任务进行处理。根据作业的输入规模,确定计算单元的计算模式,能够有效权衡同步模式下的拷贝时延与异步模式下的竞争时延,进而通过时延较短的计算模式对作业进行处理,能够缩短对作业处理的耗时,提高异构计算的计算效率,进而提高对作业进行处理的处理效率。
为了使得本申请的技术方案更加清楚、易于理解,下面以计算设备的角度,对本申请实施例提供的作业的处理方法进行介绍。如图2所示,该图为本申请实施例提供的一种作业的处理方法的流程图,该方法包括:
S201:计算设备接收待处理的作业,作业包括多个计算任务,多个计算任务中的每个计算任务对应至少一个算子。
计算设备可以通过多种方式接收待处理的作业。例如,计算设备可以基于显示装置,向用户呈现人机交互界面,用户可以通过该人机交互界面提交待处理的作业。如图3A所示,该图为本申请实施例提供的一种提交作业界面的示意图。该提交作业界面包括候选的作业301和提交控件302,用户可以从候选的作业中选择作业,然后点击提交控件302以对作业进行提交,计算设备可以基于用户对提交控件302的点击操作,接收该待处理的作业。
在另一些示例中,在深度神经网络模型的推理过程中,上述待处理的作业可以是推理作业。例如,基于深度神经网络的图像识别模型,该图像识别模型可以用于对动物的图像进行分类,如分为狗的图像和猫的图像。在该示例中,计算设备可以基于显示装置,向用户呈现人机交互界面,如图3B所示,该图为本申请实施例提供的又一种提交作业的界面的示意图。该提交作业界面包括候选的图像303和提交控件304,用户可以从候选的图像303中选择多个图像作为图像识别模型的输入,然后用户可以点击提交控件304,以提交推理作业,计算设备接收对用户提交的推理作业,以便通过图像识别模型对用户选择的多个图像进行分类处理。当然,在另一些示例中,在深度神经网络模型的训练过程中,上述待处理的作业可以是训练作业。下面为了便于理解,以待处理的作业为推理作业为例,进行介绍。
其中,作业包括多个计算任务,多个计算任务中的每个计算任务对应至少一个算子。同一个计算任务由不同的计算单元进行处理时,处理效率不同。
S202:计算设备根据算子与计算单元的对应关系,确定多个计算任务中每个计算任务对应的计算单元。
在一些示例中,可以预先设定算子与计算单元的对应关系,然后计算设备基于该计算任务对应的算子,根据上述对应关系,确定执行该计算任务的计算单元。计算设备可以对作业中的每个计算任务均作类似的处理,进而得到每个计算任务对应的计算单元。
在一些示例中,当计算任务为逻辑复杂且不易并行的前后预处理时,可以由单核或核数较少的CPU、DSP处理该计算任务,基于此,可以建立该计算任务的算子与CPU的对应关系,或者是该计算任务的算子与DSP的对应关系。当然,也可以建立计算任务的算子与最优计算单元以及次优计算单元的对应关系,其中,该计算任务的算子对应的最优计算单元可以是CPU,该计算任务的算子对应的次优计算单元可以是DSP。
当计算任务为适合并行处理的密集型运算时,可以由多核的GPU、FPGA处理该计算任务,基于此,可以建立该计算任务的算子与GPU的对应关系,或者是该计算任务的算子与FPGA的对应关系。当然,也可以建立计算任务的算子与最优计算单元以及次优计算单元的对应关系,其中,该计算任务的算子对应的最优计算单元可以是GPU,该计算单元的算子对应次优计算单元可以是FPGA。
需要说明的是,上述算子与计算单元的对应关系可以基于实际测量计算单元处理计算任务时的处理效率进行建立。例如,对于同一个计算任务,分别测试由多种不同的计算单元进行处理的处理效率,进而得到处理效率最高的计算单元(最优计算单元),进而建立该计算任务的算子与最优计算单元对应关系。接着,再对其他计算任务进行类似的处理,进而可以得到每个计算任务的算子与计算单元的对应关系。
S203:当多个计算任务中的第一计算任务和第二计算任务对应的计算单元的类型不同时,根据作业的输入规模,确定计算单元的计算模式。
如上述,CPU、GPU、DSP、FPGA等均是计算单元,例如,CPU与GPU为类型不同的计算单元。
在异构计算的场景中,计算单元的计算模式包括同步模式和异步模式。在一些示例中,作业的输入规模可以通过输入数据的批尺寸表征。输入数据的数据格式可以是tensor张量数据,例如图像数据可以通过[batch,height,width,channel]表征。当输入数据的批尺寸小于或等于第一预设阈值时,确定计算单元的计算模式为异步模式;当输入数据的批尺寸大于第一预设阈值时,确定计算单元的计算模式为同步模式。进一步的,还可以基于计算单元的核数,确定并行处理方式或串行处理方式。
以异构计算的方式为CPU和GPU协同处理为例,GPU的核数为多核,GPU可以采用并行处理方式;CPU的核数包括单核和多核两种情况,当CPU为单核时,CPU可以采用串行处理方式,当CPU为多核时,CPU可以采用并行处理方式。基于此,至少可以组合出4种异构计算的组合方式,如下表1所示:
表1
组合方式 | 1 | 2 | 3 | 4 |
GPU的处理方式 | 并行 | 并行 | 并行 | 并行 |
CPU的处理方式 | 串行 | 并行 | 串行 | 并行 |
计算模式 | 同步 | 同步 | 异步 | 异步 |
其中,组合方式1中,计算模式为同步模式,CPU采用串行处理方式,GPU采用并行处理方式;组合方式2中,计算模式为同步模式,CPU采用并行处理方式,GPU采用串行处理方式;组合方式3中,计算模式为异步模式,CPU采用串行处理方式,GPU采用并行处理方式;组合方式4中,计算模式为异步模式,CPU采用串行处理方式,GPU采用并行处理方式。
在一些示例中,上述第一预设阈值可以基于组合方式1和组合方式3对相同的输入规模的作业进行处理,进而计算组合方式1和组合方式3对作业进行处理的时间差,当该时间差为0时,确定此时作业的输入规模为目标输入规模,该目标输入规模可以作为第一预设阈值。同理,也可以基于组合方式2和组合方式4对相同的输入规模的作业进行处理,进而得到目标输入规模,将该目标输入规模作为第一预设阈值。
CPU的核数为单核时,可以基于组合方式1和组合方式3确定第一预设阈值。例如,作业的输入数据的批尺寸为4,为了便于描述,记为输入数据1、输入数据2、输入数据3和输入数据4,该待处理的作业包括计算任务a、计算任务b和计算任务c为例,上述输入数据1-4均需要依次完成上述计算任务a-c,其中,计算任务a和计算任务c由CPU处理,计算任务b由GPU处理。
如图4A所示,图4A为采用组合方式1对作业进行处理的耗时示意图,计算模式为同步模式,先由CPU对作业中输入数据1-4的计算任务a进行串行处理,当处理完后,由CPU的内存将CPU处理后的数据拷贝到GPU的显存,CPU指示GPU基于CPU发送的数据,对计算任务b进行并行处理,然后由GPU的显存将GPU处理后的数据再拷贝到CPU的内存,再由CPU基于GPU发送的数据,对计算任务c进行串行处理。在图4A中,将CPU处理计算任务a的耗时记为t11,GPU处理计算任务b的耗时记为t12,CPU处理计算任务c的耗时记为t13,数据的拷贝时延记为t14。采用组合方式1对作业进行处理时,组合方式1的耗时T1=t11+t12+t13+t14。
如图4B,所示图4B为采用组合方式3对作业进行处理的耗时示意图,计算模式为异步模式,先由CPU对作业中输入数据1-4的计算任务a进行串行处理,当完成对输入数据1的计算任务a进行处理后,此时即可将对该输入数据1进行处理后的数据,由CPU的内存拷贝到GPU的显存,CPU指示GPU基于CPU发送的数据,对计算任务b进行处理,在GPU处理计算任务b的过程中,CPU也可以对输入数据2的计算任务a进行处理,当完成对输入数据2的计算任务a进行处理后,即可将对该输入数据2进行处理后的数据,由CPU的内存拷贝到GPU的显存,CPU指示GPU基于CPU发送的数据,对计算任务b进行处理,…,直至CPU完成对输入数据4的计算任务c的处理。在异步模式的情况下,不同的计算任务位于不用的运行队列中,不同的队列之间会存在竞争,由此会产生队列之间的竞争时延。如图4B,在CPU处理完输入数据1的计算任务a后,输入数据2的计算任务a和输入数据3的计算任务a之间会存在竞争,进而产生竞争时延。CPU处理计算任务a的耗时记为t31,竞争时延记为t32,CPU处理计算任务c的耗时记为t33,采用组合方式3对作业进行处理时,组合方式3的耗时T3=t31+t32+t33。
一并参见图4A和图4B,可见组合方式1的耗时T1和组合方式3的耗时T3之间的时间差为t12+t14-t32。当该时间差为0,CPU采用串行处理方式、GPU采用并行处理方式时,表明采用同步模式和异步模式所需要的耗时一致。如此,可以将此时的输入数据的批尺寸作为第一预设阈值,如第一预设阈值为4。从图4B中可以看出,当输入数据的批尺寸越大时,竞争时延t32越大,而拷贝时延t14以及GPU并行处理耗时t12几乎不变,也就是说,当输入数据的批尺寸大于上述第一预设阈值时,同步模式的耗时将会小于异步模式的耗时;当输入数据的批尺寸小于上述第一预设阈值时,同步模式的耗时将会大于异步模式的耗时。
在另一些实施例中,CPU的核数为多核时,可以基于组合方式2和组合方式4确定第一预设阈值。延续上例,如图4C和4D所示,图4C为采用组合方式2对作业进行处理的耗时示意图,图4D为采用组合方式4对作业进行处理的耗时示意图。在图4C中,计算模式为同步模式,将CPU处理计算任务a的耗时记为t21,GPU处理计算任务b的耗时记为t22,CPU处理计算任务c的耗时记为t23,将数据的拷贝时延记为t24,组合方式2的耗时T2=t21+t22+t23+t24。在图4D中,计算模式为异步模式,将CPU处理计算任务a的耗时记为t41,竞争时延记为t42,GPU处理计算任务b的耗时记为t43,CPU处理计算任务c的耗时记为t44,将数据的拷贝时延记为t45,组合方式4的耗时T4=t41+t42+t44+β(t43+t45)。其中,β为系数,β与输入数据的批尺寸负相关,取值范围为[0,1]。
在一些示例中,当输入数据的批尺寸为1时,β可以取值为1。随着输入数据的批尺寸变大,β变小,直至β=0,例如当输入数据的批尺寸为4时,β可以取值为0。为了便于理解,以β=0为例,在该示例中组合方式4的耗时T4= t41+t42+t44。
一并参见图4C和图4D,可见组合方式2的耗时T2和组合方式4的耗时T4之间的时间差为t22+t24-t42。当该时间差为0,CPU采用串行处理方式、GPU采用并行处理方式时,表明采用同步模式和异步模式所需要的耗时一致。如此,可以将此时的输入数据的批尺寸作为第一预设阈值,如第一预设阈值为4。从图4D中可以看出,当输入数据的批尺寸越大时,竞争时延t42越大,而拷贝时延t24以及GPU并行处理耗时t22几乎不变,也就是说,当输入数据的批尺寸大于上述第一预设阈值时,同步模式的耗时将会小于异步模式的耗时;当输入数据的批尺寸小于上述第一预设阈值时,同步模式的耗时将会大于异步模式的耗时。
在一些示例中,当作业的输入数据的批尺寸为1时,CPU和GPU可以均采用串行处理方式。基于此,可以在上述4种组合方式的基础上,得出组合方式5,如下表2所示:
表2
组合方式 | 5 |
GPU的处理方式 | 串行 |
CPU的处理方式 | 串行 |
其中,组合方式5中,GPU采用串行处理方式,CPU也采用串行处理方式,如图4E所示,该图为本申请实施例提供的一种采用组合方式5对作业进行处理的耗时示意图。
在一些示例中,当作业的输入数据的批尺寸大于第二预设阈值时,计算设备可以将输入数据的批尺寸降低至小于或等于该第二预设阈值,第二预设阈值大于上述第一预设阈值。如此,当输入数据的批尺寸大于第二预设阈值时,可以将作业进行分批处理,从而进一步提高对作业进行处理的处理效率。
其中,第二预设阈值可以基于预设耗时确定,第二预设阈值与该预设耗时正相关,当预设耗时较大时,第二预设阈值越大;当预设耗时较小时,第二预设阈值越小。预设耗时可以是可接受的最大耗时。在另一些示例中,第二预设阈值也可以基于GPU的核数确定。例如,GPU的核数为1024时,可以将第二预设阈值设置为1024。
需要说明的是,本申请实施例不具体限定第二预设阈值的确定方式,本领域技术人员可以根据实际需要设定第二预设阈值。
S204:将多个计算任务调度至对应的计算单元,并通过计算单元按照计算模式对作业进行处理。
在一些示例中,计算单元设置有运行队列,计算设备可以将多个计算任务调度到计算单元的运行队列,计算单元在处理计算任务过程中,每个处理周期从运行队列中取出计算任务的个数小于或等于计算单元的核数。
以计算单元为CPU为例,计算设备可以将计算任务调度到CPU的运行队列中,当该CPU的核数为4时,CPU可以在每个处理周期,从运行队列中取出4个计算任务,并行处理,当然,CPU也可以从运行队列中取出3个计算任务,然后并行处理。如此,不仅能够规避计算单元处理不同计算任务之间的竞争,而且还能够提高计算单元并行处理计算任务的数量,进一步提高处理效率。
将多个计算任务调度至对应的计算单元后,计算设备可以基于上述确定的计算模式,对作业进行处理。进一步的,计算设备还可以基于计算单元的核数,确定计算单元的处理方式为串行处理方式或并行处理方式。当计算单元的核数为多核时,计算设备可以按照计算模式对作业进行并行处理,当计算单元的核数为单核时,计算设备可以按照计算模式对作业进行串行处理。基于此,计算设备可以基于作业的输入规模以及计算单元的属性信息(例如核数等)从上述表1以及表2所示的组合方式确定出一种组合方式,以对作业进行处理。
在一些示例中,同一批作业中多个计算任务之间需要遵循预设处理顺序,以多个计算任务包括第一计算任务和第二计算任务为例,其中,第一计算任务由第一计算单元处理,第二计算任务由第二计算单元处理,预设处理顺序可以是第一计算任务先于第二计算任务被处理。计算设备可以将多个计算任务中的第一计算任务加入到第一计算单元对应的第一运行队列,将多个计算任务中第二计算任务加入到第二计算单元对应的第二运行队列。然后计算设备从第一运行队列中取出第一计算任务,按照计算模式对第一计算任务进行处理,当第一计算单元完成对第一计算任务的处理后,从第二运行队列中取出第二计算任务,按照计算模式对第二计算任务进行处理。如此,计算设备采用异构计算的方式,可以先由第一计算单元对第一计算任务进行处理,当第一计算单元完成对第一计算任务的处理后,再由第二计算单元对第二计算任务进行处理,从而保证同一批作业中多个计算任务按照预设处理顺序被处理。
举例说明,如图5所示,该图为本申请实施例提供的一种处理作业的示意图。如图5所示,以作业的输入数据的批尺寸为3为例,输入数据可以是图像1、图像2和图像3,每个图像均需要经过操作1、操作2和操作3,其中,操作1、操作2和操作3可以分别对应于不同的计算任务,例如操作1对应于计算任务a,操作2对应于计算任务2,操作3对应于计算任务c,操作1和操作3由CPU执行,操作2由GPU执行,操作1先于操作2执行,操作2先于操作3执行,CPU的核数为2核,GPU的核数为N(例如N=1024)。
在CPU的第一个处理周期内,CPU可以从运行队列中取出OP11,以对图像1执行操作1;在CPU的第二个处理周期内,CPU可以从运行队列中同时取出OP13和OP21,以对图像1执行操作3以及对图像2执行操作1;在CPU的第三个处理周期内,CPU可以从运行队列中同时取出OP31和OP23,以对图像3执行操作1以及对图像2执行操作3;在CPU的第四个处理周期内,CPU可以从运行队列中取出OP33,以对图像3执行操作3。
在GPU的第一处理周期内,GPU可以从运行队列中取出OP12,以对图像1执行操作2;在GPU的第二个处理周期内,GPU可以从运行队列中取出OP22和OP32,以对图像2执行操作2以及对图像3执行操作2。
S205:当多个计算任务中的第一计算任务和第二计算任务对应的计算单元的类型相同时,将多个计算任务调度至计算单元,通过计算单元对作业进行处理。
在一些示例中,当多个计算任务中的第一计算任务和第二计算任务对应的计算单元的类型相同时,例如第一计算任务和第二计算任务对应的计算单元均为GPU时,表明GPU处理第一算任务和第二计算任务的处理效率较高,可以利用GPU单独来处理第一计算任务和第二计算任务。将该处理方式记为组合方式6。
如图6所示,该图为本申请实施例提供的一种采用GPU对作业进行处理的耗时示意图。由GPU对作业进行处理的过程中,需要CPU将输入数据由CPU的内存拷贝到GPU的显存,然后CPU再指示GPU对输入数据进行处理。
需要说明的是,以上仅仅是以第一计算任务和第二计算任务对应的计算单元均为GPU为例,在另一些实施例中,第一计算任务和第二计算任务对应的计算单元也可以是CPU、DSP、FPGA等。
基于上述内容描述,本申请实施例提供了一种作业的处理方法,该方法接收待处理的作业后,通过预先设定的算子与计算单元的对应关系,确定多个计算任务中每个计算任务对应的计算单元,然后在基于作业的输入规模,确定计算单元的计算模式,利用该计算模式,对作业进行处理,提高计算单元处理作业的处理效率。
进一步,该方法还可以对作业进行灵活拆分,例如降低输入数据的批尺寸,从而减少作业中不同计算任务之间的竞争,从而提高计算单元的处理效率;该方法还基于计算单元的属性信息(例如核数),确定计算单元为串行处理方式或并行处理方式,从而进一步降低时延,进一步提高计算单元的处理效率。
本申请实施例还提供了一种确定组合方式的方法,如上述6种组合方式,计算设备可以基于待处理的作业,从6种组合方式中选择出一种组合方式,然后基于该组合方式,对作业进行处理。如图7所示,该图为本申请实施例提供的一种确定组合方式的方法流程图,该方法包括:
S701:判断待处理的作业中包括的计算任务对应的计算单元是否全为GPU,若是,则确定组合方式6;否则,执行S702。
S702:判断作业的输入数据的批尺寸是否为1,若是,则确定组合方式5;否则,执行S703。
S703:判断输入数据的批尺寸是否大于1且小于第二预设阈值,若是,则执行S704;否则,执行S707。
S704:判断输入数据的批尺寸是否大于第一预设阈值,若是,则执行S705;否则,执行S706。
S705:判断CPU的核数是否为单核,若是,则确定组合方式1;若否,则确定组合方式2。
S706:判断CPU的核数是否为单核,若是,则确定组合方式3;若否,则确定组合方式4。
S707:将输入数据的批尺寸降低至小于或等于第二预设阈值。
本申请实施例还提供了一种确定组合方式的计算机代码,用以实现如图6所示的确定组合方式的方法,具体地,计算机代码如下:
if (all ops first option is gpu);
switch 6 //确定组合方式6;
else;
if(batchsize==1);
switch 5 //确定组合方式5;
elif(1<batchsize<=max_batchsize) //max_batchsize为第二预设阈值;
if(batchsize>batchsize_threshold) // batchsize_threshold为第一预设阈值;
if(cpu kernel size==1);
switch 1 //确定组合方式1;
else;
switch 2 //确定组合方式2;
else;
if(cpu kernel size==1);
switch 3 //确定组合方式3;
else;
switch 4 //确定组合方式4;
else;
切分batchsize为batchsize/max_batchsize+1份,递归调用;
需要说明的是,上述计算机代码仅仅为示例说明,本申请并不仅仅局限于此,本领域技术人员可以根据实际需要,对上述计算机代码进行适应性调整,从而实现确定组合方式。
本申请的一些实施例还提供了一种电子设备,该电子设备可以是终端、也可以是服务器。终端包括但不限于智能手机、平板电脑、计算机等,服务器可以是云服务器、例如中心云计算集群中的中心服务器,或者是边缘与计算集群中的边缘服务器。当然,服务器也可以是本地数据中心中的服务器,本地数据中心是指用户直接控制的数据中心。如图8所示,该电子设备可以包括:一个或多个处理器802;存储器803;以及一个或多个计算机程序804,上述各器件可以通过一个或多个通信总线805连接。其中该一个或多个计算机程序804被存储在上述存储器803中,并被配置为被该一个或多个处理器802执行,该一个或多个计算机程序804包括指令,上述指令可以用于执行如图2和图7相应实施例中计算设备执行的各个步骤。在一些示例中,该电子设备还可以包括通信接口801,该通信接口801可以用于接收待处理的作业等。
本申请实施例可以根据上述方法示例对计算设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图9示出了上述和实施例中涉及的作业的处理装置的一种可能的组成示意图,该作业的处理装置900能执行本申请各方法实施例中任一方法实施例中计算设备所执行的步骤。可选的,处理装置为上述和实施例中涉及的电子设备。如图9所示,该作业的处理装置900可以包括:接收模块901、计算单元确定模块902、计算模式确定模块903和处理模块904;
接收模块901,用于接收待处理的作业,所述作业包括多个计算任务,所述多个计算任务中的每个计算任务对应至少一个算子;
计算单元确定模块902,用于根据算子与计算单元的对应关系,确定所述多个计算任务中每个计算任务对应的计算单元;
计算模式确定模块903,用于当所述多个计算任务中的第一计算任务和第二计算任务对应的计算单元的类型不同时,根据所述作业的输入规模,确定所述计算单元的计算模式;
处理模块904,用于将所述多个计算任务调度至对应的计算单元,并通过所述计算单元按照所述计算模式对所述作业进行处理。
可选的,所述输入规模通过输入数据的批尺寸表征;所述计算模式确定模块903,用于当所述输入数据的批尺寸小于或等于第一预设阈值时,确定所述计算单元的计算模式为异步模式。
可选的,所述输入规模通过输入数据的批尺寸表征;所述计算模式确定模块903,用于当所述输入数据的批尺寸大于第一预设阈值时,确定所述计算单元的计算模式为同步模式。
可选的,所述接收模块901,还用于当所述输入数据的批尺寸大于第二预设阈值时,将所述输入数据的批尺寸降低至小于或等于所述第二预设阈值,所述第二预设阈值大于所述第一预设阈值。
可选的,处理模块904,具体用于当所述计算单元的核数为单核时,通过所述计算单元按照所述计算模式对所述作业进行串行处理。
可选的,处理模块904,具体用于当所述计算单元的核数为多核时,通过所述计算单元按照所述计算模式对所述作业进行并行处理。
可选的,所述处理模块904,还用于当所述多个计算任务中的第一计算任务和第二计算任务对应的计算单元的类型为预设类型时,将所述多个计算任务调度至所述计算单元,通过所述计算单元对所述作业进行处理。
可选的,所述计算单元设置有运行队列,所述运行队列包括至少一个计算任务;其中,所述计算单元在每个处理周期从所述运行队列取出的计算任务个数小于或等于所述计算单元的核数。
可选的,所述处理模块904,还用于将所述多个计算任务中的第一计算任务加入到所述第一计算单元对应的第一运行队列,将所述多个计算任务中的第二计算任务加入到所述第二计算单元对应的第二运行队列;所述处理模块904,具体用于从所述第一运行队列中取出所述第一计算任务,按照所述计算模式对所述第一计算任务进行处理,当所述第一计算单元完成对所述第一计算任务的处理后,从所述第二运行队列中取出所述第二计算任务,按照所述计算模式对所述第二计算任务进行处理。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本申请实施例提供的作业的处理装置,用于执行上述任意实施例的方法,因此可以达到与上述实施例的方法相同的效果。
本实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中包括指令,当上述指令在计算设备上运行时,使得该计算设备执行图2和图7中的相关方法步骤,以实现上述实施例中的方法。
本实施例还提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算设备上运行时,使得该计算设备执行如图2和图7中的相关方法步骤,以实现上述实施例中的方法。
本实施例还提供了一种控制设备,所述控制设备包括处理器和存储器,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器执行所述计算机指令时,所述控制设备执行如图2和图7中的相关方法步骤实现上述实施例中的方法。该控制设备可以是一个集成电路IC,也可以是一个片上系统SOC。其中集成电路可以是通用集成电路,也可以是一个现场可编程门阵列FPGA,也可以是一个专用集成电路ASIC。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本实施例所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种作业的处理方法,其特征在于,包括:
接收待处理的作业,所述作业包括多个计算任务,所述多个计算任务中的每个计算任务对应至少一个算子;
根据算子与计算单元的对应关系,确定所述多个计算任务中每个计算任务对应的计算单元;
当所述多个计算任务中的第一计算任务和第二计算任务对应的计算单元的类型不同时,根据所述作业的输入规模,确定所述计算单元的计算模式;
将所述多个计算任务调度至对应的计算单元,并通过所述计算单元按照所述计算模式对所述作业进行处理。
2.根据权利要求1所述的方法,其特征在于,所述输入规模通过输入数据的批尺寸表征;所述根据所述作业的输入规模,确定所述计算单元的计算模式,包括:
当所述输入数据的批尺寸小于或等于第一预设阈值时,确定所述计算单元的计算模式为异步模式。
3.根据权利要求1所述的方法,其特征在于,所述输入规模通过输入数据的批尺寸表征;所述根据所述作业的输入规模,确定所述计算单元的计算模式,包括:
当所述输入数据的批尺寸大于第一预设阈值时,确定所述计算单元的计算模式为同步模式。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
当所述输入数据的批尺寸大于第二预设阈值时,将所述输入数据的批尺寸降低至小于或等于所述第二预设阈值,所述第二预设阈值大于所述第一预设阈值。
5.根据权利要求1所述的方法,其特征在于,所述通过所述计算单元按照所述计算模式对所述作业进行处理,包括:
当所述计算单元的核数为单核时,通过所述计算单元按照所述计算模式对所述作业进行串行处理。
6.根据权利要求1所述的方法,其特征在于,所述通过所述计算单元按照所述计算模式对所述作业进行处理,包括:
当所述计算单元的核数为多核时,通过所述计算单元按照所述计算模式对所述作业进行并行处理。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述多个计算任务中的第一计算任务和第二计算任务对应的计算单元的类型为预设类型时,将所述多个计算任务调度至所述计算单元,通过所述计算单元对所述作业进行处理。
8.根据权利要求1所述的方法,其特征在于,所述计算单元设置有运行队列,所述运行队列包括至少一个计算任务;其中,所述计算单元在每个处理周期从所述运行队列取出的计算任务个数小于或等于所述计算单元的核数。
9.根据权利要求1所述的方法,其特征在于,所述将所述多个计算任务调度至对应的计算单元,包括:
将所述多个计算任务中的第一计算任务加入到第一计算单元对应的第一运行队列,将所述多个计算任务中的第二计算任务加入到第二计算单元对应的第二运行队列;
所述通过所述计算单元按照所述计算模式对所述作业进行处理,包括:
从所述第一运行队列中取出所述第一计算任务,按照所述计算模式对所述第一计算任务进行处理,当所述第一计算单元完成对所述第一计算任务的处理后,从所述第二运行队列中取出所述第二计算任务,按照所述计算模式对所述第二计算任务进行处理。
10.一种电子设备,其特征在于,包括:存储器和处理器;
在所述存储器中存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令;当所述指令被所述处理器执行时,使得所述电子设备执如权利要求1至9中任一项所述的方法。
11.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在计算设备上运行时,所述计算设备执行如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111649711.8A CN114020476B (zh) | 2021-12-30 | 2021-12-30 | 一种作业的处理方法、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111649711.8A CN114020476B (zh) | 2021-12-30 | 2021-12-30 | 一种作业的处理方法、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114020476A true CN114020476A (zh) | 2022-02-08 |
CN114020476B CN114020476B (zh) | 2022-06-03 |
Family
ID=80069431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111649711.8A Active CN114020476B (zh) | 2021-12-30 | 2021-12-30 | 一种作业的处理方法、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114020476B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902620A (zh) * | 2011-12-23 | 2013-01-30 | 同济大学 | 基于gdb的异构计算调试环境的实现系统 |
CN110058926A (zh) * | 2018-01-18 | 2019-07-26 | 伊姆西Ip控股有限责任公司 | 用于处理gpu任务的方法、设备和计算机可读介质 |
CN112328380A (zh) * | 2020-11-10 | 2021-02-05 | 武汉理工大学 | 一种基于异构计算的任务调度方法及装置 |
CN112465129A (zh) * | 2019-09-09 | 2021-03-09 | 上海登临科技有限公司 | 片内异构人工智能处理器 |
CN112650590A (zh) * | 2020-12-29 | 2021-04-13 | 北京奇艺世纪科技有限公司 | 任务的处理方法、装置及系统、分配方法和装置 |
CN113391890A (zh) * | 2021-04-16 | 2021-09-14 | 北京沃东天骏信息技术有限公司 | 一种任务处理方法、装置、设备和计算机存储介质 |
-
2021
- 2021-12-30 CN CN202111649711.8A patent/CN114020476B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902620A (zh) * | 2011-12-23 | 2013-01-30 | 同济大学 | 基于gdb的异构计算调试环境的实现系统 |
CN110058926A (zh) * | 2018-01-18 | 2019-07-26 | 伊姆西Ip控股有限责任公司 | 用于处理gpu任务的方法、设备和计算机可读介质 |
CN112465129A (zh) * | 2019-09-09 | 2021-03-09 | 上海登临科技有限公司 | 片内异构人工智能处理器 |
CN112328380A (zh) * | 2020-11-10 | 2021-02-05 | 武汉理工大学 | 一种基于异构计算的任务调度方法及装置 |
CN112650590A (zh) * | 2020-12-29 | 2021-04-13 | 北京奇艺世纪科技有限公司 | 任务的处理方法、装置及系统、分配方法和装置 |
CN113391890A (zh) * | 2021-04-16 | 2021-09-14 | 北京沃东天骏信息技术有限公司 | 一种任务处理方法、装置、设备和计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114020476B (zh) | 2022-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110689138B (zh) | 运算方法、装置及相关产品 | |
US20190114534A1 (en) | Neural network processing system having multiple processors and a neural network accelerator | |
US20200104573A1 (en) | Data processing apparatus and method | |
US20190171941A1 (en) | Electronic device, accelerator, and accelerating method applicable to convolutional neural network computation | |
US20230026006A1 (en) | Convolution computation engine, artificial intelligence chip, and data processing method | |
US20210241095A1 (en) | Deep learning processing apparatus and method, device and storage medium | |
US20220083857A1 (en) | Convolutional neural network operation method and device | |
CN105022670A (zh) | 一种云计算平台中的异构分布式任务处理系统及其处理方法 | |
EP3836031A2 (en) | Neural network processor, chip and electronic device | |
US11941514B2 (en) | Method for execution of computational graph in neural network model and apparatus thereof | |
EP3975061A1 (en) | Neural network processor, chip and electronic device | |
US20230351145A1 (en) | Pipelining and parallelizing graph execution method for neural network model computation and apparatus thereof | |
CN115437778A (zh) | 内核调度方法及装置、电子设备、计算机可读存储介质 | |
US20210158131A1 (en) | Hierarchical partitioning of operators | |
EP4361812A1 (en) | Data processing method, system and related device | |
CN111967608A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN115576699A (zh) | 数据处理方法、装置、ai芯片、电子设备及存储介质 | |
CN111886593B (zh) | 数据处理系统和数据处理方法 | |
US11562554B1 (en) | Workload reduction for non-maximum suppression operation | |
CN114020476B (zh) | 一种作业的处理方法、设备及介质 | |
CN112084023A (zh) | 数据并行处理的方法、电子设备及计算机可读存储介质 | |
US20200242467A1 (en) | Calculation method and calculation device for sparse neural network, electronic device, computer readable storage medium, and computer program product | |
CN111444430B (zh) | 内容推荐方法、装置、设备和存储介质 | |
CN113591031A (zh) | 低功耗矩阵运算方法及装置 | |
CN114219091A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230913 Address after: 201306 building C, No. 888, Huanhu West 2nd Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai Patentee after: Shanghai Glory Smart Technology Development Co.,Ltd. Address before: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040 Patentee before: Honor Device Co.,Ltd. |