CN110088730B - 任务处理方法、装置、介质及其设备 - Google Patents

任务处理方法、装置、介质及其设备 Download PDF

Info

Publication number
CN110088730B
CN110088730B CN201780055353.3A CN201780055353A CN110088730B CN 110088730 B CN110088730 B CN 110088730B CN 201780055353 A CN201780055353 A CN 201780055353A CN 110088730 B CN110088730 B CN 110088730B
Authority
CN
China
Prior art keywords
tasks
task
graphics processor
parallel
executed
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
Application number
CN201780055353.3A
Other languages
English (en)
Other versions
CN110088730A (zh
Inventor
吴昊
刘威志
王卓立
马军超
毕舒展
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN110088730A publication Critical patent/CN110088730A/zh
Application granted granted Critical
Publication of CN110088730B publication Critical patent/CN110088730B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

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

一种任务处理方法、装置、介质及其设备,涉及计算机处理器领域。所述任务处理方法包括:任务处理装置接收多个需要在图形处理器上执行的任务(101);任务处理装置根据多个任务中不同的N个任务之间的并行性能值,从多个任务中选择N个任务在图形处理器上并行执行(102);任务处理装置根据图形处理器的状态和每一个未被执行任务与图形处理器上正在执行的任务之间的并行性能值,从未被执行任务中选择一个满足预设条件的任务在图形处理器上执行(103)。本方法可动态调整任务的执行对GPU资源的占用情况,从而实时有效地提高GPU资源的利用率。

Description

任务处理方法、装置、介质及其设备
技术领域
本发明涉及计算机处理器领域,特别涉及一种任务处理方法、装置、介质及其设备。
背景技术
GPU(Graphics Processing Unit,图形处理器)作为一个大规模并行计算元件,因其日益强大的计算能力,已经被广泛应用于通用计算中。不同领域中的大量程序都用GPU进行加速,如传统计算密集型的科学计算、文件系统、网络系统、数据库系统和云计算等。
GPU线程的调度一般分成两个阶段。第一个阶段是将GPU任务中的一个线程块(block)或线程组(work-group)(请注意,block和work-group在本申请中统称为线程组)调度到某一个CU(计算单元)/SM(流处理器)上。第二个阶段则是在CU/SM上的调度。当一个work-group被分配到CU/SM上后,会以wave-front(ADMGPU中的线程束)或者warp(NvidiaGPU中的线程束)为单位被调度到不同的功能部件上运行。AMD的GPU主要的功能部件有SALU(一种标量计算功能部件)、VALU(一种矢量计算功能部件)和内存访问单元等;NvidiaGPU主要的功能部件有普通计算单元、特殊计算单元和内存访问单元等。
同一种任务在GPU上运行时,由于同一任务中的线程束的运行特性相似,对某种功能部件的需求高于对其他功能部件的需求,这样使得其他功能部件处于空闲,造成GPU的资源浪费。并发执行不同的任务可以减少这一资源浪费。现有技术中简单的将不同任务的线程块或线程组合并成一个运行的技术只能通过静态地修改任务来达到提高资源利用的目的,而且,由于这些方案只能静态地修改任务,当GPU上资源不足以分配合并的任务却能分配单个任务时,容易造成更严重的资源浪费。
发明内容
本发明的目的在于提供一种任务处理方法、装置、介质及其设备,可动态调整任务的执行对GPU资源的占用情况,从而实时有效地提高GPU资源的利用率。
为解决上述技术问题,本发明的实施方式公开了一种任务处理方法,在该方法中,任务处理装置接收多个需要在图形处理器上执行的任务,并从多个任务中选择N个任务计算其并行性能值,对于不同的N个任务计算其不同的并行性能值,并根据计算所得的多个并行性能值选取N个任务在图形处理器上并行执行,然后,在选择出上述N个任务在图形处理器上执行后,根据图形处理器的状态和每一个没有被执行任务与图形处理器上正在执行的任务之间的并行性能值,从没有被执行任务中选择一个满足预设条件的任务在图形处理器上执行。
在该方法中,任务的线程组划分形式可以包含两类。第一类划分形式为将任务切分为线程组数目更小子任务,第二类划分形式为将任务中的至少两个线程组合并为一个线程组。同时,可以采用多种方式对任务进行线程组划分。例如,通过设定任务在每个单指令多数据流(SIMD)中被允许活跃的线程束(或者线程束)的数目来对任务进行线程组划分,具体地,设定任务在每个单指令多数据流中被允许活跃的线程束的数目;并根据设定的线程束的数目,确定采用第一类划分形式时,需要切分成的子任务的数目,或者确定采用第二类划分形式时需要合并的线程组的数目。
本发明的实施方式还公开了一种任务处理装置,该装置包括:接收单元,用于接收多个需要在图形处理器上执行的任务;选择单元,用于从多个任务中选择N个任务计算其并行性能值,并计算不同的N个任务的并行性能值,进而根据计算所得的多个并行性能值选取N个任务在图形处理器上并行执行;执行单元,用于在选择出上述N个任务在图形处理器上执行后,根据图形处理器的状态和每一个未被执行任务与图形处理器上正在执行的任务之间的并行性能值,从未被执行任务中选择一个满足预设条件的任务在图形处理器上执行。
本发明的实施方式还公开了一种非易失性存储介质,该非易失性存储介质具有存储在其中的指令,当存储的指令被执行时,使得处理器执行任务处理方法,存储的指令包括:
控制任务处理装置接收多个需要在图形处理器上执行的任务,并控制任务处理装置从多个任务中选择N个任务计算其并行性能值,对于不同的N个任务,计算其不同的并行性能值,并根据计算所得的不同的多个并行性能值选取N个任务在图形处理器上并行执行,其中,并行性能值用于指示N个任务在图形处理器上并行执行的性能,然后,在选择出上述N个任务在图形处理器上执行后,控制任务处理装置根据图形处理器的状态和每一个未被执行任务与图形处理器上正在执行的任务之间的并行性能值,从未被执行任务中选择一个满足预设条件的任务在图形处理器上执行。
本发明的实施方式还公开了一种设备,包括存储有计算机可执行指令的存储器和处理器,处理器被配置为执行指令以实施任务处理方法,任务处理方法中任务处理装置接收多个需要在图形处理器上执行的任务,从多个任务中选择N个任务计算其并行性能值,并计算不同的N个任务的并行性能值,然后根据计算所得的多个并行性能值选取N个任务在图形处理器上并行执行,其中,并行性能值用于指示N个任务在图形处理器上并行执行的性能;在选择出上述N个任务在图形处理器上执行后,任务处理装置根据图形处理器的状态和每一个未被执行任务与图形处理器上正在执行的任务之间的并行性能值,从未被执行任务中选择一个满足预设条件的任务在图形处理器上执行。
本发明实施方式与现有技术相比,主要区别及其效果在于:
该方法通过分析不同任务在GPU上的并发执行性能,动态调整任务的执行对GPU资源的占用情况,从而实时有效地提高GPU资源的利用率。
进一步地,特征参数能够直观的表示任务对GPU上功能部件的需求,基于特征参数计算并行性能值,能有效分析不同任务并行执行时相互间对功能部件的使用冲突情况。
进一步地,对多个需要在GPU上执行的任务进行线程组划分,并将选择出的N个任务在GPU上以划分后的线程组形式运行,从而通过减少并行执行时各任务中线程组的数目来减少对相同功能部件的使用冲突,以提高对GPU上各资源的使用率和计算性能。
进一步地,选择具有最大并行性能值的多个任务,并以对应该多个任务最大并行性能值的线程组划分形式在GPU中执行该多个任务,能够最大程度地减小多个任务在并行执行时对GPU上功能部件的使用冲突。
进一步地,通过选择不同类型的任务在GPU中执行,可以有效降低任务对相同功能部件的使用冲突,从而提高GPU执行任务时的资源占用率。
进一步地,基于GPU的的硬件资源(SIMD)对任务进行维度处理的方式,可以避免由于不当的维度处理,造成硬件资源无法执行维度处理后的任务所出现的问题。
附图说明
图1示出了根据本发明的实施方式的任务处理装置的框图。
图2示出了本发明第一实施方式中的一种任务处理方法的流程示意图。
图3示出了本发明第二实施方式中的一任务被进行线程组划分后进行并行执行的示意图。
图4示出了本发明第五实施方式中的一种任务处理装置的结构示意图。
图5示出了根据本发明实施方式的任务处理装置的硬件结构示意图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
值得注意的,本申请文件中的实施方式主要以AMD(一家生产GPU的公司的名称)生产的GPU为例进行对本发明技术方案的说明。
此外,可以理解,在本发明各实施方式中,线程束指AMD GPU中的wave-front或者Nvidia GPU中的wrap。程序任务可以是OpenCL(开放运算语言)任务,也可以是别的计算机语言编写的程序的任务。
图1示出了根据本发明的实施方式的任务处理装置的框图。如图1所示,任务处理包括控制器和存储器。
CPU 100(Central Processing Unit,中央处理器)向任务处理装置200发送任务执行指令。一旦接收到任务执行指令,任务处理装置200将对多个任务进行相关的调度处理,以在GPU 300上执行相关任务。具体地,控制器201控制存储器202来接收多个需要在GPU300上执行的任务,根据多个任务中不同的N个任务之间的并行性能值,从多个任务中选择N个任务在GPU 300上并行执行,并且,根据GPU 300的状态和每一个未被执行任务与GPU 300上正在执行的任务之间的并行性能值,从未被执行任务中选择一个满足预设条件的任务在GPU 300上执行。
值得注意的是,图1中的任务处理装置和CPU被描绘为分离的功能块,在本发明不局限于此。如任务处理装置能够被配置为与CPU或GPU相关联地进行操作。
本发明第一实施方式涉及一种任务处理方法。图2是该方法的流程示意图。
具体地,如图2所示,该方法包括以下步骤:
步骤101,任务处理装置接收多个需要在图形处理器上执行的任务。
此后,进入步骤102
在步骤102中,任务处理装置根据多个任务中不同的N个任务之间的并行性能值,从多个任务中选择N个任务在图形处理器上并行执行,并行性能值用于指示N个任务在图形处理器上并行执行的性能,N为大于1的自然数。
可以理解,在本发明的各实施方式中,并行性能值可以是N个任务在图形处理器上并行执行时所需的执行时间相较于各任务单独执行时所需时间总和的减少率。也可以是其他的表征N个任务并行执行时执行效率提升度的数值,在此不做限制。为了降低计算复杂度,在该步骤中,可以选取两个任务在图形处理器上并发执行。
此外,任务处理装置根据多个任务对图形处理器的资源占用,将多个任务分为存储型任务和计算型任务,并且,在该步骤102中,任务处理装置从存储型任务和计算型任务中分别选择至少一个任务,在图形处理器上并行执行。过选择不同类型的任务在GPU中执行,可以有效降低任务对相同功能部件的使用冲突,从而提高GPU执行任务时的资源占用率。
此后,进入步骤103。
在步骤103中,任务处理装置根据图形处理器的状态和每一个未被执行任务与图形处理器上正在执行的任务之间的并行性能值,从未被执行任务中选择一个满足预设条件的任务在图形处理器上执行。
可以理解,图形处理器的状态是指图形处理器中各功能部件或者各计算资源被占用的情况。通过预设条件,可以选择加入图形处理器中后,与正在执行的任务之间对GPU上各功能部件的使用冲突较小的未被执行的任务。例如,预设条件为未被执行任务与图形处理器上正在执行的任务之间的并行性能值小于预定阈值,或者为未被执行任务与图形处理器上正在执行的任务在并发执行时,由于对相同的功能部件产生使用冲突,各自被延时的概率。
此外,可以理解,在本发明各实施方式中,该步骤103可以重复执行,即从未被执行的任务中多次选择满足预定条件的任务执行,直至没有满足条件的任务存在为止。为了准确获取GPU的状态,该方法还包括:
任务处理装置在图形处理器上执行完一个任务之后,更新图形处理器的状态。
此后,结束本流程。
通过分析不同任务在GPU上的并发执行性能,能够动态调整任务的执行对GPU资源的占用情况,从而实时有效地提高GPU资源的利用率和计算性能。
本发明的第二实施方式公开了一种任务处理方法。
第二实施方式在第一实施方式的基础上进行了改进,主要改进之处在于:对多个需要在GPU上执行的任务进行线程组划分,并将选择出的N个任务在GPU上以划分后的线程组形式运行,从而通过减少并行执行时各任务中线程组的数目来减少对相同功能部件的使用冲突,以提高对GPU上各资源的使用率和计算性能。
具体地,上述多个任务中每个任务有多种线程组划分形式,线程组划分形式用于指示每个任务在图形处理器上运行时的方式;根据N个任务中每个任务中线程组的划分形式不同,N个任务对应多个并行性能值,其中,多个并行性能值中的每一个并行性能值对应N个任务的一种线程组划分组合。
此外,可以理解,可以通过特征参数表征每个任务在各线程组划分形式下的执行性能。即,每一个任务的一种线程组划分形式对应一个特征参数,特征参数用于表征每一个任务按照线程组划分形式,在图形处理器上单独执行时的性能。特征参数可以包括任务的单独执行时间、任务单独执行时对计算模块上各功能部件的占用率和占用每个功能部件时单个线程的指令数。此外,特征参数也可以包括其他表征任务对GPU资源占用情况的参数,在此不做限制。
由于在该实施方式中,每个任务有多个线程组划分形式,因此,N个任务中每个任务的线程组划分形式不同,其可具有多个线程组划分组合,从而对应有多个并行性能值。在一实例中,上述任务处理方法还包括:任务处理装置根据N个任务中每一个任务对应的特征参数,确定N个任务对应的多个并行性能值。
由于对应不同的线程组划分形式,N个任务对应多个并行性能值,为了尽可能地提高N个任务并行执行时对GPU资源的使用率,在上述步骤102中,任务处理装置根据多个任务中每个任务的特征参数,从多个任务中选择具有最大并行性能值的N个任务在图形处理器上执行。可以通过多种方式选择最大并行性能值。
此外,可以理解,任务的线程组划分形式可以包含两类。第一类划分形式为将任务切分为线程组数目更小子任务,第二类划分形式为将任务中的至少两个线程组合并为一个线程组。假如要将一任务的线程组数目从64减少为16,可采用第一类划分形式划分为四个子任务,每个子任务的线程组数目为16,并发执行时,GPU依次执行这四个子任务;或者采用第二类划分形式将该任务中的四个线程组合并为一个线程组,合并后的任务具有16个线程组。图3示出了一任务分别采用第一类划分形式和第二类划分形式后进行并行执行的示意图。如图3所示,对于同一任务,可以进行只进行第一类或者第二类划分形式的划分,也可以同时采用两中划分形式进行处理(如先合并线程组,然后再切分任务为子任务)。图中SM表示计算单元。
此外,可以理解,可以采用多种方式对任务进行线程组划分。例如,通过设定任务在每个单指令多数据流(SIMD)中被允许活跃的线程束(或者线程束)的数目来对任务进行线程组划分,具体地,设定任务在每个单指令多数据流中被允许活跃的线程束的数目;并根据设定的线程束的数目,确定采用第一类划分形式时,需要切分成的子任务的数目,或者确定采用第二类划分形式时需要合并的线程组的数目。例如,某一任务具有64个线程束,8个线程组,设定每个SIMD上被允许活跃的线程束的数目为4,GPU有4个SIMD,则每次可处理的线程束只有16个,对于第一类划分形式,需要将任务切分为4个子任务,使得每个子任务中的线程束数目为16;对于第二划分形式,需要将任务的线程束合并为16个,即需要将线程组合并成2个,每4个线程组合并成1个线程组。
基于GPU的的硬件资源(SIMD)对任务进行维度处理的方式,可以避免由于不当的维度处理,造成硬件资源无法执行维度处理后的任务所出现的问题。
该实施方式的其他内容与第一实施方式相同,在此不再赘述。
本发明的第三实施方式公开了一种任务处理方法。
第三实施方式列出了第二实施方式的步骤102中,从多个任务中选择具有最大并行性能值的N个任务的具体方式。该实施方式的其他内容与第二实施方式相同,在此不再赘述。
具体地,具有最大并行性能值的N个任务的选择方式如下:
对于与N个任务的多个线程组划分组合对应的多个并行性能值,从中选择最大值作为N个任务的并行性能值,并从多个N个任务的并行性能值中选择最大值作为最大并行性能值;并且
任务处理装置将与该最大并行性能值对应的N个任务在图形处理器中并行执行时,N个任务在图形处理器上的运行方式由与最大并行性能值对应的线程组划分组合确定。
例如,在一实例中,以AMD GPU为例,取N为2,基于上述选择方式的任务处理方法如下:
1)将任务处理装置接收到的多个任务对成的任务集合K={Kn},划分为两大类KCI(计算型任务集)与KMI(存储型任务集)。
例如,AMD GPU中主要的功能部件有计算部件SALU(Scalar ALU,GPU中的一种功能部件)、计算部件VALU(Vector ALU,GPU中的一种功能部件)和内存访问单元等,该GPU中的任务的核特征参数包括任务在GPU中的单独执行时间T、任务单独执行时对功能部件SALU的占用率ps和单个线程的指令数s、对功能部件VALU的占用率pv和单个线程的指令数v、对内存访问单元的占用率pm。
可以根据上述特征参数对任务进行分类,例如,当任务的2×ps<pm且2×pv<pm时,表示该任务为存储型(MI)任务,其内存的读写所需要的时间不能被计算所隐藏,否则为计算型(CI)任务。
2)对所有可能的两个任务对成的任务对,计算其在各种线程组划分形式下的并行性能值。
Figure GPA0000263813100000091
Figure GPA0000263813100000092
选取任务对(Kn,Km),Kn∈KCI,Km∈KMI;若有一个是空,则选取任务对(Kn,Km),其中Kn与Km属于同一个集合。
根据GPU调度分配原则,计算Kn与Km在SIMD上的数量a和b,并求得他们的性能影响值pn和pm。具体计算方式如下:
a)获取任务对中一个任务的特征参数的过程如下:
首先,设该任务在SIMD被允许活跃的线程束(wave-front)的数目i=1,利用现有的工具如CodeXL解析得到其特征参数(1,T1,ps1,pv1,pm1,s1,v1)。然后,求得每个SIMD上可以被允许的最大的活跃的wave-front数,记录为max_wf_SIMD,这个值是根据已有的官方文档中的方法求得;设定i=2×max_wf_SIMD,记为L,解析得到(L,TL,psL,pvL,pmL,sL,vL)。其中,功能部件工作的时间(除去空闲时间)和任务的运行时间与i是线性增长关系。然后,求得增长趋势的五个常量为:
Figure GPA0000263813100000093
其中,sa和va分别是功能部件SALU和VALU总指令数的增长趋势;sc和vc是分别是单个功能部件SALU和VALU指令执行时间的增长趋势;mc是访存时间的增长趋势;TSi、TVi、TMi别为功能部件SALU、VALU和内存访问单元的工作时间。
基于求得的上述五个常量(即参数的线性模型),可以求得任务的i为其它取值时的特征向量。
假如已知i-1时的各特征参数,则对应i的各特征参数的计算如下:
对于计算密集型任务,所有内存访问操作的时间都可以被计算时间所隐藏,所以
Tser=(ps1*psi-1*sc+pv1*pvi-1*vc)*T1
对于访存密集型任务,所有计算时间都可以被内存访问操作的时间所隐藏,所以
Tser=(pm1*pmi-1*mc)*T1
从而,求得任务Ki的运行时间为
Ti=Ti-1+Tser
根据线性增长模型,求得SALU和VALU的总指令数
si=sa×(i-1)+s1;vi=va×(i-1)+v1
根据平均每个指令的执行时间的增长趋势,求得两个计算部件工作的时间
Figure GPA0000263813100000101
同样,根据线性增长模型求得访存部件工作的时间
TMi=TM1+(i-1)×TM1×mc
b)任务对中的任务Kn和Km的性能影响值的计算方式如下:
任务Kn和Km在CU/SM上运行时,彼此之前相互独立,没有依赖。两个任务只有在同一时刻都对需要用到某一个功能部件时才会相互影响。对于某个功能部件来说,将任务对其的使用当作一个事件。这样,任务对该功能部件的占用率看作事件发生的概率。根据独立事件的概率模型,两个事件同时发生的概率是两者的乘积。以任务Kn为例,Kn与Km同时使用同一功能部件的概率可以通过下式计算出来:
若两者都是CI型任务,则
p′n=ps(Kn,a)*ps(Km,b)*sc(Kn)+pv(Kn,a)*pv(Km,b)*vc(Kn)
若Kn与Km都是MI型任务,则
p′n=pm(Kn,a)*pm(Km,b)*mc(Kn)
若Kn与Km属于不同类型,则
p′n=ps(Kn,a)*ps(Kn,b)*sc(Kn)+pv(Kn,a)*pv(Km,b)*vc(Kn)+pm(Kn,a)*pm(Km,b)*mc(Kn)
其中,a和b分别为任务Kn与Km的i值。
两者的性能影响值如下:
以Kn为例,Km已经在运行的概率为
Figure GPA0000263813100000102
故其会被推迟的概率(即性能影响值)为
Figure GPA0000263813100000103
同样,对于Km来说,其会被推迟的概率(即性能影响值)为
Figure GPA0000263813100000104
c)计算任务对中的任务Kn和Km之间的并行性能值R。
假设两个任务相互之间对各功能部件没有使用冲突,在不同任务组划分形式下可能的并行运行时间为Toverlap。首先,计算任务组划分形式的运行时间。对于任务K,单独在GPU上的执行时间为T。切分(第一类划分形式)后K的份数或者第二类划分后任务代码的循环次数为
Figure GPA0000263813100000105
则第一类划分形式下的运行时间为
T′=w*Tg+w*T(K,w)
其中,Tg是同一个OpenCL队列连续启动两个任务所需要的平均时间。第二类划分形式下的运行时间为:
T+=w*T(K,w)
然后,计算两者重叠的时间为:
Toverlap=min(T′n,T′m)
Figure GPA0000263813100000112
增加两者之间使用冲突的影响,这段时间对Kn与Km的影响分别为
Figure GPA0000263813100000115
Figure GPA0000263813100000113
Figure GPA0000263813100000114
线程组划分后的并行执行时间为T′n与T′m,并行性能值为:
Figure GPA0000263813100000111
假定Kn与Km的运行时间分别为Tn与Tm。对于两者所有的线程组划分形式,从最小运行时间出发,按照上述求得并行性能值R,若并行性能值R下降,则停止。选取Kn与Km的多个R值中的最大值作为该任务对的最终的并行性能值。然后,对比所有任务对的最终的并行性能值,选取最大值作为最大并行性能值。
3)将具有最大并行性能值的任务对在GPU中并行执行,并且,该任务对中的任务的运行方式由该任务对的最大并行性能值对应的线程组划分形式组合确定。同时,更新GPU中执行任务的状态为:
TS=TS(Kn,a)+TS(Km,b)
TV=TV(Kn,a)+TV(Km,b)
TM=TM(Kn,a)+TM(Km,b)
同样求得该任务对组成的任务的性能影响值为(n+m,T,ps,pv,pm),并将该性能影响值作为当前GPU执行的任务的状态。
4)根据上述组性能影响值确定GPU中的任务对的类型(计算密集型任务对或访存密集型任务作),在另外一种类型中寻找匹配任务。即另外任务集合中的所有任务,若某任务Ki与GPU的状态(n+m,T,ps,pv,pm)满足两者之间的性能影响值都小于1.5,即重叠部分的推迟都不会多于原本的一半,将其按照相应维度处理方案放入GPU中执行。
5)同样按照上一步骤跟新GPU中执行任务的状态,重复此步骤直到没有新任务可以满足条件。若某个任务结束运行,重新计算GPU的状态。对于每个GPU的状态,储存为一张表,以方便状态更新。
选择具有最大并行性能值的多个任务,并以对应该多个任务最大并行性能值的线程组划分形式在GPU中执行该多个任务,能够最大程度地减小多个任务在并行执行时对GPU上功能部件的使用冲突。
本发明的第四实施方式公开了一种任务处理方法。
第四实施方式列出了第二实施方式的步骤102中,从多个任务中选择具有最大并行性能值的N个任务的具体方式。该实施方式的其他内容与第二实施方式相同,在此不再赘述。
具体地,具有最大并行性能值的N个任务的选择方式如下:
从未进行线程组划分的多个任务中选择具有最大的并行性能值的N个任务,对于对应选择出的N个任务的多个线程组划分组合的多个并行性能值,从中选择最大值作为最大并行性能值;并且,
任务处理装置将与该最大并行性能值对应的N个任务在所述图形处理器中并行执行时,N个任务在图形处理器上的运行方式由与最大并行性能值对应的线程组划分组合确定。
例如,在一实例中,以AMD GPU为例,取N为2,基于上述选择方式的任务处理方法如下:
1)将任务处理装置接收到的多个任务对成的任务集合K={Kn},划分为两大类KCI(计算型任务集)与KMI(存储型任务集)。
2)对所有可能的任务对,不进行线程组划分,计算性能影响值。
按照上一实施方式的方法选择任务对Kn与Km,计算Kn与Km在SIMD上的数量a和b以及性能影响值pn和pm
3)将运行时间长的任务的性能影响值作为并行执行任务对的对性能影响值。选取具有最小的对性能影响值的任务对(Kn,Km),对该任务对,计算其在不同线程组划分形式下的多个并行性能值R,并将其中的最大值作为最大并行性能值。
4)将该任务对按照求得的最大并行性能值对应的组划分形式,放入GPU中运行,并根据上一实施方式的方法更新GPU使用状态。
5)根据GPU的状态类型,按照上一实施方式的方法在另外一种类型中寻找匹配任务。
同样,若某个任务结束运行,重新计算GPU的状态。对于每个GPU的状态,储存为一张表,以方便状态更新。
选择具有最大并行性能值的多个任务,并以对应该多个任务最大并行性能值的线程组划分形式在GPU中执行该多个任务,能够最大程度地减小多个任务在并行执行时对GPU上功能部件的使用冲突。
本发明的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本发明是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(Programmable ArrayLogic,简称“PAL”)、随机存取存储器(Random Access Memory,简称“RAM”)、可编程只读存储器(Programmable Read Only Memory,简称“PROM”)、只读存储器(Read-Only Memory,简称“ROM”)、电可擦除可编程只读存储器(Electrically Erasable Programmable ROM,简称“EEPROM”)、磁盘、光盘、数字通用光盘(Digital Versatile Disc,简称“DVD”)等等。
本发明第五实施方式涉及一种任务处理装置。图4是该评估装置的结构示意图。具体地,如图4所示,包括:
接收单元,用于接收多个需要在图形处理器上执行的任务;
选择单元,用于根据多个任务中不同的N个任务之间的并行性能值,从多个任务中选择N个任务在图形处理器上并行执行,并行性能值用于指示N个任务在图形处理器上并行执行的性能,N为大于1的自然数;
执行单元,用于根据图形处理器的状态和每一个未被执行任务与图形处理器上正在执行的任务之间的并行性能值,从未被执行任务中选择一个满足预设条件的任务在图形处理器上执行;
更新单元,用于在图形处理器上执行完一个任务之后,更新图形处理器的状态。
此外,为了提高任务对GPU资源的使用率,在一实施例中,该任务处理装置还包括分类单元,用于根据多个任务对图形处理器的资源占用,将多个任务分为存储型任务和计算型任务;并且,选择单元从存储型任务和计算型任务中分别选择至少一个任务,在图形处理器上运行并行执行。
通过分析不同任务在GPU上的并发执行性能,能够动态调整任务的执行对GPU资源的占用情况,从而实时有效地提高GPU资源的利用率和计算性能。
第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
本发明第六实施方式涉及一种任务处理装置。
第六实施方式在第五实施方式的基础上进行了改进,主要改进之处在于:对多个需要在GPU上执行的任务进行线程组划分,并将选择出的N个任务在GPU上以划分后的线程组形式运行,从而通过减少并行执行时各任务中线程组的数目来减少对相同功能部件的使用冲突,以提高对GPU上各资源的使用率和计算性能。
具体地,上述多个任务中每个任务有多种线程组划分形式,线程组划分形式用于指示每个任务在图形处理器上运行时的方式;根据N个任务中每个任务中线程组的划分形式不同,N个任务对应多个并行性能值,其中,多个并行性能值中的每一个并行性能值对应N个任务的一种线程组划分组合。
此外,可以理解,可以通过特征参数表征每个任务在各线程组划分形式下的执行性能。即,每一个任务的一种线程组划分形式对应一个特征参数,特征参数用于表征每一个任务按照线程组划分形式,在图形处理器上单独执行时的性能。特征参数可以包括任务的单独执行时间、任务单独执行时对计算模块上各功能部件的占用率和占用每个功能部件时单个线程的指令数。此外,特征参数也可以包括其他表征任务对GPU资源占用情况的参数,在此不做限制。
由于在该实施方式中,每个任务有多个线程组划分形式,因此,N个任务中每个任务的线程组划分形式不同,其可具有多个线程组划分组合,从而对应有多个并行性能值。在一实例中,该任务处理装置还包括:确定单元,用于根据N个任务中每一个任务对应的特征参数,确定N个任务对应的多个并行性能值。
由于对应不同的线程组划分形式,N个任务对应多个并行性能值,为了尽可能地提高N个任务并行执行时对GPU资源的使用率,上述确定单元根据多个任务中每个任务的特征参数,从多个任务中选择具有最大并行性能值的N个任务在图形处理器上执行。
第二实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。
本发明第七实施方式涉及一种任务处理装置。
第七实施方式列出了第六实施方式中,执行单元从多个任务中选择具有最大并行性能值的N个任务的具体方式。该实施方式的其他内容与第六实施方式相同,在此不再赘述。
具体地,执行单元选择具有最大并行性能值的N个任务的方式如下:
对于与N个任务的多个线程组划分组合对应的多个并行性能值,从中选择最大值作为N个任务的并行性能值,并从多个N个任务的并行性能值中选择最大值作为最大并行性能值;并且
执行单元将与该最大并行性能值对应的N个任务在图形处理器中并行执行时,N个任务在图形处理器上的运行方式由与最大并行性能值对应的线程组划分组合确定。
选择具有最大并行性能值的多个任务,并以对应该多个任务最大并行性能值的线程组划分形式在GPU中执行该多个任务,能够最大程度地减小多个任务在并行执行时对GPU上功能部件的使用冲突。
第三实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第三实施方式互相配合实施。第三实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第三实施方式中。
本发明第八实施方式涉及一种任务处理装置。
第八实施方式列出了第六实施方式中,执行单元从多个任务中选择具有最大并行性能值的N个任务的具体方式。该实施方式的其他内容与第六实施方式相同,在此不再赘述。
具体地,执行单元选择具有最大并行性能值的N个任务的方式如下:
从未进行线程组划分的多个任务中选择具有最大的并行性能值的N个任务,对于对应选择出的N个任务的多个线程组划分组合的多个并行性能值,从中选择最大值作为最大并行性能值;并且,
执行单元将与该最大并行性能值对应的N个任务在图形处理器中并行执行时,N个任务在图形处理器上的运行方式由与最大并行性能值对应的线程组划分组合确定。
第四实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第四实施方式互相配合实施。第四实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第四实施方式中。
本发明的第九实施方式公开了一种非易失性存储介质,该非易失性存储介质具有存储在其中的指令,当指令被执行时,使得处理器执行任务处理方法,指令包括:
控制任务处理装置接收多个需要在图形处理器上执行的任务;
控制任务处理装置根据多个任务中不同的N个任务之间的并行性能值,从多个任务中选择N个任务在图形处理器上并行执行,并行性能值用于指示N个任务在图形处理器上并行执行的性能,N为大于1的自然数;
控制任务处理装置根据图形处理器的状态和每一个未被执行任务与图形处理器上正在执行的任务之间的并行性能值,从未被执行任务中选择一个满足预设条件的任务在图形处理器上执行。
本发明的第十实施方式公开了一种设备,包括存储有计算机可执行指令的存储器和处理器,处理器被配置为执行指令以实施第一实施方式中的步骤101至步骤103。
此外,上述任务处理装置均可基于计算机的硬件结构来实现。图5是根据本发明一实例方式的任务处理装置的硬件结构示意图。
如图5所示,任务处理装置包括处理器501,处理器501与系统内存502连接。处理器501可以为中央处理器(CPU),图像处理器(英文全称:graphics processing unit,缩写:GPU),数字信号处理器(英文全称:digital signal processor,缩写:DSP)或其他形式的集成电路。
总线505用于在任务处理装置的各部件之间传递信息,总线505可以使用有线的连接方式或采用无线的通讯方式,本申请并不对此进行限定。总线505还可以连接有辅助存储器(英文:secondary storage)504和通信接口503。
辅助存储器504的存储介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如光盘)、或者半导体介质(例如固态硬盘(英文全称:solid state disk,缩写:SSD))等。
通信接口503使用例如但不限于收发器一类的收发装置,来实现与其他设备或通信网络之间的通信,通信接口503可以通过有线或者无线的形式与通信网络互连。该通信网络可以是因特网,内联网(英文:intranet),局域网(英文全称:local area network,缩写:LAN),广域网络(英文全称:wide area network,缩写:WAN),存储区域网络(英文全称:storage area network,缩写:SAN)等,或者以上网络的任意组合。
本发明实施方式中的一些特征(如任务处理装置中各单元的指令)可以由处理器501执行系统内存502中的软件代码来完成/支持。系统内存502可以包括一些软件,例如,操作系统(例如Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS或嵌入式操作系统(例如Vxworks)),应用程序和数据处理模块。
工作状态下,用于实现本发明实施方式提供的任务处理装置中各单元的指令的程序代码保存在系统内存502中,并由处理器501执行。
需要说明的是,本发明各设备实施方式中提到的各单元都是逻辑单元,在物理上,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现,这些逻辑单元本身的物理实现方式并不是最重要的,这些逻辑单元所实现的功能的组合才是解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明上述各设备实施方式并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,这并不表明上述设备实施方式并不存在其它的单元。
需要说明的是,在本专利的权利要求和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

