一种GPU资源的分配方法及系统技术方案

技术编号:14405988 阅读:67 留言:0更新日期:2017-01-11 17:30
本发明专利技术公开一种GPU资源的分配方法及系统,涉及计算机技术领域,可以解决高优先级的kernel程序得不到及时响应的问题。本发明专利技术实施例通过全局逻辑控制器从kernel状态寄存器表中确定待分发kernel程序;全局逻辑控制器从SM状态寄存器表中查找能够运行至少一个完整block的SM,SM状态寄存器表用于存储每个SM中的剩余资源量;当全局逻辑控制器未查找到能够运行至少一个完整block的SM时,从SM状态寄存器表中查找第一SM,第一SM为能够运行至少一个warp的SM;当全局逻辑控制器查找到第一SM时,将待分发kernel程序中的block分发给第一SM。本发明专利技术实施例提供的方案适于GPU资源分配时采用。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种GPU资源的分配方法及系统
技术介绍
随着GPU(GraphicProcessingUnit,图形处理器)通用技术的发展,GPU不仅能够处理图像负载,也能够处理特定类型的通用程序。目前,当有多个不同的kernel程序需要访问GPU时,一般是以序列化的方式使请求访问GPU的kernel程序按照发送请求的时间顺序逐个访问GPU。如果一个延迟很长的kernel程序正在占用GPU,当有优先级更高的kernel程序需要访问GPU时,必须等前面正在访问GPU的kernel程序以及正在等待访问GPU的kernel程序运行结束后,释放出GPU中的SM(StreamMultiprocessor,流式多处理器)资源,该优先级更高的kernel程序才能访问GPU,使得该优先级更高的kernel程序得不到及时响应,影响业务质量。为了避免延时长的kernel程序长时间独占GPU中的SM资源,当有高优先级的kernel程序需要访问GPU时,可以查找空闲的SM,当查找到空闲的SM时,将高优先级的kernel程序分发给该空闲的SM运行。然而,如果GPU中没有空闲的SM,则需要等待GPU中出现空闲的SM时,才能够开始运行高优先级的kernel程序,导致高优先级的kernel程序得不到及时的响应。
技术实现思路
本专利技术的实施例提供一种GPU资源的分配方法及系统,可以解决高优先级的kernel程序得不到及时响应的问题。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,本专利技术实施例一种图形处理器GPU资源的分配方法,所述方法应用于GPU资源的分配系统中,所述系统包括全局逻辑控制器以及至少两个能够与所述全局逻辑控制器通信的流式多处理器SM,所述方法包括:所述全局逻辑控制器从核kernel状态寄存器表中确定待分发kernel程序,所述kernel状态寄存器表中包括每个未完成运行的kernel程序的优先级以及每个未完成运行的kernel程序中未分发的线程块block数量,所述待分发kernel程序为所述kernel状态寄存器表中优先级最高且未分发的block数量不为零的kernel程序;所述全局逻辑控制器从SM状态寄存器表中查找能够运行至少一个完整block的SM,所述SM状态寄存器表用于存储每个SM中的剩余资源量;当所述全局逻辑控制器未查找到能够运行至少一个完整block的SM时,从所述SM状态寄存器表中查找第一SM,所述第一SM为能够运行至少一个线程束warp的SM;当所述全局逻辑控制器查找到所述第一SM时,将所述待分发kernel程序中的block分发给所述第一SM。在第一种可能的实施例中,结合第一方面,在所述全局逻辑控制器从SM状态寄存器表中查找能够运行至少一个完整block的SM之后,所述方法还包括:当所述全局逻辑控制器查找到能够运行至少一个完整block的SM时,确定第一数量,所述第一数量为所述能够运行一个完整block的SM实际能够运行的block的数量;当所述待分发kernel程序中未分发的block的数量大于所述第一数量时,将所述待分发kernel程序中所述第一数量的block分发给所述能够运行至少一个完整block的SM;当所述待分发kernel程序中未分发的block的数量小于或等于所述第一数量时,将所述待分发kernel程序中未分发的block全部分发给所述能够运行至少一个完整block的SM。在第二种可能的实施例中,结合第一方面中的第一种可能的实施例,在所述全局逻辑控制器将所述待分发kernel程序中的一个block分发给所述第一SM之后,所述方法还包括:第一SM逻辑控制器从block状态寄存器表中确定优先级最高的block,所述第一SM逻辑控制器为所述第一SM中的SM逻辑控制器,所述block状态寄存器表包括被分发到所述第一SM中的每个block的优先级;所述第一SM逻辑控制器查找当前的空闲硬件warp;当所述第一SM逻辑控制器确定所述空闲硬件warp能够运行一个warp,且未接收到优先级更高的block时,将所述优先级最高的block中的一个warp分发给所述空闲硬件warp,并更新所述block状态寄存器表。在第三种可能的实施例中,结合第一方面或第一方面中上述任一种可能的实施例,所述SM状态寄存器表中包括每个SM的剩余寄存器数量、剩余硬件warp数量以及剩余共享存储空间,所述第一SM为所述剩余寄存器数量大于运行一个warp所需的寄存器数量、所述剩余硬件warp数量大于运行一个warp所需的硬件warp数量且所述剩余共享存储空间大于运行一个warp所需的共享存储空间的SM。在第四种可能的实施例中,结合第一方面中第三种可能的实施例,在所述当所述第一SM逻辑控制器确定所述空闲硬件warp能够运行一个warp,且未接收到优先级更高的block时,将所述优先级最高的block中的一个warp分发给所述硬件warp之后,所述方法还包括:所述第一SM逻辑控制器确定有运行完成的warp时,通知所述全局逻辑控制器更新所述SM状态寄存器表中的所述第一SM的剩余寄存器数量、剩余硬件warp数量以及剩余共享存储空间。第二方面,本专利技术实施例提供一种图形处理器GPU资源的分配系统,所述系统包括全局逻辑控制器以及至少两个能够与所述全局逻辑控制器通信的流式多处理器SM;所述全局逻辑控制器包括:第一确定单元、第一查找单元以及第一分发单元;所述第一确定单元,用于确定待分发kernel程序,所述kernel状态寄存器表中包括每个未完成运行的kernel程序的优先级以及每个未完成运行的kernel程序中未分发的block数量,所述待分发kernel程序为所述kernel状态寄存器表中优先级最高且未分发的block数量不为零的kernel程序;所述第一查找单元,用于从SM状态寄存器表中查找能够运行至少一个完整block的SM,所述SM状态寄存器表用于存储每个SM中的剩余资源量;当未查找到能够运行至少一个完整线程块block的SM时,从所述SM状态寄存器表中查找第一SM,所述第一SM为能够运行至少一个线程束warp的SM;所述第一分发单元,用于当查找到所述第一SM时,将所述待分发kernel程序中的block分发给所述第一SM;所述第一SM,用于运行所述第一单元分发的所述待分发kernel程序中的block。在第一种可能的实施例中,结合第二方面,所述第一确定单元,还用于当所述第一查找单元查找到能够运行至少一个完整block的SM时,确定第一数量,所述第一数量为所述能够运行一个完整block的SM实际能够运行的block的数量;所述第一分发单元,还用于当所述待分发kernel程序中未分发的block的数量大于所述第一数量时,将所述待分发kernel程序中所述第一数量的block分发给所述能够运行至少一个完整block的SM;当所述待分发kernel程序中未分发的block的数量小于或等于所述第一数量时,将所述待分发kernel程序中未分发的block全部分发给所述能够运行至少一个完整block的SM;所述能够运行至少一个完整block的SM,用于运行所述本文档来自技高网...
一种GPU资源的分配方法及系统

