[发明专利]一种面向GPU集群环境的避免GPU资源争用的方法有效

专利信息
申请号: 201711326972.X 申请日: 2017-12-13
公开(公告)号: CN107943592B 公开(公告)日: 2020-06-12
发明(设计)人: 东方;师晓敏;罗军舟;查付政;王睿;孙斌 申请(专利权)人: 中通服咨询设计研究院有限公司;东南大学
主分类号: G06F9/50 分类号: G06F9/50
代理公司: 江苏圣典律师事务所 32237 代理人: 胡建华;于瀚文
地址: 210019 江苏*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 面向 gpu 集群 环境 避免 资源 方法
【权利要求书】:

1.一种面向GPU集群环境的避免GPU资源争用的方法,其特征在于,包括以下步骤:

步骤1,构建一个支持多应用程序细粒度并发执行的插件:该插件包含一个自行编写的GPU运行时伪函数库和一个自行编写的本地服务器进程,GPU运行时伪函数库与NVIDIA自带的GPU运行时函数库有相同的函数原型,但各个函数实现体的基本功能包括:变换同步函数为异步函数;向本地服务器进程转发相关的函数执行请求;该细粒度并发执行插件的作用为:同一个GPU节点上的多个应用程序对GPU运行时库函数的调用,均需通过GPU运行时伪函数库变换、转发,并通过本地服务器进程执行;

步骤2,在GPU集群的头结点,使用自行编写的GPU运行时伪函数库替换NVIDIA自带的GPU运行时函数库,该伪函数库将GPU内存创建类函数、GPU内存拷贝类函数、GPU内核执行函数、GPU同步类函数的函数体替换为相应函数的字符输出信息;当一个用户向GPU集群中的头结点提交待执行的GPU应用程序时,在GPU集群的头结点中运行该应用程序,即能够在避免真实运行的模式下,获得该应用程序运行过程中所需执行的GPU关键函数信息,从而获得该应用程序的GPU使用模式;另一方面,使用NVIDIA自带工具CUOBJDUMP、PTXAS,静态解析该应用程序中的GPU内核函数,能够抽取应用程序所需使用的GPU资源需求信息;

步骤3,根据步骤2中的获取应用程序的GPU使用模式和GPU资源需求信息,以及当前GPU集群中各个GPU节点的资源使用状况,在GPU集群的头结点中,调度所到达的GPU应用程序到适宜的GPU节点上运行;

步骤1中,所述的同步函数专指GPU内存拷贝类同步函数、GPU内核执行函数和GPU设备同步函数,而对应的异步函数专指对应的GPU内存拷贝类异步函数、GPU内核执行函数和GPU流同步函数。

2.根据权利要求1所述的方法,其特征在于,步骤1包括以下步骤:

步骤1-1,应用程序调用GPU运行时库函数时,若所需调用的GPU运行时库函数为同步函数,则将其变换为对应的异步函数;

步骤1-2,将应用程序对GPU运行时库函数的调用请求,包括函数名和参数,转发到本节点的服务器进程;

步骤1-3,本地服务器端进程根据所接收到的调用请求,执行相应的NVIDIA自带GPU运行时库函数,并返回执行结果给调用方。

3.根据权利要求2所述的方法,其特征在于,步骤2中,所述GPU关键函数信息包括应用程序申请GPU内存类操作、在主机和GPU设备之间拷贝数据类操作、执行GPU内核函数操作、GPU设备流同步操作和GPU设备同步操作;所述GPU使用模式是由GPU关键函数构成的有向图;所述GPU资源需求信息包括执行GPU内核函数所需的块CUDABlock数量、线程CUDAThread数量、全局内存数量、共享内存数量和寄存器数量。

4.根据权利要求3所述的方法,其特征在于,步骤2中,所述获得该应用程序的GPU使用模式,具体包括以下步骤:

步骤2-1,在GPU运行时函数库为伪库的环境下,执行应用程序代码,依次获得GPU关键函数信息;

步骤2-2,根据各个GPU关键函数信息,构造描述GPU函数调用顺序的有向图,从而获得GPU使用模式;

步骤2-3,根据各个GPU关键函数信息,获取该应用程序所需的块CUDA Block数量、线程CUDA Thread数量和全局内存数量信息。

5.根据权利要求4所述的方法,其特征在于,步骤2中,所述抽取应用程序的GPU资源需求信息,具体包括以下步骤:

步骤2-4,使用NVIDIA自带工具CUOBJDUMP,抽取应用程序中GPU内核函数的并行线程执行PTX代码;

步骤2-5,使用NVIDIA自带工具PTXAS,解析所有的并行线程执行PTX代码,获取GPU内核函数所需的共享内存数量和寄存器数量信息;

步骤2-6,将步骤2-3中获取的块CUDA Block数量、线程CUDA Thread数量和全局内存数量信息,与步骤2-5中获取的共享内存数量和寄存器数量信息结合,即获得了该应用程序所需使用的GPU资源需求信息。

6.根据权利要求5所述的方法,其特征在于,步骤3包括以下步骤:

步骤3-1,在GPU集群的头结点中维护一个列表,其中记录各个GPU计算节点当前拥有的GPU资源信息,包括:块CUDABlock数量、线程CUDAThread数量、全局内存数量、共享内存数量和寄存器数量,这些信息的初始值为GPU计算节点硬件支持的各种资源的数量;

步骤3-2,寻找当前GPU集群中是否存在空闲的GPU计算节点,若存在,则将到达的应用程序调度到最近的空闲GPU计算节点,转到步骤3-6;否则,转到步骤3-3;

步骤3-3,从最近被调度节点的下一个节点开始,根据待调度应用程序的GPU使用模式和GPU资源需求信息,以及各个GPU计算节点当前拥有的GPU资源信息,寻找第一个能满足该应用程序资源需求的GPU计算节点,若找到,则转到步骤3-6;否则,该应用程序放入待调度队列,并转到步骤3-4;

步骤3-4,当有GPU计算节点向头结点汇报其上的一个应用程序执行结束时,头结点检查待调度队列中是否有等待被调度的应用程序,若存在,则从队头开始,找到一个应用程序,并转到步骤3-5;否则,转到步骤3-7;

步骤3-5,判断该GPU计算节点能否满足该应用程序资源需求,若该GPU计算节点能够满足,则转步骤3-6;否则,找后一个等待被调度的应用程序,转步骤3-5;

步骤3-6,将应用程序调度到所选定的GPU计算节点上,并在GPU集群的头结点维护的列表中,更新对应GPU计算节点的GPU资源信息;

步骤3-7,结束步骤3的流程。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中通服咨询设计研究院有限公司;东南大学,未经中通服咨询设计研究院有限公司;东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201711326972.X/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top