Claims (20)

1.一种任务处理方法,其特征在于,所述方法包括:
任务处理装置接收多个需要在图形处理器上执行的任务;
所述任务处理装置根据多个任务中不同的N个任务之间的并行性能值,从所述多个任务中选择N个任务在图形处理器上并行执行,所述并行性能值用于指示N个任务在所述图形处理器上并行执行的性能,所述N为大于1的自然数;
所述任务处理装置根据所述图形处理器的状态和每一个未被执行任务与所述图形处理器上正在执行的任务之间的并行性能值,从未被执行任务中选择一个满足预设条件的任务在所述图形处理器上执行。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述任务处理装置在所述图形处理器上执行完一个任务之后,更新所述图形处理器的状态。
3.根据权利要求1或2所述的方法,其特征在于,所述多个任务中每个任务有多种线程组划分形式,所述线程组划分形式用于指示每个任务在图形处理器上运行时的方式;
根据所述N个任务中每个任务中线程组的划分形式不同,所述N个任务对应多个并行性能值,其中,所述多个并行性能值中的每一个并行性能值对应所述N个任务的一种线程组划分组合。
4.根据权利要求3所述的方法,其特征在于,每一个任务的一种线程组划分形式对应一个特征参数,所述特征参数用于表征每一个任务按照所述线程组划分形式,在所述图形处理器上单独执行时的性能;
所述方法还包括:所述任务处理装置根据所述N个任务中每一个任务对应的特征参数,确定所述N个任务对应的多个并行性能值。
5.根据权利要求4所述的方法,其特征在于,所述特征参数包括所述任务的单独执行时间、所述任务单独执行时对计算模块上各功能部件的占用率和占用每个功能部件时单个线程的指令数。
6.根据权利要求4或5所述的方法,其特征在于,所述任务处理装置从所述多个任务中选择N个任务在图形处理器上并行执行包括:
所述任务处理装置根据每个任务的所述特征参数,从所述多个任务中选择具有最大并行性能值的N个任务在图形处理器上执行。
7.根据权利要求6所述的方法,其特征在于,所述具有最大并行性能值的N个任务的选择方式如下:
对于与所述N个任务的多个线程组划分组合对应的多个并行性能值,从中选择最大值作为所述N个任务的并行性能值,并从多个所述N个任务的并行性能值中选择最大值作为所述最大并行性能值;并且
所述任务处理装置将与该最大并行性能值对应的N个任务在所述图形处理器中并行执行时,所述N个任务在图形处理器上的运行方式由与所述最大并行性能值对应的线程组划分组合确定。
8.根据权利要求6所述的方法,其特征在于,所述具有最大并行性能值的N个任务的选择方式如下:
从未进行线程组划分的所述多个任务中选择具有最大的并行性能值的N个任务,对于对应选择出的所述N个任务的多个线程组划分组合的多个并行性能值,从中选择最大值作为所述最大并行性能值;并且,
所述任务处理装置将与该最大并行性能值对应的N个任务在所述图形处理器中并行执行时,所述N个任务在图形处理器上的运行方式由与所述最大并行性能值对应的线程组划分组合确定。
9.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:所述任务处理装置根据所述多个任务对所述图形处理器的资源占用,将所述多个任务分为存储型任务和计算型任务;
所述任务处理装置从所述多个任务中选择两个任务在图形处理器上执行包括:
所述任务处理装置从所述存储型任务和所述计算型任务中分别选择至少一个任务,在所述图形处理器上并行执行。
10.一种任务处理装置,其特征在于,包括:
接收单元,用于接收多个需要在图形处理器上执行的任务;
选择单元,用于根据多个任务中不同的N个任务之间的并行性能值,从所述多个任务中选择N个任务在图形处理器上并行执行,所述并行性能值用于指示N个任务在所述图形处理器上并行执行的性能,所述N为大于1的自然数;
执行单元,用于根据所述图形处理器的状态和每一个未被执行任务与所述图形处理器上正在执行的任务之间的并行性能值,从未被执行任务中选择一个满足预设条件的任务在所述图形处理器上执行。
11.根据权利要求10所述的装置,其特征在于,还包括以下单元:
更新单元,用于在所述图形处理器上执行完一个任务之后,更新所述图形处理器的状态。
12.根据权利要求10或11所述的装置,其特征在于,所述多个任务中每个任务有多种线程组划分形式,所述线程组划分形式用于指示每个任务在图形处理器上运行时的方式;
根据所述N个任务中每个任务中线程组的划分形式不同,所述N个任务对应多个并行性能值,其中,所述多个并行性能值中的每一个并行性能值对应所述N个任务的一种线程组划分组合。
13.根据权利要求12所述的装置,其特征在于,每一个任务的一种线程组划分形式对应一个特征参数,所述特征参数用于表征每一个任务按照所述线程组划分形式,在所述图形处理器上单独执行时的性能;
所述装置还包括:确定单元,用于根据所述N个任务中每一个任务对应的特征参数,确定所述N个任务对应的多个并行性能值。
14.根据权利要求13所述的装置,其特征在于,所述特征参数包括所述任务的单独执行时间、所述任务单独执行时对计算模块上各功能部件的占用率和占用每个功能部件时单个线程的指令数。
15.根据权利要求13或14所述的装置,其特征在于,所述执行单元根据每个任务的所述特征参数,从所述多个任务中选择具有最大并行性能值的N个任务在图形处理器上执行。
16.根据权利要求15所述的装置,其特征在于,所述执行单元选择具有最大并行性能值的N个任务的方式如下:
对于与所述N个任务的多个线程组划分组合对应的多个并行性能值,从中选择最大值作为所述N个任务的并行性能值,并从多个所述N个任务的并行性能值中选择最大值作为所述最大并行性能值;并且
所述执行单元将与该最大并行性能值对应的N个任务在所述图形处理器中并行执行时,所述N个任务在图形处理器上的运行方式由与所述最大并行性能值对应的线程组划分组合确定。
17.根据权利要求15所述的装置,其特征在于,所述执行单元选择具有最大并行性能值的N个任务的方式如下:
从未进行线程组划分的所述多个任务中选择具有最大的并行性能值的N个任务,对于对应选择出的所述N个任务的多个线程组划分组合的多个并行性能值,从中选择最大值作为所述最大并行性能值;并且,
所述执行单元将与该最大并行性能值对应的N个任务在所述图形处理器中并行执行时,所述N个任务在图形处理器上的运行方式由与所述最大并行性能值对应的线程组划分组合确定。
18.根据权利要求10或11所述的装置,其特征在于,所述装置还包括:
分类单元,用于根据所述多个任务对所述图形处理器的资源占用,将所述多个任务分为存储型任务和计算型任务;
所述选择单元从所述存储型任务和所述计算型任务中分别选择至少一个任务,在所述图形处理器上运行并行执行。
19.一种非易失性存储介质,其特征在于,该非易失性存储介质具有存储在其中的指令,当所述指令被执行时,使得处理器执行任务处理方法,所述指令包括:
控制任务处理装置接收多个需要在图形处理器上执行的任务;
控制所述任务处理装置根据多个任务中不同的N个任务之间的并行性能值,从所述多个任务中选择N个任务在图形处理器上并行执行,所述并行性能值用于指示N个任务在所述图形处理器上并行执行的性能,所述N为大于1的自然数;
控制所述任务处理装置根据所述图形处理器的状态和每一个未被执行任务与所述图形处理器上正在执行的任务之间的并行性能值,从未被执行任务中选择一个满足预设条件的任务在所述图形处理器上执行。
20.一种计算设备,其特征在于,包括存储有计算机可执行指令的存储器和处理器,所述处理器被配置为执行所述指令以实施任务处理方法,所述任务处理方法包括:
任务处理装置接收多个需要在图形处理器上执行的任务;
所述任务处理装置根据多个任务中不同的N个任务之间的并行性能值,从所述多个任务中选择N个任务在图形处理器上并行执行,所述并行性能值用于指示N个任务在所述图形处理器上并行执行的性能,所述N为大于1的自然数;
所述任务处理装置根据所述图形处理器的状态和每一个未被执行任务与所述图形处理器上正在执行的任务之间的并行性能值,从未被执行任务中选择一个满足预设条件的任务在所述图形处理器上执行。
CN201780055353.3A 2017-06-30 2017-06-30 任务处理方法、装置、介质及其设备 Active CN110088730B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/091281 WO2019000435A1 (zh) 2017-06-30 2017-06-30 任务处理方法、装置、介质及其设备

