一种通用图形处理器虚拟化的实现方法、系统及装置制造方法及图纸

技术编号:7498188 阅读:173 留言:0更新日期:2012-07-10 22:56
本发明专利技术公开了一种GPGPU虚拟化的实现方法、系统及装置,用以解决现有技术无法实现GPGPU虚拟化的问题。该方法第一虚拟机读取总线共享内存中第二虚拟机写入的待处理数据,自身调用GPU驱动接口,将该待处理数据发送到物理显卡上进行计算,收集计算后的结果,将该结果放入总线共享内存中待第二虚拟机读取。由于第一虚拟机可以实现访问物理显卡,并与第二虚拟机进行信息交互,因此实现了GPGPU的虚拟化。

【技术实现步骤摘要】

本专利技术涉及虚拟化
,尤其涉及一种通用图形处理器(GeneralPurpose Graphic Process Unit, GPGPU)虚拟化的实现方法、系统及装置。
技术介绍
随着图形处理技术的发展,出现了一种可从事通用计算任务的专业图形处理器 GPGPU,GPGPU可以执行与图形处理无关的通用计算指令。在面对单指令多数据流(Single Instruction Multiple Data, SIMD)并且数据处理运算量,远大于数据调度和传输的需求时,GPGPU的运算能力和访存带宽能力都远远超过了中央处理器(CPU),因此形成了 CPU+GPGPU的新型异构体系结构。这种新型架构表现出了强大的性能优势,并且与CPU相比具有更低的能耗和散热。目前支持GPGPU的物理实体为物理显卡,GPGPU还只能在物理机上使用,GPGPU的虚拟化目前仍然处于初期阶段,不过可以将物理显卡通过硬件I^assthrough的方法给虚拟机使用,但是模拟的显卡不能支持GPGPU功能,虚拟机不能调用GPGPU编程接口以进行运算,因此现有技术中还无法实现GPGPU的虚拟化。
技术实现思路
有鉴于此,本专利技术实施例提供一种通用图形处理器虚拟化的实现方法、系统及装置,用以解决现有技术无法实现GPGPU虚拟化的问题。本专利技术实施例提供的一种通用图形处理器虚拟化的实现系统,包括第一虚拟机,用于读取总线共享内存中第二虚拟机发送的待处理数据,并调用自身的图形处理器GPU驱动接口,将该待处理数据发送到物理显卡上进行计算,以及收集所述物理显卡计算后的结果,并将该结果放入总线共享内存中待第二虚拟机读取;总线共享内存,用于存储第二虚拟机发送的待处理数据,及第一虚拟机发送的计算后的结果;第二虚拟机,用于向总线共享内存中写入待处理数据,及从所述总线共享内存中获取计算后的结果;物理显卡,用于对第一虚拟机发送的待处理数据进行处理。本专利技术实施例提供的一种通用图形处理器虚拟化的实现方法,包括第一虚拟机读取总线共享内存中第二虚拟机发送的待处理数据;调用自身的图形处理器GPU驱动接口,将该待处理数据发送到物理显卡上进行计算;收集计算后的结果,将该结果放入总线共享内存中待第二虚拟机读取。本专利技术实施例提供的一种通用图形处理器虚拟化的实现装置,所述装置包括图形处理器GPU后端模块,用于读取总线共享内存中第二虚拟机发送的待处理数据,收集计算后的结果,将该结果放入总线共享内存中待第二虚拟机读取;GPU驱动模块,用于调用自身的图形处理器GPU驱动接口,将该待处理数据发送到物理显卡上进行计算。本专利技术实施例提供的一种通用图形处理器虚拟化的实现方法,所述方法包括第二虚拟机将待处理数据写入总线共享内存;读取总线共享内存中对该待处理数据的计算后的结果,其中该计算结果为第一虚拟机通过物理显卡计算并返回的。本专利技术实施例提供的一种通用图形处理器虚拟化的实现装置,所述装置包括图形处理器GPU前端发送模块,用于将待处理数据写入总线共享内存;图形处理器GPU前端接收模块,用于读取总线共享内存中对该待处理数据的计算后的结果,其中该计算结果为第一虚拟机通过物理显卡计算并返回的。本专利技术实施例提供了一种GPGPU虚拟化的实现方法、系统及装置,该方法中,第一虚拟机读取总线共享内存中第二虚拟机写入的待处理数据,自身调用GPU驱动接口,将该待处理数据发送到物理显卡上进行计算,收集计算后的结果,将该结果放入总线共享内存中待第二虚拟机读取。由于第一虚拟机可以实现访问物理显卡,并与第二虚拟机进行信息交互,因此实现了 GPGPU的虚拟化。附图说明图1为本专利技术实施例提供的GPGPU虚拟化的实现系统结构示意图;图2为本专利技术实施例提供的GPGPU虚拟化的实现过程;图3为本专利技术实施例提供的GPGPU虚拟化的过程中实现多台虚拟机同时使用物理显卡的过程;图4为本专利技术实施例提供的GPGPU虚拟化的过程中虚拟机使用物理显卡进行计算的过程;图5为本专利技术实施例提供的GPGPU虚拟化的详细实现过程;图6为本专利技术实施例提供的一种通用图形处理器虚拟化的实现装置的结构示意图;图7为本专利技术实施例提供的一种通用图形处理器虚拟化的实现装置的结构示意图。具体实施例方式下面结合说明书附图,对本专利技术实施例进行详细说明。图1为本专利技术实施例提供的GPGPU虚拟化的实现系统结构示意图,该系统包括第一虚拟机、第二虚拟机、总线(Bus)共享内存以及物理显卡。第一虚拟机11,用于读取总线共享内存中第二虚拟机发送的待处理数据,并调用自身的图形处理器GPU驱动接口,将该待处理数据发送到物理显卡上进行计算,以及收集所述物理显卡计算后的结果,并将该结果放入总线共享内存中待第二虚拟机读取;Bus共享内存12,用于存储第二虚拟机发送的待处理数据,及第一虚拟机发送的计算后的结果;第二虚拟机13,用于向总线共享内存中写入待处理数据,及从所述总线共享内存中获取计算后的结果;物理显卡14,用于对第一虚拟机发送的待处理数据进行处理。具体在本专利技术实施例中第一虚拟机可以为虚拟机Dom 0,总线共享内存可以为 XenBus共享内存,第二虚拟机可以为虚拟机Dom U。虚拟机Dom O是Xen虚拟机部署架构中的管理操作者,其负责管理连接fenBus共享内存的每台虚拟机Dom U,并且能与其他虚拟机Dom U通过XenBus共享内存进行交互,并且可以实现对物理显卡等其他物理器件的访问。上述整个GPGPU虚拟化的实现系统可以部署于同一物理机上,随着物理机的启动,该虚拟机Dom O启动,通过虚拟机Dom O的启动可以启动虚拟机Dom U。在虚拟机Dom O中安装有真实的显卡驱动,使得该虚拟机Dom O可以直接访问物理显卡,而在虚拟机Dom U的操作系统中模拟一个支持GPGPU的显卡驱动,使该虚拟机Dom U的操作系统可以通过这个模拟的显卡驱动认为自身安装了一块独立的显卡。启动后的虚拟机Dom U当接收到用户的待处理数据后,将该待处理数据写入 XenBus共享内存中,虚拟机Dom O读取XenBus共享内存中该虚拟机DomU写入的待处理数据,由于虚拟机Dom O中安装了真实的显卡驱动,因此该虚拟机Dom O调用自身的GPU驱动接口,将该待处理数据发送的物理显卡进行计算,并将物理显卡计算后的结果写入fenBus 共享内存,虚拟机Dom U从XenBus共享内存中读取该计算后的结果提供给用户,从而实现 GPGPU的虚拟化。图2为本专利技术实施例提供的GPGPU虚拟化的实现过程,该过程包括以下步骤S201 第一虚拟机读取总线共享内存中第二虚拟机发送的待处理数据。S202 调用自身的图形处理器GPU驱动接口,将该待处理数据发送到物理显卡上进行计算。S203:收集计算后的结果,将该结果放入总线共享内存中待第二虚拟机读取。具体的在本专利技术实施例中,在虚拟机Dom U中包括GPU前端模块,并且在虚拟机 Dom O中包括GPU后端模块,虚拟机Dom U中的GPU前端模块包括GPU前端发送模块和GPU 前端接收模块,其实现与虚拟机Dom O中的GPU后端模块的交互。虚拟机Dom U当接收到用户的待处理数据后,其GPU前端发送模块将该待处理数据写入XenBus共享内存,而虚拟机Dom O通过其GPU后端模块读取XenBus共本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:赵鹏
申请(专利权)人:中国移动通信集团公司
类型:发明
国别省市:

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

1
相关领域技术