[发明专利]一种面向云计算的GPU虚拟化系统和方法在审
申请号: | 202111282139.6 | 申请日: | 2021-11-01 |
公开(公告)号: | CN113986466A | 公开(公告)日: | 2022-01-28 |
发明(设计)人: | 许健;邹琴;钟生海;杨飞;侯明月 | 申请(专利权)人: | 北京计算机技术及应用研究所 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/50 |
代理公司: | 中国兵器工业集团公司专利中心 11011 | 代理人: | 刘瑞东 |
地址: | 100854*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 计算 gpu 虚拟 系统 方法 | ||
1.一种面向云计算的GPU虚拟化系统,其特征在于,该系统采用Xen虚拟化架构,包括三个模块:vCUDA客户端、vCUDA服务端和vGPU,Xen虚拟化架构中包括一个主虚拟机和若干个客户虚拟机;
主虚拟机运行在Xen中的特权域,安装vCUDA服务端以及GPU原生驱动;vCUDA服务端包括原生CUDA库和远程调用模块,其中原生CUDA库能够通过原生驱动使用物理GPU,远程调用模块是主虚拟机与客户虚拟机进行通信的特殊通道;主虚拟机是唯一可以直接访问到物理GPU的虚拟机;
客户虚拟机运行在Xen中的非特权域,客户虚拟机是供用户使用的虚拟机,安装CUDA应用程序、vCUDA客户端和vGPU;vCUDA客户端包括vCUDA库和远程调用模块;远程调用模块用于与主虚拟机通信,vCUDA库是面向GPU虚拟化定制的伪库,通过重定向库函数,将CUDA应用的请求转发到vCUDA服务端执行;客户虚拟机无法直接访问物理GPU,必须通过主虚拟机来使用GPU;vGPU用来维护与GPU相关的软硬件状态。
2.如权利要求1所述的面向云计算的GPU虚拟化系统,其特征在于,所述特权域为Domain 0,所述非特权域为Domain U。
3.如权利要求1所述的面向云计算的GPU虚拟化系统,其特征在于,vGPU是客户虚拟机中维护的一个字典数据结构,其中存储了当前使用物理GPU的地址空间、内存对象和纹理结构,同时记录了CUDA库的调用次序。
4.如权利要求3所述的面向云计算的GPU虚拟化系统,其特征在于,当主虚拟机的计算结果返回时,vCUDA客户端会根据结果及时更新vGPU。
5.如权利要求1所述的面向云计算的GPU虚拟化系统,其特征在于,vCUDA客户端中的vCUDA库改写了原生CUDA库的接口代码,使得来自CUDA应用程序的调用请求会被vCUDA库捕获。
6.如权利要求5所述的面向云计算的GPU虚拟化系统,其特征在于,vCUDA客户端还对CUDA调用的接口和参数重新进行封装、编码,编写成可在远程调用模块中传递的数据格式,传递到vCUDA服务端。
7.如权利要求6所述的面向云计算的GPU虚拟化系统,其特征在于,所述vCUDA服务端通过远程调用接口接收来自vCUDA客户端的数据,并解析出调用和参数;分配给服务端的来自不同客户端的不同应用的作业将经统一格式编码后按照用户请求的先后的顺序分发给GPU,并等待资源分配和执行。
8.如权利要求1所述的面向云计算的GPU虚拟化系统,其特征在于,vCUDA服务端将作业结果编码,通过远程调用接口返回给vCUDA客户端,vCUDA客户端还对vCUDA服务端返回的数据进行解码,将作业结果返回给CUDA应用程序。
9.如权利要求1-8任一项所述的面向云计算的GPU虚拟化系统,其特征在于,所述vCUDA服务端得到了计算结果之后,将状态同步请求和GPU状态信息发送给vCUDA客户端,vCUDA客户端完成vGPU状态同步后返回成功确认信号;然后vCUDA服务端才能将计算结果发送给vCUDA客户端。
10.一种基于如权利要求1-9任一项所述的系统的面向云计算的GPU虚拟化方法,其特征在于,该方法包括如下步骤:
S1、vCUDA客户端拦截客户虚拟机中CUDA应用程序发送的CUDA调用请求;
S2、vCUDA客户端对CUDA调用请求进行编码,将编码后的请求通过远程调用模块发送到安装在主虚拟机中的vCUDA服务端的远程调用模块;vCUDA服务端的远程调用模块接收来自vCUDA客户端的信息,进行解码后获取CUDA调用请求;
S3、vCUDA服务端利用原生CUDA库生成计算作业,通过原生驱动将计算作业发送到物理GPU完成计算作业;
S4、物理GPU将计算结果返回给vCUDA服务端;
S5、vCUDA服务端通过远程调用模块将GPU状态更新和运行结果返回给vCUDA客户端,vCUDA服务端先将编码后的状态同步请求和GPU状态信息发送给vCUDA客户端,vCUDA客户端解码并完成vGPU状态同步后返回成功确认信号,然后vCUDA服务端才能将编码后的计算结果发送给vCUDA客户端;
S6、vCUDA客户端将解码后的计算结果返还给CUDA应用程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京计算机技术及应用研究所,未经北京计算机技术及应用研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111282139.6/1.html,转载请声明来源钻瓜专利网。