CN107329818A - 一种任务调度处理方法及装置 - Google Patents

一种任务调度处理方法及装置 Download PDF

Info

Publication number
CN107329818A
CN107329818A CN201710532362.9A CN201710532362A CN107329818A CN 107329818 A CN107329818 A CN 107329818A CN 201710532362 A CN201710532362 A CN 201710532362A CN 107329818 A CN107329818 A CN 107329818A
Authority
CN
China
Prior art keywords
task
subtask
execution function
scheduling
shared drive
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
Application number
CN201710532362.9A
Other languages
English (en)
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201710532362.9A priority Critical patent/CN107329818A/zh
Publication of CN107329818A publication Critical patent/CN107329818A/zh
Pending legal-status Critical Current

Links

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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

本发明提供一种任务调度处理方法及装置,上述方法包括以下步骤:在全局内存中建立映射表;其中,所述映射表包括任务名称、任务对应的调度单元、任务对应的执行函数;所述调度单元调用所述执行函数,对所述任务进行处理。通过在GPU上对多个任务进行科学管理调度,大大提高了任务执行效率。

Description

一种任务调度处理方法及装置
技术领域
本发明属于调度控制领域,尤其涉及一种任务调度处理方法及装置。
背景技术
CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题,它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎;由于GPU具有远远高于CPU的浮点运算能力和内存带宽,同时由于其高度的并行性,非常适合于大规模数据处理。
但是,目前在CPU上进行任务处理,且写入到全局内存global memory的数据数量很大(8192bit),大大影响了任务处理效率。
因此,迫切需要提供一种利用GPU性能,实现高效的任务调度处理方案来解决上述技术问题。
发明内容
本发明提供一种任务调度处理方法及装置,以解决上述问题。
本发明提供一种任务调度处理方法,包括以下步骤:在全局内存中建立映射表;其中,所述映射表包括任务名称、任务对应的调度单元、任务对应的执行函数;所述调度单元调用所述执行函数,对所述任务进行处理。
本发明提供一种任务调度处理装置,包括处理器,适于实现各指令;存储设备,适于存储多条指令,所述指令适于由所述处理器加载并执行;
在全局内存中建立映射表;其中,所述映射表包括任务名称、任务对应的调度单元、任务对应的执行函数;
所述调度单元调用所述执行函数,对所述任务进行处理。
本发明实施例提供的技术方案:在全局内存中建立映射表;其中,所述映射表包括任务名称、任务对应的调度单元、任务对应的执行函数;所述调度单元调用所述执行函数,对所述任务进行处理。通过在GPU上对多个任务进行科学管理调度,大大提高了任务执行效率。
本发明实施例提供的技术方案:将任务处理结果存储至共享内存;其中,所述全局内存、所述共享内存均位于图形处理器GPU。通过使用在GPU上的共享内存进行数据的操作,大大提高的处理速度,提高了任务执行效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1所示为本发明实施例1的任务调度处理方法流程图;
图2所示为本发明实施例2的任务调度处理装置结构图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1所示为本发明实施例1的任务调度处理方法流程图,包括以下步骤:
步骤101:在全局内存中建立映射表;其中,所述映射表包括任务名称、任务对应的调度单元、任务对应的执行函数;
步骤102:所述调度单元调用所述执行函数,对所述任务进行处理。
进一步地,将任务处理结果存储至共享内存;其中,所述全局内存、所述共享内存均位于图形处理器GPU。
进一步地,若所述任务被划分为多个子任务,则所述映射表还包括:子任务名称、子任务对应的调度子单元、子任务对应的执行函数;
所述调度子单元调用所述子任务对应的执行函数,对所述子任务进行处理。
其中,建立共享内存数组并将共享内存数组地址传给所述执行函数;
所述调度子单元调用所述子任务对应的执行函数,并将子任务处理结果传输至所述共享内存数组中选择的同一地址的共享内存。
进一步地,所述调度子单元调用所述子任务对应的执行函数,通过运行多个线程,对所述子任务进行处理。
其中,所述多个线程对应同一地址的共享内存。
下面进行详细说明:
本发明实施例充分利用众核并行计算形式对矩阵向量乘法进行加速,在全局内存GlobalMemory中建立映射表,并确定执行函数即Kernel函数,对于共享内存SharedMemory,采用静态分配的方式对多任务进行分配。
进一步地,在全局内存中建立映射表;其中,所述映射表包括任务名称、任务对应的调度单元、任务对应的执行函数。
若所述任务被划分为多个子任务,则所述映射表还包括:子任务名称、子任务对应的调度子单元、子任务对应的执行函数。
本发明实施例的实施,关键环节之一为:a)确定某个调度子单元Block执行哪个任务的哪个分块;b)任务在映射表中的排布要求满足约束条件的拓扑顺序,c)对于Block的维数不一致情况,按照较大维度选取,让其他较小的Block添加空线程补足,保证Block维数和维度的合理性。
另外,预先在Kernel开始的时候,申请一个足够大的Shared Memory数组,其大小至少应该等于每个任务所需要的Shared Memory用量的最大值;每个任务单独写成一个函数,将Shared Memory数组地址传给这个函数,函数中需要使用Shared Memory的时候,直接在这个数组中静态分配使用。
在CUDA架构下,显示芯片执行时的最小单位是线程thread;数个thread可以组成一个调度子单元block。一个block中的thread能存取同一块共享内存Shared Memory,而且可以快速进行同步的动作。
每一个block所能包含的thread数目是有限的。执行相同程序的block,可以组成grid。不同block中的thread无法存取同一个共享内存,因此无法直接互通或进行同步。因此,不同block中的thread能合作的程度是比较低的。不过,利用这个模式,可以让程序不用担心显示芯片实际上能同时执行的thread数目限制。
每个thread都有自己的一份register和local memory的空间。同一个block中的每个thread则有共享的一份share memory。此外,所有的thread(包括不同block的thread)都共享一份全局内存global memory、常量内存constant memory、和纹理内存texturememory。不同的grid则有各自的global memory、constant memory和texture memory。
最适合利用CUDA处理的问题,是可以大量并行化的问题,才能有效隐藏内存的延迟latency,并有效利用显示芯片上的大量执行单元。使用CUDA时,同时有数千个thread在执行是很正常的。因此,解决CUDA大量并行化的问题,可以使CUDA达到最好的效率。
利用_shared_声明的变量表示这是shared memory,是一个block中每个thread都共享的内存。它会使用在GPU上的内存,所以存取的速度相当快,不需要担心latency的问题。_syncthreads()是一个CUDA的内部函数,表示block中所有的thread都要同步到这个点,才能继续执行。在本发明实施例中,由于之后要把所有thread计算的结果进行加总,所以需要确定每个thread都已经把结果写到shared[]里面。
对于矩阵规模为10000的运算,修改后的CUDA程序在Tesla M40上执行需要的时间为0.316032ms,速度大于完全不在GPU上进行加总的版本,由于在CPU上进行加总的版本,写入到global memory的数据数量很大(8192bit),也对效率会有影响,因此,速度上明显优于CPU上的计算。
同时,对于采用cuBLAS库加速的矩阵向量乘运算结果,当矩阵规模为10000时,CUDA+cuBLSA(cublasSgemv)所需时间为1.651712ms,运行时间小于常规Shared Memory模式,大于改进后的CUDA Shared Memory,显示出了这个加速方法在计算速度上的优越性。
图2所示为本发明实施例2的任务调度处理装置结构图,包括处理器,适于实现各指令;存储设备,适于存储多条指令,所述指令适于由所述处理器加载并执行;
在全局内存中建立映射表;其中,所述映射表包括任务名称、任务对应的调度单元、任务对应的执行函数;
所述调度单元调用所述执行函数,对所述任务进行处理。
进一步地,将任务处理结果存储至共享内存。
进一步地,若所述任务被划分为多个子任务,则所述映射表还包括:子任务名称、子任务对应的调度子单元、子任务对应的执行函数;
所述调度子单元调用所述子任务对应的执行函数,对所述子任务进行处理。
进一步地,建立共享内存数组并将共享内存数组地址传给所述执行函数;
所述调度子单元调用所述子任务对应的执行函数,并将子任务处理结果传输至所述共享内存数组中选择的同一地址的共享内存。
本发明实施例提供的技术方案:在全局内存中建立映射表;其中,所述映射表包括任务名称、任务对应的调度单元、任务对应的执行函数;所述调度单元调用所述执行函数,对所述任务进行处理。通过在GPU上对多个任务进行科学管理调度,大大提高了任务执行效率。
本发明实施例提供的技术方案:将任务处理结果存储至共享内存;其中,所述全局内存、所述共享内存均位于图形处理器GPU。通过使用在GPU上的共享内存进行数据的操作,大大提高的处理速度,提高了任务执行效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种任务调度处理方法,其特征在于,包括以下步骤:
在全局内存中建立映射表;其中,所述映射表包括任务名称、任务对应的调度单元、任务对应的执行函数;
所述调度单元调用所述执行函数,对所述任务进行处理。
2.根据权利要求1所述的方法,其特征在于,将任务处理结果存储至共享内存;其中,所述全局内存、所述共享内存均位于图形处理器GPU。
3.根据权利要求1所述的方法,其特征在于,若所述任务被划分为多个子任务,则所述映射表还包括:子任务名称、子任务对应的调度子单元、子任务对应的执行函数;
所述调度子单元调用所述子任务对应的执行函数,对所述子任务进行处理。
4.根据权利要求3所述的方法,其特征在于,建立共享内存数组并将共享内存数组地址传给所述执行函数;
所述调度子单元调用所述子任务对应的执行函数,并将子任务处理结果传输至所述共享内存数组中选择的同一地址的共享内存。
5.根据权利要求3所述的方法,其特征在于,所述调度子单元调用所述子任务对应的执行函数,通过运行多个线程,对所述子任务进行处理。
6.根据权利要求5所述的方法,其特征在于,所述多个线程对应同一地址的共享内存。
7.一种任务调度处理装置,其特征在于,包括处理器,适于实现各指令;存储设备,适于存储多条指令,所述指令适于由所述处理器加载并执行;
在全局内存中建立映射表;其中,所述映射表包括任务名称、任务对应的调度单元、任务对应的执行函数;
所述调度单元调用所述执行函数,对所述任务进行处理。
8.根据权利要求7所述的装置,其特征在于,将任务处理结果存储至共享内存。
9.根据权利要求7所述的装置,其特征在于,若所述任务被划分为多个子任务,则所述映射表还包括:子任务名称、子任务对应的调度子单元、子任务对应的执行函数;
所述调度子单元调用所述子任务对应的执行函数,对所述子任务进行处理。
10.根据权利要求9所述的装置,其特征在于,建立共享内存数组并将共享内存数组地址传给所述执行函数;
所述调度子单元调用所述子任务对应的执行函数,并将子任务处理结果传输至所述共享内存数组中选择的同一地址的共享内存。
CN201710532362.9A 2017-07-03 2017-07-03 一种任务调度处理方法及装置 Pending CN107329818A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710532362.9A CN107329818A (zh) 2017-07-03 2017-07-03 一种任务调度处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710532362.9A CN107329818A (zh) 2017-07-03 2017-07-03 一种任务调度处理方法及装置

