GPU任务调度方法及系统技术方案

技术编号:16128536 阅读:93 留言:0更新日期:2017-09-01 20:42
本发明专利技术提供一种GPU任务调度方法及系统,所述系统包括:应用分析模块,用于获取应用程序的各个kernel的指令数;动态任务调度模块,用于判断当前运行的kernel数量是否达到预设的上限值,若否,则从被抢占的kernel以及新到达的kernel中挑选与当前运行的kernel组合形成kernel组合优先级最高的kernel,若是,则继续判断被抢占的kernel和新到达的kernel中是否存在与当前运行kernel进行组合得到更高优先级的kernel组合,若是,则继续判断抢占程序后的GPU性能提升是否大于抢占过程所占用的GPU开销,若是,则进行抢占。本发明专利技术有效降低延迟,提高资源利用率,提高GPU的性能。

GPU task scheduling method and system

The invention provides a system and a GPU task scheduling method, the system includes: application analysis module, the number of instructions for each kernel gets the application; dynamic task scheduling module is used to judge whether the number of currently running kernel reaches a preset upper limit, if not, from the preempted kernel and kernel new arrival in the selection of kernel combined with the highest priority kernel, and is currently running kernel if, then continue to determine the combination of higher priority kernel combination, and is currently running kernel if there are preempted kernel and the newly arrived kernel if, then continue to determine whether the process is greater than the preemption of the GPU occupied by the cost, enhance the the performance of GPU process to seize after if, to seize the. The invention effectively reduces the delay, improves the utilization ratio of resources and improves the performance of GPU.

【技术实现步骤摘要】
GPU任务调度方法及系统
本专利技术涉及处理器
,特别是涉及GPU
,具体为一种GPU任务调度方法及系统。
技术介绍
随着互联网用户的快速增长,数据量的急剧膨胀,数据中心对计算的需求也在迅猛上涨。诸如深度学习在线预测、视频转码以及图片压缩解压缩等各类新型应用的出现对计算的需求已远远超出了传统CPU处理器的能力所及。GPU等有别于CPU的新型处理器的出现为数据中心带来了巨大的体系结构变革。传统的高性能计算集群通过MPI等方式作为主要通信方式,利用队列系统让每个任务独占式地享用集群中的资源。相对于高性能计算集群中的独占式访问,数据中心需要同时为多个用户提供服务。因此为了提高数据中心的利用率,用户往往需要共享数据中心中的计算资源。另外,在实际环境中,不同的用户会有不同的应用请求服务,且不同的服务请求到达的时间也各不相同,在此情况下,如何有效地解决资源的竞争和共享成为了提高数据中心资源的利用率的关键。动态任务调度就是最常见的共享计算资源的解决方案。对于多任务共享CPU以及CPU的任务调度,研究人员已经进行了大量的研究。而对于GPU,由于其产生之初便是为了高性能计算的独占式服务而设本文档来自技高网...
GPU任务调度方法及系统

【技术保护点】
一种GPU任务调度系统,其特征在于,所述任务调度系统包括:应用分析模块,用于接收用户的应用程序请求,分析应用程序,根据所述应用程序的类型和输入数据集的大小分析获取所述应用程序的各个kernel的指令数;动态任务调度模块,包括:动态检测单元,用于动态检测、接收用户的应用程序请求并将接收的用户的应用程序请求发送至所述应用分析模块;数量查询单元,用于从运行时系统查询当前运行的kernel数量;处理单元,用于判断当前运行的kernel数量是否达到预设的上限值,若否,则从被抢占的kernel以及新到达的kernel中挑选与当前运的kernel组合形成kernel组合优先级最高的kernel并将挑选的ke...

【技术特征摘要】
1.一种GPU任务调度系统,其特征在于,所述任务调度系统包括:应用分析模块,用于接收用户的应用程序请求,分析应用程序,根据所述应用程序的类型和输入数据集的大小分析获取所述应用程序的各个kernel的指令数;动态任务调度模块,包括:动态检测单元,用于动态检测、接收用户的应用程序请求并将接收的用户的应用程序请求发送至所述应用分析模块;数量查询单元,用于从运行时系统查询当前运行的kernel数量;处理单元,用于判断当前运行的kernel数量是否达到预设的上限值,若否,则从被抢占的kernel以及新到达的kernel中挑选与当前运的kernel组合形成kernel组合优先级最高的kernel并将挑选的kernel发射至运行时系统,若是,则继续判断被抢占的kernel和新到达的kernel中是否存在与当前运行kernel进行组合得到更高优先级的kernel组合,若否,则保持当前运行的kernel状态,若是,则继续判断抢占程序后的GPU性能提升是否大于抢占过程所占用的GPU开销,若是,则进行抢占,若否,则保持当前运行的kernel状态。2.根据权利要求1所述的GPU任务调度系统,其特征在于,被抢占的kernel的优先级高于新到达的kernel的优先级,使得GPU性能越好的kernel组合的优先级越高。3.根据权利要求1所述的GPU任务调度系统,其特征在于,通过预设的归一化ipc衡量GPU性能,归一化ipc的计算公式为:其中,norm_ipc表示为归一化ipc,ipcshare表示为kernel与其他kernel共享GPU时GPU表现出的ipc,ipcalone表示为kernel独占GPU时GPU表现出的ipc。4.根据权利要求3所述的GPU任务调度系统,其特征在于,抢占程序后的GPU性能提升根据抢占前归一化ipc和抢占后归一化ipc的对比获取,其中:抢占前归一化ipc为:抢占后归一化ipc为:preempt_cycle=(0.09526×miss_rate+0.01633)×(reg+smem)×TB;其中,normalized_ipci表示为第i个kernel的指令数,running1表示为正在运行的第一个kernel,running2表示正在运行的第二个kernel,rest_cycle表示为正在运行的两个kernel还能一起运行的时钟周期数,rest_instrunning1表示为正在运行的第一个kernel剩余的指令数,ipcrunning1表示为正在运行的第一个kernel所表现出的ipc,rest_instrunning2表示为正在运行的第二个kernel剩余的指令数,ipcrunning2表示为正在运行的第二个kernel所表现出的ipc,norm_ipci表示为第i个kernel所表现出的归一化ipc,preempt_cycle表示为抢占过程所持续的时钟周期数,miss_rate表示为未被抢占的kernel发生高速缓存缺失的频率,reg表示为被抢占的kernel中每个线程块占用寄存器的字节数,smem表示为被抢占的kernel中每个线程块占用共享内存的字节数,TB表示为被抢占的kernel中线程块的数量。5.根据权利要求4所述的GPU任务调度系统,其特征在于,抢占过程所占用的GPU开销通过抢占过程中归一化ipc衡量,所述抢占过程中归一化ipc为:norm_ipcrunning1×decay_rate×preempt_cycle;其中,norm_ipcrunning1表示为未被抢占kernel所表现出的归一化ipc,decay_rate表示为未被抢占的kernel由于抢占过程而导致的ipc衰减率,preempt_cycle表示为抢占过程所持续的时钟周期数,kernel∈memory_intensive表示为未被抢占的kernel属于内存密集型kernel,kernel∈compute_intensive表示为未被抢占的kernel属于计算密集型...

【专利技术属性】
技术研发人员:过敏意金思惠子王振宁陈全徐莉婷
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1