Publications (2)

Publication Number Publication Date
CN110088730A CN110088730A (zh) 2019-08-02
CN110088730B true CN110088730B (zh) 2021-05-18

Family

ID=64741972

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780055353.3A Active CN110088730B (zh) 2017-06-30 2017-06-30 任务处理方法、装置、介质及其设备

Country Status (2)

Country Link
CN (1) CN110088730B (zh)
WO (1) WO2019000435A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111736987B (zh) * 2020-05-29 2023-08-04 山东大学 一种基于gpu空间资源共享的任务调度方法
CN113407333B (zh) * 2020-12-18 2023-05-26 上海交通大学 Warp级别调度的任务调度方法、系统、GPU及设备
CN116414541B (zh) * 2023-05-26 2023-09-05 摩尔线程智能科技(北京)有限责任公司 兼容多种任务工作模式的任务执行方法和装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101488098A (zh) * 2009-02-13 2009-07-22 华中科技大学 基于虚拟计算技术的多核计算资源管理系统
CN102508704A (zh) * 2011-11-10 2012-06-20 上海市共进通信技术有限公司 计算机软件系统中实现任务分解和并行处理控制的方法
CN102708009A (zh) * 2012-04-19 2012-10-03 华为技术有限公司 一种基于cuda实现多任务共享gpu的方法
CN104580396A (zh) * 2014-12-19 2015-04-29 华为技术有限公司 一种任务调度方法、节点及系统
CN104714785A (zh) * 2015-03-31 2015-06-17 中芯睿智(北京)微电子科技有限公司 任务调度装置、方法及并行处理数据的设备
CN104866370A (zh) * 2015-05-06 2015-08-26 华中科技大学 一种云计算环境下面向并行应用的动态时间片调度方法及系统
CN105739951A (zh) * 2016-03-01 2016-07-06 浙江工业大学 一种基于gpu的l1最小化问题快速求解方法
CN106502782A (zh) * 2015-09-04 2017-03-15 联发科技股份有限公司 异构计算系统及其方法
CN106648546A (zh) * 2016-09-07 2017-05-10 北京大学 用于gpu寄存器分配和并行度管理的协同优化编译方法
US10185569B2 (en) * 2013-02-13 2019-01-22 Wisconsin Alumni Research Foundation Precise-restartable parallel execution of programs

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9898409B2 (en) * 2014-10-09 2018-02-20 The Regents Of The University Of Michigan Issue control for multithreaded processing
CN105279137A (zh) * 2015-10-21 2016-01-27 浪潮(北京)电子信息产业有限公司 一种面向gpu并行的三对角矩阵方程求解方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101488098A (zh) * 2009-02-13 2009-07-22 华中科技大学 基于虚拟计算技术的多核计算资源管理系统
CN102508704A (zh) * 2011-11-10 2012-06-20 上海市共进通信技术有限公司 计算机软件系统中实现任务分解和并行处理控制的方法
CN102708009A (zh) * 2012-04-19 2012-10-03 华为技术有限公司 一种基于cuda实现多任务共享gpu的方法
US10185569B2 (en) * 2013-02-13 2019-01-22 Wisconsin Alumni Research Foundation Precise-restartable parallel execution of programs
CN104580396A (zh) * 2014-12-19 2015-04-29 华为技术有限公司 一种任务调度方法、节点及系统
CN104714785A (zh) * 2015-03-31 2015-06-17 中芯睿智(北京)微电子科技有限公司 任务调度装置、方法及并行处理数据的设备
CN104866370A (zh) * 2015-05-06 2015-08-26 华中科技大学 一种云计算环境下面向并行应用的动态时间片调度方法及系统
CN106502782A (zh) * 2015-09-04 2017-03-15 联发科技股份有限公司 异构计算系统及其方法
CN105739951A (zh) * 2016-03-01 2016-07-06 浙江工业大学 一种基于gpu的l1最小化问题快速求解方法
CN106648546A (zh) * 2016-09-07 2017-05-10 北京大学 用于gpu寄存器分配和并行度管理的协同优化编译方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
An Algorithm for Assigning Tasks in Parallel Computing;Yang Rui 等;《2010 Third International Joint Conference on Computational Science and Optimization》;20100729;第360-363页 *
一种优化MapReduce系统能耗的任务分发算法;宋杰 等;《计算机学报》;20160229;第39卷(第2期);第323-336页 *