Publications (1)

Publication Number Publication Date
CN107329818A true CN107329818A (zh) 2017-11-07

Family

ID=60198859

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710532362.9A Pending CN107329818A (zh) 2017-07-03 2017-07-03 一种任务调度处理方法及装置

Country Status (1)

Country Link
CN (1) CN107329818A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108109104A (zh) * 2017-12-06 2018-06-01 中国航空工业集团公司西安航空计算技术研究所 一种面向统一染色架构gpu的三级任务调度电路
WO2020056620A1 (en) * 2018-09-19 2020-03-26 Intel Corporation Hybrid virtual gpu co-scheduling

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101556534A (zh) * 2009-04-21 2009-10-14 浪潮电子信息产业股份有限公司 一种众核结构的大规模数据并行计算方法
CN102708009A (zh) * 2012-04-19 2012-10-03 华为技术有限公司 一种基于cuda实现多任务共享gpu的方法
US8374242B1 (en) * 2008-12-23 2013-02-12 Elemental Technologies Inc. Video encoder using GPU
CN103414901A (zh) * 2013-08-26 2013-11-27 江苏新瑞峰信息科技有限公司 一种快速jpeg2000图像压缩系统
CN103761215A (zh) * 2014-01-15 2014-04-30 北京新松佳和电子系统股份有限公司 基于图形处理器的矩阵转置优化方法
CN106598688A (zh) * 2016-12-09 2017-04-26 曙光信息产业(北京)有限公司 一种深度学习汇编优化中的寄存器冲突避免方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8374242B1 (en) * 2008-12-23 2013-02-12 Elemental Technologies Inc. Video encoder using GPU
CN101556534A (zh) * 2009-04-21 2009-10-14 浪潮电子信息产业股份有限公司 一种众核结构的大规模数据并行计算方法
CN102708009A (zh) * 2012-04-19 2012-10-03 华为技术有限公司 一种基于cuda实现多任务共享gpu的方法
CN103414901A (zh) * 2013-08-26 2013-11-27 江苏新瑞峰信息科技有限公司 一种快速jpeg2000图像压缩系统
CN103761215A (zh) * 2014-01-15 2014-04-30 北京新松佳和电子系统股份有限公司 基于图形处理器的矩阵转置优化方法
CN106598688A (zh) * 2016-12-09 2017-04-26 曙光信息产业(北京)有限公司 一种深度学习汇编优化中的寄存器冲突避免方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
邵延飞: "基于GPU加速的三维扫描重建系统", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108109104A (zh) * 2017-12-06 2018-06-01 中国航空工业集团公司西安航空计算技术研究所 一种面向统一染色架构gpu的三级任务调度电路
CN108109104B (zh) * 2017-12-06 2021-02-09 中国航空工业集团公司西安航空计算技术研究所 一种面向统一染色架构gpu的三级任务调度电路
WO2020056620A1 (en) * 2018-09-19 2020-03-26 Intel Corporation Hybrid virtual gpu co-scheduling
US11900157B2 (en) 2018-09-19 2024-02-13 Intel Corporation Hybrid virtual GPU co-scheduling

