The invention discloses a resource management method for fine-grained GPU mixed load, put forward a flow capacity of the multi processor abstraction model based on CapSM, CapSM as the basic unit of resource management; when the mixed load (including online and offline task task) sharing GPU resources, through the use of fine-grained management of different types the task of GPU resources, support task resource quota and resources online adjustment in sharing GPU resources at the same time, guarantee the service quality of online tasks. The invention is based on the type of task, the resource request and the current system of GPU resources to determine the final state for task allocation of resources can be used offline tasks to GPU resources in the resource is sufficient, when GPU lack of resources to dynamically adjust the offline tasks using the resources, priority to meet online task resource requirements, so in the mixed load running at the same time, can guarantee the performance of online tasks, and can make full use of GPU resources.
【技术实现步骤摘要】
一种针对混合负载的细粒度GPU资源管理方法
本专利技术涉及异构计算中的资源管理和任务调度领域,特别是涉及一种针对混合负载的细粒度GPU资源管理方法。
技术介绍
图形处理器(GraphicsProcessingUnit,以下简称GPU)以其强大的峰值计算能力,逐渐成为高性能计算、云计算和数据中心不可或缺的组成部分,利用GPU对关键业务进行加速正在被越来越多的机构和组织所采纳。为了提高GPU的利用率,基础设施提供商通常也会让多种不同类型的任务(在线任务和离线任务)共享GPU资源,即采用混合负载的运行方式。然而,当混合负载共享GPU时,由于多个任务会竞争GPU资源,将会对在线任务的性能产生严重干扰。其根本原因在于,当一个任务提交到GPU执行时,该任务只能在执行结束后才会释放其所占用的资源,如果离线任务占用GPU过多或者时间过长,将会导致在线任务不能及时获得足够的GPU资源进行处理,从而导致服务质量目标无法得到满足。近年来,为了解决混合负载在GPU上运行时的性能干扰问题,研究人员从多个方面展开研究,已有的研究成果主要来自以下几个方面:(1)基于硬件的方法当采用该方法时,需要对现有的GPU硬件结构进行修改,添加相应的控制部件。由于GPU厂商的保护,难以对GPU的硬件架构有一个完全详细的了解,更不可能在实际系统中对GPU的硬件进行修改。因此,基于硬件的方法都是在模拟器中实现,只在学术上具有研究价值,不具有现实的意义。(2)基于软件的方法当采用该方法时,不需要对现有的GPU硬件进行修改,只需要在软件层面对不同的应用进行控制,具有可操作性;因此,基于软件的方法具有现实意义 ...
【技术保护点】
一种针对混合负载的细粒度GPU资源管理方法,其特征在于,所述混合负载是将任务分为在线任务和离线任务,当在线任务和离线任务共享GPU资源时,使用一种基于容量的SM抽象模型作为资源管理的基本单元来细粒度管理不同类型任务对GPU资源的使用,支持任务资源配额和资源在线调整,在共享GPU资源的同时,保障在线任务的服务质量,包括以下步骤:(1)用户通过资源管理应用程序编程接口(Application Programming Interface,以下简称API)向GPU提交任务(如不特殊说明,任务包括在线任务和离线任务)时,设置任务的资源请求信息,如果任务是离线任务,则设置的是任务的资源上限,即配额,如果任务是在线任务,则设置的是任务的最低资源量,即预留量;(2)通过资源管理API解析出任务的提交信息,包括kernel函数、任务块数量、任务块大小以及任务的资源请求;(3)根据任务的kernel函数,以及任务块大小,计算一个GPU SM上能够容纳的活动线程块数量;(4)根据当前GPU上应用的运行状况,计算出GPU上剩余可用资源量;(5)如果当前GPU资源剩余量不少于步骤(2)获取的任务的资源请求,则执 ...
【技术特征摘要】
1.一种针对混合负载的细粒度GPU资源管理方法,其特征在于,所述混合负载是将任务分为在线任务和离线任务,当在线任务和离线任务共享GPU资源时,使用一种基于容量的SM抽象模型作为资源管理的基本单元来细粒度管理不同类型任务对GPU资源的使用,支持任务资源配额和资源在线调整,在共享GPU资源的同时,保障在线任务的服务质量,包括以下步骤:(1)用户通过资源管理应用程序编程接口(ApplicationProgrammingInterface,以下简称API)向GPU提交任务(如不特殊说明,任务包括在线任务和离线任务)时,设置任务的资源请求信息,如果任务是离线任务,则设置的是任务的资源上限,即配额,如果任务是在线任务,则设置的是任务的最低资源量,即预留量;(2)通过资源管理API解析出任务的提交信息,包括kernel函数、任务块数量、任务块大小以及任务的资源请求;(3)根据任务的kernel函数,以及任务块大小,计算一个GPUSM上能够容纳的活动线程块数量;(4)根据当前GPU上应用的运行状况,计算出GPU上剩余可用资源量;(5)如果当前GPU资源剩余量不少于步骤(2)获取的任务的资源请求,则执行步骤(6),否则,执行任务(8);(6)设置任务的资源配置为任务的资源请求;(7)根据任务的资源配置以及步骤(3)确定的活动线程块数量,计算任务提交到GPU运行时应创建的线程块数量以及每个线程块分配的任务块数量,然后执行步骤(11);(8)如果当前任务是离线任务,则执行步骤(9),如果是在线任务,则执行任务(10);(9)将当前GPU资源剩余量设为任务的资源配置,然后转到步骤(7)执行;(10)根据当前GPU资源剩余量,以及任务的资源请求,计算出资源差额,然后向当前GPU上运行的离线任务发送资源释放命令,使离线任务释放资源差额指定的资源量,然后转到步骤(6);(11)根据计算出的GPU任务的线程块数量,提交任务到GPU上,创建线程并开始运行;(12)如果任务在GPU上运行过程中接收到资源释放的命令,则执行步骤(13),否则执行步骤(14);(13)如果在GPU上运行的任务,接收到释放资源的命令,则释放指定范围的资源,如果被释放的资源上有任务块未执行,则将这些未执行的任务块重映射到剩余的资源上继续执行;(14)任务执行完成,退出GPU。2.根据权利要求1所述的一种针对混合负载的细粒度GPU资源管理方法,其特征在于:使用的资源管理基本单元是一种基于容量的SM抽象模型,以下简称CapSM,CapSM实现如下:(1-1)给定一个GPU,设定每个SM的容量为1个容量单位;给定一个kernel任务K,假设GPU上一个SM能够容纳任务K的处于活动状态的线程块数量为M;(1-2)依据M,将每个SM抽象为M个小分片,每个小分片的容量为1/M个容量单位,而且每个小分片只能容纳一个任务K的线程块;(1-3)将GPU的所有SM按照以上方法划分成多个小分片后,对于任意N个小分片,如果它们的容量和与一个物理SM等价,则认为这N个小分片组成一个CapSM;(1-4)对于任务K,任意M个小分片组成一个CapSM。3.根据权利要求2所述的一种针对混合负载的细粒度GPU资源管理方法,其特征在于:所述资源管理单元CapSM,(1-1)组成每个CapSM的M个小分片,可以来自同一个SM,也可以来自多个不同的SM;(1-2)每个小分片与一个线程块相对应,一个CapSM可以看作是一组线程块的集合,因此,在实现时,对CapSM的管理可以转换为是对线程块数量的管理;(1-3)基于容量的SM抽象模型CapSM不依赖于特定GPU架构和GPU并行编程语言,CapSM的概念可以很容易地应用到其他GPU架构和GPU并行编程语言。4.根据权利要求1所述的一种针对混合负载的细粒度GPU资源管理方法,其特征在于:需要对所述任务的原始kernel函数进行转换,使任务在GPU上运行的线程为持久线程,具体转换过程如下:(1-1)向原始kernel函数中插入循环控制结构,原始kernel函数体作为循环控制结构的循环体;(1-2)循环体通过遍历为每个持久线程分配的任务,依次执行每个任务,并将变量taskIdx设置为当前执行的任务所属任务块编号;(1-3)将原始kernel函数体中代表线程所属线程块索引的变量blockIdx改为代表当前所属任务块的变量taskIdx。5.根据权利要求1所述的一种针对混合负载的细粒度GPU资源管理方法,其特征在于:所述步骤(1)中,用户通过资源管理API向GPU提交任务时,使用的资源管理API提供如下两种任务提交方式:(1-1)通过资源配额的方式来运行任务,主要针对离线任务,限制离线任务使用的资源量,使用该方式提交任务时,需要提供资源配额量quota,要运行任务的kernel函数,任务的任务块数量TaskBlockNumber以及任务块大小TaskBlockSize即每个任务块中的线程数量;(1-2)通过资源预留的方式来运行任务,主要针对在线任务,使用该方式提交任务时,需要提供为该任务预留的资源量reservation,要运行任务的kernel函数,任务的任务块数量TaskBlockNumber,及任务块大小TaskBlockSize即每个任务块中的线程数量。6.根据权利要求1所述的一种针对混合负载的细粒度GPU资源管...
【专利技术属性】
技术研发人员:杨海龙,禹超,白跃彬,栾钟治,顾育豪,
申请(专利权)人:北京航空航天大学,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。