Also Published As

Publication number Publication date
CN110088730A (zh) 2019-08-02
WO2019000435A1 (zh) 2019-01-03

Similar Documents

Publication Publication Date Title
US8620932B2 (en) Parallel sorting apparatus, method, and program
JP2012511204A (ja) リソースを最適化するためのタスク再編成方法
CN110231986B (zh) 基于多fpga的动态可重配置的多任务调度和放置方法
CN110088730B (zh) 任务处理方法、装置、介质及其设备
CN111290852A (zh) 调度任务图操作的方法、系统以及计算机可读介质
CN111026519B (zh) 基于分布式的任务优先级调度方法和系统及存储介质
CN108139898B (zh) 数据处理图编译
EP3908920B1 (en) Optimizing hardware fifo instructions
US8458136B2 (en) Scheduling highly parallel jobs having global interdependencies
CN108427602B (zh) 一种分布式计算任务的协同调度方法及装置
CN112231081B (zh) 云环境下基于pso-ahp的单调速率资源调度方法及系统
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
CN114579284A (zh) 任务调度方法及装置
Marchal et al. Malleable task-graph scheduling with a practical speed-up model
Mirsoleimani et al. A parallel memetic algorithm on GPU to solve the task scheduling problem in heterogeneous environments
CN115098240B (zh) 一种多处理器应用调度方法和系统及存储介质
CN113222099A (zh) 卷积运算方法及芯片
CN113222136A (zh) 卷积运算方法及芯片
CN107589985B (zh) 一种面向大数据平台的两阶段作业调度方法及系统
JP2020173622A (ja) 並列タスクスケジューリング方法
CN115686795A (zh) 一种基于dag的启发式任务调度方法
Ahmad et al. Performance analysis of list scheduling algorithms by random synthetic DAGs
Deniziak et al. Synthesis of power aware adaptive schedulers for embedded systems using developmental genetic programming
Souissi et al. Optimization of matching and scheduling on heterogeneous CPU/FPGA architectures
Kelefouras et al. Workflow simulation aware and multi-threading effective task scheduling for heterogeneous computing

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