Similar Documents

Publication Publication Date Title
CN105487838B (zh) 一种动态可重构处理器的任务级并行调度方法与系统
KR101759266B1 (ko) 프로세서들에 걸쳐 데이터-병렬 쓰레드들을 지닌 프로세싱 로직을 매핑하는 방법
US9146777B2 (en) Parallel processing with solidarity cells by proactively retrieving from a task pool a matching task for the solidarity cell to process
CN1983196B (zh) 用于将执行线程分组的系统和方法
CN103218208B (zh) 用于实施成形的存储器访问操作的系统和方法
US20120256922A1 (en) Multithreaded Processor and Method for Realizing Functions of Central Processing Unit and Graphics Processing Unit
CN103197916A (zh) 用于源操作数收集器高速缓存的方法和装置
CN103279445A (zh) 运算任务的计算方法及超算系统
US11163677B2 (en) Dynamically allocated thread-local storage
CN103207774A (zh) 用于解决线程发散的方法和系统
Elteir et al. Performance characterization and optimization of atomic operations on amd gpus
CN103176848A (zh) 计算工作分布参考计数器
CN104050032A (zh) 用于有条件的屏障和急迫的屏障的硬件调度的系统和方法
Navarro et al. Strategies for maximizing utilization on multi-CPU and multi-GPU heterogeneous architectures
CN110308982A (zh) 一种共享内存复用方法及装置
US9286114B2 (en) System and method for launching data parallel and task parallel application threads and graphics processing unit incorporating the same
He et al. Design and implementation of a parallel priority queue on many-core architectures
CN111078394A (zh) 一种gpu线程负载均衡方法与装置
WO2016024508A1 (ja) マルチプロセッサ装置
CN107329818A (zh) 一种任务调度处理方法及装置
CN103294449B (zh) 发散操作的预调度重演
US20110247018A1 (en) API For Launching Work On a Processor
CN114035847B (zh) 用于并行执行核心程序的方法和装置
CN115775199A (zh) 数据处理方法和装置、电子设备和计算机可读存储介质
Maier et al. Locality aware dag-scheduling for lu-decomposition

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20171107