【技术保护点】
一种图形处理器GPU资源的分配方法,其特征在于,所述方法应用于GPU资源的分配系统中,所述系统包括全局逻辑控制器以及至少两个能够与所述全局逻辑控制器通信的流式多处理器SM,所述方法包括:所述全局逻辑控制器从核kernel状态寄存器表中确定待分发kernel程序,所述kernel状态寄存器表中包括每个未完成运行的kernel程序的优先级以及每个未完成运行的kernel程序中未分发的线程块block数量,所述待分发kernel程序为所述kernel状态寄存器表中优先级最高且未分发的block数量不为零的kernel程序;所述全局逻辑控制器从SM状态寄存器表中查找能够运行至少一个完整block的SM,所述SM状态寄存器表用于存储每个SM中的剩余资源量;当所述全局逻辑控制器未查找到能够运行至少一个完整block的SM时,从所述SM状态寄存器表中查找第一SM,所述第一SM为能够运行至少一个线程束warp的SM;当所述全局逻辑控制器查找到所述第一SM时,将所述待分发kernel程序中的block分发给所述第一SM。

【技术特征摘要】
1.一种图形处理器GPU资源的分配方法,其特征在于,所述方法应用于GPU资源的分配系统中,所述系统包括全局逻辑控制器以及至少两个能够与所述全局逻辑控制器通信的流式多处理器SM,所述方法包括:所述全局逻辑控制器从核kernel状态寄存器表中确定待分发kernel程序,所述kernel状态寄存器表中包括每个未完成运行的kernel程序的优先级以及每个未完成运行的kernel程序中未分发的线程块block数量,所述待分发kernel程序为所述kernel状态寄存器表中优先级最高且未分发的block数量不为零的kernel程序;所述全局逻辑控制器从SM状态寄存器表中查找能够运行至少一个完整block的SM,所述SM状态寄存器表用于存储每个SM中的剩余资源量;当所述全局逻辑控制器未查找到能够运行至少一个完整block的SM时,从所述SM状态寄存器表中查找第一SM,所述第一SM为能够运行至少一个线程束warp的SM;当所述全局逻辑控制器查找到所述第一SM时,将所述待分发kernel程序中的block分发给所述第一SM。2.根据权利要求1所述的GPU资源的分配方法,其特征在于,在所述全局逻辑控制器从SM状态寄存器表中查找能够运行至少一个完整block的SM之后,所述方法还包括:当所述全局逻辑控制器查找到能够运行至少一个完整block的SM时,确定第一数量,所述第一数量为所述能够运行一个完整block的SM实际能够运行的block的数量;当所述待分发kernel程序中未分发的block的数量大于所述第一数量时,将所述待分发kernel程序中所述第一数量的block分发给所述能够运行至少一个完整block的SM;当所述待分发kernel程序中未分发的block的数量小于或等于所述第一数量时,将所述待分发kernel程序中未分发的block全部分发给所述能够运行至少一个完整block的SM。3.根据权利要求2所述的GPU资源的分配方法,其特征在于,在所述全局逻辑控制器将所述待分发kernel程序中的一个block分发给所述第一SM之后,所述方法还包括:第一SM逻辑控制器从block状态寄存器表中确定优先级最高的block,所
\t述第一SM逻辑控制器为所述第一SM中的SM逻辑控制器,所述block状态寄存器表包括被分发到所述第一SM中的每个block的优先级;所述第一SM逻辑控制器查找当前的空闲硬件warp;当所述第一SM逻辑控制器确定所述空闲硬件warp能够运行一个warp,且未接收到优先级更高的block时,将所述优先级最高的block中的一个warp分发给所述空闲硬件warp,并更新所述block状态寄存器表。4.根据权利要求1至3中任一项所述的GPU资源的分配方法,其特征在于,所述SM状态寄存器表中包括每个SM的剩余寄存器数量、剩余硬件warp数量以及剩余共享存储空间,所述第一SM为所述剩余寄存器数量大于运行一个warp所需的寄存器数量、所述剩余硬件warp数量大于运行一个warp所需的硬件warp数量且所述剩余共享存储空间大于运行一个warp所需的共享存储空间的SM。5.根据权利要求4所述的GPU资源的分配方法,其特征在于,在所述当所述第一SM逻辑控制器确定所述空闲硬件warp能够运行一个warp,且未接收到优先级更高的block时,将所述优先级最高的block中的一个warp分发给所述硬件warp之后,所述方法还包括:所述第一SM逻辑控制器确定有运行完成的warp时,通知所述全局逻辑控制器更新所述SM状态寄存器表中...

【专利技术属性】
技术研发人员:展旭升王聪包云岗
申请(专利权)人:华为技术有限公司中国科学院计算技术研究所
类型:发明
国别省市:广东;44

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

1