【技术实现步骤摘要】
一种面向云计算的GPU虚拟化系统和方法
[0001]本专利技术属于计算机领域,具体涉及一种面向云计算的GPU虚拟化系统和方法。
技术介绍
[0002]GPU即图形处理器,是相对于CPU提出的处理器概念。随着桌面虚拟技术和云计算技术的发展,GPU虚拟化技术成为了研究的重点。在虚拟机系统中使用GPU的方式主要包括GPU直通和GPU虚拟化。
[0003]GPU直通模式是最成熟的方案,可以直接将物理GPU分配个某一虚拟机,只有该虚拟机拥有对物理GPU访问的权限,该方式称为独占设备。这种方式保存了虚拟机访问GPU的功能完整性和独立性,因为绕过了虚拟机监视器,所以执行效率很高;缺点就是独占设备使其他虚拟机无法共享使用GPU,失去了复用的功能。
[0004]GPU虚拟化能够将GPU进行切片,包括在资源维度上切片和在时间维度上切片,并分配给多台虚拟机使用。当前GPU虚拟化技术还存在许多难点,技术实现上也存在多种技术路线。
[0005]GPU设备构造复杂,GPU硬件研发是各厂家的核心技术,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...
【专利技术属性】
技术研发人员:许健,邹琴,钟生海,杨飞,侯明月,
申请(专利权)人:北京计算机技术及应用研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。