CN112162854A - 一种cpu-gpu间计算任务调度方法、系统及介质 - Google Patents
一种cpu-gpu间计算任务调度方法、系统及介质 Download PDFInfo
- Publication number
- CN112162854A CN112162854A CN202010996991.9A CN202010996991A CN112162854A CN 112162854 A CN112162854 A CN 112162854A CN 202010996991 A CN202010996991 A CN 202010996991A CN 112162854 A CN112162854 A CN 112162854A
- Authority
- CN
- China
- Prior art keywords
- task
- gpu
- calculation
- slot
- cpu
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 79
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000012545 processing Methods 0.000 claims abstract description 39
- 230000008569 process Effects 0.000 claims description 7
- 239000011159 matrix material Substances 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 229940050561 matrix product Drugs 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 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/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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
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)
Abstract
本发明公开了一种CPU‑GPU间计算任务调度方法、系统及介质,该方法在页锁定内存中构建若干数量的任务槽;所述任务槽的数量与GPU计算线程块的数量相同,且一一对应;将计算分成可同时执行的任务,进行动态分配;达到同一时间Kernel执行不同计算任务,提高GPU工作性能的目的。且无需升降硬件设备,充分利用GPU的并行线程数量和计算能力,可有效降低任务执行的时间,提高GPU资源利用率;尤其适用于GPU程序中有可并行执行任务的计算场景。
Description
技术领域
本发明涉及计算机应用领域,特别涉及一种CPU-GPU间执行时交互的计算任务调度方法、系统及介质。
背景技术
随着互联网用户的快速增长,数据量的急剧膨胀,如云服务、数据中心对计算的需求也在迅猛上涨。诸如深度学习在线预测、视频转码以及图片压缩解压缩等各类新型应用的出现对计算的需求已远远超出了传统CPU处理器的能力所及。GPU等有别于CPU的新型处理器的出现为数据中心带来了巨大的体系结构变革,GPU可用于并行执行任何的计算场景。
目前,GPU编程技术是指利用显卡厂商提供的运算平台进行CPU-GPU的协同处理计算。例如CUDA就是NVIDIA公司推出的通用平行计算架构,可以使得GPU能够解决复杂的计算问题。提到GPU编程,其中涉及两个相关技术,分别是:
核函数:GPU每条线程并行运行的程序,执行GPU的计算任务,一般而言,对于一个核函数同一时间仅能执行一个计算任务,即SIMT(单指令多线程)处理矢量数据。
页锁定内存:页锁定内存是由CUDA函数cudaHostAlloc()在主机内存上分配的,页锁定内存的重要属性是主机的操作系统将不会对这块内存进行分页和交换操作,确保该内存始终驻留在物理内存中。GPU知道页锁定内存的物理地址,可以通过“直接内存访问(DirectMemoryAccess,DMA)”技术直接在主机和GPU之间复制数据,速率更快。
现有的GPU编程技术对于一个Kernel函数,同一时间仅能执行一种计算任务,如果在一个Kernel函数中想执行多个计算任务,任务间只能串行执行或者使用多个Kernel执行,不能充分利用GPU的并行线程数量和计算能力。
因此,GPU无法发挥硬件的最大化性能,存在GPU资源利用率较低的情况,亟需解决。
发明内容
本发明的主要目的在于,提供一种CPU-GPU间执行时交互的计算任务调度方法、系统及介质,可解决GPU同一Kernel同一时间不能执行多个计算任务的问题,以及解决GPU资源利用率较低的问题,实现最大化的利用GPU的计算能力。
第一方面,本发明实施例提供一种CPU-GPU间计算任务调度方法,包括:
S100、在页锁定内存中构建若干数量的任务槽;所述任务槽的数量与GPU计算线程块的数量相同,且一一对应;
S200、将需要完成的一个计算任务放到任务输入队列;
S300、CPU轮询若干数量的所述任务槽,当存在空闲状态的所述任务槽时,将所述任务输入队列中的一个任务放入到空闲状态的任务槽中,任务槽状态更新为任务待处理状态;
S400、GPU计算线程块实时查看对应的任务槽状态,当有任务槽为任务待处理状态时,则拷贝任务到相应GPU计算线程块中处理;
S500、处理完成后,GPU计算线程块将对应任务槽修改为完成状态;CPU将结果推送到任务输出队列,并将所述对应任务槽置为空闲状态。
进一步地,所述步骤S100中GPU计算线程块的数量,由硬件提供的流处理器数量和每个流计算处理器设置的线程块数量确定。
进一步地,所述步骤S200包括:
将一个计算任务根据不同的计算场景,将计算过程按计算类型和逻辑关系划分为多个不同的计算任务;
将多个不同的计算任务同时放到任务输入队列中。
第二方面,本发明实施例还提供一种CPU-GPU间计算任务调度系统,包括:
构建任务槽模块,用于在页锁定内存中构建若干数量的任务槽;所述任务槽的数量与GPU计算线程块的数量相同,且一一对应;
输入任务队列模块,用于将需要完成的一个计算任务放到任务输入队列;
CPU处理调度模块,用于CPU轮询若干数量的所述任务槽,当存在空闲状态的所述任务槽时,将所述任务输入队列中的一个任务放入到空闲状态的任务槽中,任务槽状态更新为任务待处理状态;
GPU线程处理模块,用于GPU计算线程块实时查看对应的任务槽状态,当有任务槽为任务待处理状态时,则拷贝任务到相应GPU计算线程块中处理;
当处理完成后,所述GPU线程处理模块,还用于GPU计算线程块将对应任务槽修改为完成状态;CPU处理调度模块,还用于CPU将结果推送到任务输出队列,并将所述对应任务槽置为空闲状态。
进一步地,所述构建任务槽模块中,GPU计算线程块的数量,由硬件提供的流处理器数量和每个流计算处理器设置的线程块数量确定。
进一步地,所述输入任务队列模块,包括:
划分子模块,用于将一个计算任务根据不同的计算场景,将计算过程按计算类型和逻辑关系划分为多个不同的计算任务;
输入子模块,用于将多个不同的计算任务同时放到任务输入队列中。
第三方面,本发明实施例还提供一种计算机可读存储介质,当所述存储介质中的指令由处理器执行时,能够实现如上述实施例中任一项所述的方法。
本发明实施例提供的上述技术方案的有益效果至少包括:
本发明实施例提供的一种CPU-GPU间计算任务调度方法,通过在页锁定内存中构建若干数量的任务槽,将计算分成可同时执行的任务,进行动态分配;达到同一时间Kernel执行不同计算任务,提高GPU工作性能的目的。且无需升降硬件设备,充分利用GPU的并行线程数量和计算能力,可有效降低任务执行的时间,提高GPU资源利用率;尤其适用于GPU程序中有可并行执行任务的计算场景。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例提供的一种CPU-GPU间计算任务调度方法的流程图;
图2为本发明实施例提供的CPU-GPU间计算任务调度原理图;
图3为本发明实施例提供的GPU使用率的对比效果图;
图4为本发明实施例提供的一种CPU-GPU间计算任务调度系统的结构图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种CPU-GPU间计算任务调度方法,参照图1,包括:
S100、在页锁定内存中构建若干数量的任务槽;所述任务槽的数量与GPU计算线程块的数量相同,且一一对应;
S200、将需要完成的一个计算任务放到任务输入队列;
S300、CPU轮询若干数量的所述任务槽,当存在空闲状态的所述任务槽时,将所述任务输入队列中的一个任务放入到空闲状态的任务槽中,任务槽状态更新为任务待处理状态;
S400、GPU计算线程块实时查看对应的任务槽状态,当有任务槽为任务待处理状态时,则拷贝任务到相应GPU计算线程块中处理;
S500、处理完成后,GPU计算线程块将对应任务槽修改为完成状态;CPU将结果推送到任务输出队列,并将所述对应任务槽置为空闲状态。
本实施例中,通过在页锁定内存中构建若干数量的任务槽,将计算分成可同时执行的任务,进行动态分配;达到同一时间Kernel执行不同计算任务,提高GPU工作性能的目的。且无需升降硬件设备,充分利用GPU的并行线程数量和计算能力,可有效降低任务执行的时间,提高GPU资源利用率。该方法可应用于GPU通用计算领域的计算平台,如云服务和数据中心,特别是GPU程序中有可并行执行任务的计算场景。
其中,上述任务槽是被设计为记录任务状态和信息的数据结构,并且每个GPU端的计算线程块都有自己专属的任务槽。
下面详细说明下本发明实施例提供的CPU-GPU间计算任务调度方法。
在具体实施时,构建页锁定内存式CPU-GPU程序设计模型:
步骤100中在页锁定内存中构建若干数量的任务槽;其中,任务槽的数量与GPU计算线程块的数量相同,且一一对应;CPU-GPU异构系统中的GPU方面创建静态的线程池模型,CPU方面则负责辅助任务调度。传递任务的载体则是由页锁定内存来完成的。
步骤S200中,当需要完成一个计算任务时,如图2所示,首先将任务放到任务输入队列;
步骤S300当CPU轮询任务槽发现有空闲时(通过判断任务槽的状态进行识别),就将任务队列中的一个任务放入空闲的任务槽中,此任务槽对应GPU的一个计算线程块;
步骤S400-500,GPU计算线程块将持续查看对应的任务槽的状态,当有任务时(此时为任务待处理状态),则拷贝到GPU计算线程块中处理。处理完成后GPU计算线程块将任务槽更新为完成状态,供CPU端处理。CPU将结果推送到任务输出队列,并将对应任务槽置为空闲状态。
如图2所示,图中GPU线程块与任务槽为一一对应关系,具体的线程块数量为硬件提供的流计算处理器数量和每个流计算处理器设置的线程块数量决定。
在程序设计时,可依据不同的计算场景,将计算过程按计算类型和逻辑关系划分为不同的计算任务。例如在工程与科学计算中最常用的矩阵分解算法楚列斯基分解中,通常分为SYRK(对称秩K算法),通用稠密矩阵计算和TRMM(三角矩阵乘),三者之间有依赖关系。通过使用本发明实施例提供的方法,构建任务槽计算模型,可以将三个大的计算步骤分别分解为一组计算任务,每个计算任务分别计算64*64大小的子矩阵。这样一来,对称秩K算法与通用稠密矩阵计算可以并行计算,同时压入任务槽的任务输入队列。三角矩阵乘计算则可以在稠密矩阵乘计算部分完成后就压入任务输入队列,参照图3所示,左侧为正常GPU使用率的使用情况,右侧为应用本发明实施例方法后GPU使用率的使用情况,由此可看出明显提高GPU并行性能,无需升降硬件设备,充分利用GPU的并行线程数量和计算能力,可有效降低任务执行的时间,提高GPU资源利用率。
再比如基于T近邻的的谱聚类改进算法,通常计算分为两步,一是使用GPU计算待计算样本与其转置矩阵的积,二是使用CPU计算结果矩阵的两点之间的相似性距离,从而得到稀疏相似矩阵。当应用本发明实施例提供的方法,通过页锁定内存中构建若干数量的任务槽,去进行计算,可以将GPU的矩阵乘积计算分解为64*64大小的子矩阵计算,这样在一个计算任务得到结果后,CPU就可以从任务完成队列取出结果,并进行相应计算;并不需要等整个GPU计算结束后再计算,提高了计算效率。
如图2所示,程序运行过程中,CPU将可并行的计算任务推送到任务输入队列中等待调度。
CPU调度线程通过探测页锁定内存得到任务运行状态。一旦有任务槽空闲,则将待处理任务放入任务槽中等待GPU线程块处理。一旦有任务槽完成状态,则将结果推送到任务输出队列,将该任务槽置为空闲状态。
其中,GPU端按线程块划分任务槽,使得不同任务槽可以执行不同计算任务。当任务槽状态为空闲或完成时,则线程块空转,直到任务槽有待执行计算任务,此时线程块按任务要求执行计算任务。
通过本发明实施例提供的方法,可使得在同一Kernel中运行的GPU程序,可以同一时间执行不同的计算任务。解决了GPU同一Kernel同一时间不能执行多个计算任务,如果多个Kernel执行不同计算任务又无法进行资源充分利用的问题。该方法使用任务槽动态的将计算分成可同时执行的任务,进行动态分配,可以更好的利用GPU资源。
基于同一发明构思,本发明实施例还提供了一种CPU-GPU间计算任务调度系统,由于该系统所解决问题的原理与一种CPU-GPU间计算任务调度方法相似,因此该系统的实施可以参见前述方法的实施,重复之处不再赘述。
本发明实施例还提供了一种CPU-GPU间计算任务调度系统,参照图4所示,包括:
构建任务槽模块41,用于在页锁定内存中构建若干数量的任务槽;所述任务槽的数量与GPU计算线程块的数量相同,且一一对应;
输入任务队列模块42,用于将需要完成的一个计算任务放到任务输入队列;
CPU处理调度模块43,用于CPU轮询若干数量的所述任务槽,当存在空闲状态的所述任务槽时,将所述任务输入队列中的一个任务放入到空闲状态的任务槽中,任务槽状态更新为任务待处理状态;
GPU线程处理模块44,用于GPU计算线程块实时查看对应的任务槽状态,当有任务槽为任务待处理状态时,则拷贝任务到相应GPU计算线程块中处理;
当处理完成后,所述GPU线程处理模块44,还用于GPU计算线程块将对应任务槽修改为完成状态;CPU处理调度模块43,还用于CPU将结果推送到任务输出队列,并将所述对应任务槽置为空闲状态。
在一个实施例中,所述构建任务槽模块41中,GPU计算线程块的数量,由硬件提供的流处理器数量和每个流计算处理器设置的线程块数量确定。
在一个实施例中,所述输入任务队列模块42,包括:
划分子模块421,用于将一个计算任务根据不同的计算场景,将计算过程按计算类型和逻辑关系划分为多个不同的计算任务;
输入子模块422,用于将多个不同的计算任务同时放到任务输入队列中。
本发明实施例还提供了一种计算机可读存储介质,当所述存储介质中的指令由处理器执行时,能够实现如前述实施例所述的方法:
S100、在页锁定内存中构建若干数量的任务槽;所述任务槽的数量与GPU计算线程块的数量相同,且一一对应;
S200、将需要完成的一个计算任务放到任务输入队列;
S300、CPU轮询若干数量的所述任务槽,当存在空闲状态的所述任务槽时,将所述任务输入队列中的一个任务放入到空闲状态的任务槽中,任务槽状态更新为任务待处理状态;
S400、GPU计算线程块实时查看对应的任务槽状态,当有任务槽为任务待处理状态时,则拷贝任务到相应GPU计算线程块中处理;
S500、处理完成后,GPU计算线程块将对应任务槽修改为完成状态;CPU将结果推送到任务输出队列,并将所述对应任务槽置为空闲状态。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (7)
1.一种CPU-GPU间计算任务调度方法,其特征在于,包括:
S100、在页锁定内存中构建若干数量的任务槽;所述任务槽的数量与GPU计算线程块的数量相同,且一一对应;
S200、将需要完成的一个计算任务放到任务输入队列;
S300、CPU轮询若干数量的所述任务槽,当存在空闲状态的所述任务槽时,将所述任务输入队列中的一个任务放入到空闲状态的任务槽中,任务槽状态更新为任务待处理状态;
S400、GPU计算线程块实时查看对应的任务槽状态,当有任务槽为任务待处理状态时,则拷贝任务到相应GPU计算线程块中处理;
S500、处理完成后,GPU计算线程块将对应任务槽修改为完成状态;CPU将结果推送到任务输出队列,并将所述对应任务槽置为空闲状态。
2.如权利要求1所述的方法,其特征在于,所述步骤S100中GPU计算线程块的数量,由硬件提供的流处理器数量和每个流计算处理器设置的线程块数量确定。
3.如权利要求1所述的方法,其特征在于,所述步骤S200包括:
将一个计算任务根据不同的计算场景,将计算过程按计算类型和逻辑关系划分为多个不同的计算任务;
将多个不同的计算任务同时放到任务输入队列中。
4.一种CPU-GPU间计算任务调度系统,其特征在于,包括:
构建任务槽模块,用于在页锁定内存中构建若干数量的任务槽;所述任务槽的数量与GPU计算线程块的数量相同,且一一对应;
输入任务队列模块,用于将需要完成的一个计算任务放到任务输入队列;
CPU处理调度模块,用于CPU轮询若干数量的所述任务槽,当存在空闲状态的所述任务槽时,将所述任务输入队列中的一个任务放入到空闲状态的任务槽中,任务槽状态更新为任务待处理状态;
GPU线程处理模块,用于GPU计算线程块实时查看对应的任务槽状态,当有任务槽为任务待处理状态时,则拷贝任务到相应GPU计算线程块中处理;
当处理完成后,所述GPU线程处理模块,还用于GPU计算线程块将对应任务槽修改为完成状态;CPU处理调度模块,还用于CPU将结果推送到任务输出队列,并将所述对应任务槽置为空闲状态。
5.如权利要求4所述的系统,其特征在于,所述构建任务槽模块中,GPU计算线程块的数量,由硬件提供的流处理器数量和每个流计算处理器设置的线程块数量确定。
6.如权利要求4所述的系统,其特征在于,所述输入任务队列模块,包括:
划分子模块,用于将一个计算任务根据不同的计算场景,将计算过程按计算类型和逻辑关系划分为多个不同的计算任务;
输入子模块,用于将多个不同的计算任务同时放到任务输入队列中。
7.一种计算机可读存储介质,其特征在于,当所述存储介质中的指令由处理器执行时,能够实现如权利要求1-3中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010996991.9A CN112162854A (zh) | 2020-09-21 | 2020-09-21 | 一种cpu-gpu间计算任务调度方法、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010996991.9A CN112162854A (zh) | 2020-09-21 | 2020-09-21 | 一种cpu-gpu间计算任务调度方法、系统及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112162854A true CN112162854A (zh) | 2021-01-01 |
Family
ID=73862611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010996991.9A Pending CN112162854A (zh) | 2020-09-21 | 2020-09-21 | 一种cpu-gpu间计算任务调度方法、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112162854A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051059A (zh) * | 2021-04-10 | 2021-06-29 | 作业帮教育科技(北京)有限公司 | 一种多gpu的任务实时调度方法及装置 |
CN113076181A (zh) * | 2021-03-04 | 2021-07-06 | 山东英信计算机技术有限公司 | 一种数据处理流程优化方法、系统及存储介质 |
CN113448706A (zh) * | 2021-06-29 | 2021-09-28 | 中国工商银行股份有限公司 | 批量任务处理方法、装置及系统 |
CN114138449A (zh) * | 2021-12-14 | 2022-03-04 | 河南省儿童医院郑州儿童医院 | 一种基于虚拟现实的康复训练系统 |
CN114501067A (zh) * | 2022-01-10 | 2022-05-13 | 成都易达数安科技有限公司 | 一种多gpu并发的媒资转码任务自动调度方法 |
CN116483584A (zh) * | 2023-05-26 | 2023-07-25 | 摩尔线程智能科技(北京)有限责任公司 | Gpu的任务处理方法、装置、电子设备和存储介质 |
CN116594745A (zh) * | 2023-05-11 | 2023-08-15 | 阿里巴巴达摩院(杭州)科技有限公司 | 任务执行方法、系统、芯片及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317655A (zh) * | 2014-10-11 | 2015-01-28 | 华中科技大学 | 基于集群式gpu加速的多源全路径蒙特卡罗模拟方法 |
CN105959404A (zh) * | 2016-06-27 | 2016-09-21 | 江苏易乐网络科技有限公司 | 一种基于云计算的gpu虚拟化平台 |
CN106201870A (zh) * | 2016-07-01 | 2016-12-07 | 浪潮电子信息产业股份有限公司 | 一种测试gpu的方法及装置 |
-
2020
- 2020-09-21 CN CN202010996991.9A patent/CN112162854A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317655A (zh) * | 2014-10-11 | 2015-01-28 | 华中科技大学 | 基于集群式gpu加速的多源全路径蒙特卡罗模拟方法 |
CN105959404A (zh) * | 2016-06-27 | 2016-09-21 | 江苏易乐网络科技有限公司 | 一种基于云计算的gpu虚拟化平台 |
CN106201870A (zh) * | 2016-07-01 | 2016-12-07 | 浪潮电子信息产业股份有限公司 | 一种测试gpu的方法及装置 |
Non-Patent Citations (1)
Title |
---|
李涛 等: ""基于线程池的GPU任务并行计算模式研究"", 《计算机学报》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113076181A (zh) * | 2021-03-04 | 2021-07-06 | 山东英信计算机技术有限公司 | 一种数据处理流程优化方法、系统及存储介质 |
CN113076181B (zh) * | 2021-03-04 | 2023-09-26 | 山东英信计算机技术有限公司 | 一种数据处理流程优化方法、系统及存储介质 |
CN113051059A (zh) * | 2021-04-10 | 2021-06-29 | 作业帮教育科技(北京)有限公司 | 一种多gpu的任务实时调度方法及装置 |
CN113448706A (zh) * | 2021-06-29 | 2021-09-28 | 中国工商银行股份有限公司 | 批量任务处理方法、装置及系统 |
CN114138449A (zh) * | 2021-12-14 | 2022-03-04 | 河南省儿童医院郑州儿童医院 | 一种基于虚拟现实的康复训练系统 |
CN114501067A (zh) * | 2022-01-10 | 2022-05-13 | 成都易达数安科技有限公司 | 一种多gpu并发的媒资转码任务自动调度方法 |
CN116594745A (zh) * | 2023-05-11 | 2023-08-15 | 阿里巴巴达摩院(杭州)科技有限公司 | 任务执行方法、系统、芯片及电子设备 |
CN116483584A (zh) * | 2023-05-26 | 2023-07-25 | 摩尔线程智能科技(北京)有限责任公司 | Gpu的任务处理方法、装置、电子设备和存储介质 |
CN116483584B (zh) * | 2023-05-26 | 2024-05-03 | 摩尔线程智能科技(北京)有限责任公司 | Gpu的任务处理方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112162854A (zh) | 一种cpu-gpu间计算任务调度方法、系统及介质 | |
US9235769B2 (en) | Parallel object detection method for heterogeneous multithreaded microarchitectures | |
Zachariadis et al. | Accelerating sparse matrix–matrix multiplication with GPU Tensor Cores | |
CN110262901B (zh) | 一种数据处理方法及数据处理系统 | |
US7937567B1 (en) | Methods for scalably exploiting parallelism in a parallel processing system | |
CN114741207B (zh) | 一种基于多维度组合并行的gpu资源调度方法和系统 | |
CN111488205B (zh) | 面向异构硬件架构的调度方法和调度系统 | |
CN113469350B (zh) | 一种适于npu的深度卷积神经网络加速方法和系统 | |
US20220083857A1 (en) | Convolutional neural network operation method and device | |
WO2018000724A1 (zh) | 基于gpgpu平台的cdvs提取过程加速方法 | |
CN114579929B (zh) | 加速器执行的方法和电子设备 | |
WO2024027039A1 (zh) | 数据处理方法、装置、设备和可读存储介质 | |
WO2023082575A1 (zh) | 一种面向神经网络模型计算的图执行流水并行方法和装置 | |
US20210158131A1 (en) | Hierarchical partitioning of operators | |
CN116382880B (zh) | 任务执行方法、装置、处理器、电子设备及存储介质 | |
CN110245024B (zh) | 静态存储块的动态分配系统及其方法 | |
Wan et al. | GPU implementation of a parallel two‐list algorithm for the subset‐sum problem | |
CN116431315B (zh) | 批处理任务的处理方法、装置、电子设备及存储介质 | |
CN113051049A (zh) | 任务调度系统、方法、电子设备及可读存储介质 | |
CN112950451A (zh) | 一种基于GPU的极大k-truss发现算法 | |
US20220300326A1 (en) | Techniques for balancing workloads when parallelizing multiply-accumulate computations | |
CN110415162B (zh) | 大数据中面向异构融合处理器的自适应图划分方法 | |
WO2024055168A1 (zh) | 一种资源分配方法、处理器和计算平台 | |
Raju et al. | Performance enhancement of CUDA applications by overlapping data transfer and Kernel execution | |
Aher et al. | Accelerate the execution of graph processing using GPU |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210101 |
|
RJ01 | Rejection of invention patent application after publication |