The invention discloses a method for guaranteeing the quality of service of GPU based on the exclusive and reserved core of streaming multiprocessor, which includes: 1) reasonably partitioning the streaming multiprocessor (SM) according to the applied QoS index at the beginning; 2) dynamically adjusting the number of SMs of each application periodically through effective decision-making at the run time, thereby guaranteeing the applied QoS index; In the process of dynamic adjustment, the types of applications (memory-intensive or computational-intensive) can be identified through periodic data collection; 4) GPU energy efficiency or throughput can be improved based on application type information. The invention fully taps the performance potential of GPU concurrent core, and can effectively achieve the quality of service index, while maximizing the balance of GPU energy efficiency and throughput: for computing-intensive applications, fully enhance the thread-level concurrency of GPU; for memory-intensive applications, fully reduce the energy consumption of GPU.
【技术实现步骤摘要】
一种基于流多处理器内核独占和预留的GPU服务质量保障方法
本专利技术涉及并发内核执行、片上资源管理和线程块调度等领域,特别是涉及一种基于流多处理器内核独占和预留的GPU服务质量保障方法。
技术介绍
在高性能计算领域,图形处理器(GraphicsProcessingUnits,以下简称为GPU)越来越多地被用于通用计算的加速。GPU通过大量地利用线程级并行(ThreadLevelParallelism,以下简称为TLP)来实现高计算能力。流多处理器(StreamingMultiprocessors,以下简称为SM)负责执行GPU的计算任务,SM中包含很多计算核心(ComputeCores)和资源,如寄存器(Registers)、共享内存(SharedMemory)和L1高速缓存(L1Cache)。SM间通过互连网络(InterconnectNetwork)分享设备内存(DeviceMemory)。当多个应用共享GPU时,GPU支持并发内核,内核管理器(KernelManagementUnit,以下简称为KMU)会分配内核到内核分发器(KernelDistributorUnit,以下简称为KDU),KDU中的内核以先到先服务(first-come-first-serve,以下简称为FCFS)的顺序执行。但当多个应用并发执行时,线程块调度器会等待前一个内核中的线程块调度完成后再调度下一个内核,且线程块调度器会依据轮询(Round-Robin)策略将线程块均匀调度到所有SM中。随着应用数量的井喷式增长,当多个并发应用共享GPU时,如何更好地提高吞吐量和能效变得尤为 ...
【技术保护点】
1.一种基于流多处理器内核独占和预留的GPU服务质量保障方法,其特征在于,包括以下步骤:步骤1:多个GPU应用在CPU端启动,由用户指定需要保证服务质量QoS(Quality of Service)的应用和QoS指标;应用的并行部分即GPU内核通过运行时API加载到GPU(GPU应用与GPU内核是一对多的关系,一个GPU应用对应一个或多个GPU内核),GPU内核根据所属应用标识分为延迟敏感型内核和非延迟敏感型内核;步骤2:每个GPU内核由软件工作队列SWQ(Software Work Queue)ID所标识,并被推入位于网格管理器GMU(Grid Management Unit)的内核等待池(Pending Kernel Pool);步骤3:具有相同SWQ ID的GPU内核将映射到同一个硬件工作队列HWQ(Hardware Work Queue)中;位于每个HWQ头部的GPU内核由所属应用的QoS指标确定初始的流多处理器SM(Streaming Multiprocessor)分配方案,基于分配方案SM有三种状态,分别为:由延迟敏感型内核占用、由非延迟敏感型内核占用、关闭并预留;步骤4: ...
【技术特征摘要】
1.一种基于流多处理器内核独占和预留的GPU服务质量保障方法,其特征在于,包括以下步骤:步骤1:多个GPU应用在CPU端启动,由用户指定需要保证服务质量QoS(QualityofService)的应用和QoS指标;应用的并行部分即GPU内核通过运行时API加载到GPU(GPU应用与GPU内核是一对多的关系,一个GPU应用对应一个或多个GPU内核),GPU内核根据所属应用标识分为延迟敏感型内核和非延迟敏感型内核;步骤2:每个GPU内核由软件工作队列SWQ(SoftwareWorkQueue)ID所标识,并被推入位于网格管理器GMU(GridManagementUnit)的内核等待池(PendingKernelPool);步骤3:具有相同SWQID的GPU内核将映射到同一个硬件工作队列HWQ(HardwareWorkQueue)中;位于每个HWQ头部的GPU内核由所属应用的QoS指标确定初始的流多处理器SM(StreamingMultiprocessor)分配方案,基于分配方案SM有三种状态,分别为:由延迟敏感型内核占用、由非延迟敏感型内核占用、关闭并预留;步骤4:确定SM分配方案后,每个HWQ头部的GPU内核中的线程块ThreadBlock通过线程块调度器分配给SM;步骤5:GPU内核的执行以时间长度Tepoch为单位,在每个Tepoch结束后,收集各GPU内核的每周期执行指令数IPC(InstructionsPerCycle),所述IPC包括GPU内核从最初执行开始到当前Tepoch结束的总IPC,即IPCtotal和当前Tepoch的IPC,即IPCepoch;步骤6:获得IPC信息后,由决策算法确定下一个Tepoch期间各GPU内核的SM分配方案,SM分配方案与GPU内核类型相关,包括计算密集型CI(Compute-intensive)或内存密集型MI(Memory-intensive);步骤7:由SM分配方案确定当前为止对于非延迟敏感型内核的最佳SM分配个数SMoptimal,当分配为SMoptimal的SM时,非延迟敏感型内核的性能和能耗达到理想平衡,从而最大限度地提高吞吐量或能效;步骤8:获得SM分配方案后,再由决策算法确定需要换入Swap-in和换出Swap-out的SM编号,即换出的SM在下一个Tepoch时内不再由原GPU核占用,而换入的SM在下一个Tepoch时内由目标GPU内核占用;步骤9:当某个SM被标记为换入或换出时,有两种情况:一为该SM为预留状态,此时直接换入,由目标GPU内核所占用;二为该SM已被其它GPU内核所占用,此时要等待SM中所有线程块执行结束,再执行换出和换入操作;步骤10:所有SM换入和换出完成后,再开始计时下一次Tepoch,以确保下一次收集数据的准确性;步骤11:若每个GPU应用只执行一次GPU内核,则重复步骤5至步骤10直到所有GPU内核执行结束;若某个应用执行多次GPU内核,则下一次GPU内核的初始SM分配编号与上一次完全相同,再重复步骤5至步骤10,直到当前分发的GPU内核执行结束;步骤12:重复步骤11直到所有GPU应用执行结束。2.根据权利要求1所述的一种基于流多处理器内核独占和预留的GPU服务质量保障方法,其特征在于:所述步骤1中,由用户指定需要保证服务质量的应用和QoS指标实现为:(1)需要保证服务质量的应用表示为IsQoS,具体如下:(1-1)如果为延迟敏感型应用,则对于该延迟敏感型应用的所有GPU内核,IsQoS=true;(1-2)如果为非延迟敏感型应用,则对于该非延迟敏感型应用的所有GPU内核,IsQoS=false;(2)QoS指标表示为IPCgoal,当将全部SM分配给某个延迟敏感型应用时,得到IPCisotated;定义αk为IPCgoal占IPCisotated的比例,计算方法如下:IPCgoal=IPCisotated×αk,其中αk∈(0,1)。3.根据权利要求1所述的一种基于流多处理器内核独占和预留的GPU服务质量保障方法,其特征在于:所述步骤3中,确定初始的流多处理器SM,假设并发执行的延迟敏感型应用和非延迟敏感型应用的数量均为1,计算方法如下:(1)如果为延迟敏感型内核,则(2)如果为非延迟敏感型内核,则SMk=SMtotal-SMQoS,其中SMtotal为GPU中SM总个数,SMk为某个GPU内核所占用的SM个数,SMQoS为延迟敏感型内核所占用的SM个数,αk为IPCgoal占IPCiso...
【专利技术属性】
技术研发人员:杨海龙,孙庆骁,张静怡,
申请(专利权)人:北京航空航天大学,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。