当前位置: 首页 > 专利查询>微软公司专利>正文

超虚拟化非对称GPU处理器制造技术

技术编号:10511716 阅读:137 留言:0更新日期:2014-10-08 13:17
本发明专利技术涉及用于在超虚拟化环境中提供非对称图形处理单元(“GPU”)处理器的方法、系统及计算机程序产品。超虚拟化环境的子分区内的虚拟GPU(“vGPU”)包括内核模式驱动器(“KMD”)和用户模式驱动器(“UMD”)。KMD包括多个虚拟节点。每一虚拟节点与其它类型的操作并行地执行不同类型的操作。KMD被声明为多引擎GPU。UMD调度供在虚拟节点上并行执行的操作。超虚拟化环境的根分区内的渲染组件在物理GPU处执行从vGPU接收的GPU命令。在KMD与渲染组件之间建立的多个存储器存取信道在KMD处的对应虚拟节点与渲染组件之间传达GPU命令。

【技术实现步骤摘要】
【国外来华专利技术】用于超虚拟化的非对称GPU处理器的方法和系统
本申请涉及GPU处理器,尤其涉及在超虚拟化环境中提供非对称图形处理单元(“GPU”)处理器的方法、系统及计算机程序产品。
技术介绍
计算机系统及相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已转变了人们生活和工作的方式。现在,计算机系统通常执行在计算机系统出现以前手动执行的许多任务(例如,文字处理、日程安排、帐目管理等)。最近,计算机系统彼此耦合并耦合到其他电子设备以形成计算机系统及其他电子设备可在其上传输电子数据的有线和无线计算机网络。因此,许多计算任务的执行分布在多个不同的计算机系统和/或多个不同的计算环境中。一些计算机被配置成提供超虚拟化执行环境,超虚拟化执行环境允许客软件以隔离方式共享单个计算机系统的硬件设备。一般而言,超虚拟化执行环境包括受系统管理程序支持的多个分区。每一分区提供供软件在其中执行的隔离执行环境。分区一般包括根分区以及一个或多个子分区。根分区运行主机操作系统并管理虚拟化栈。根分区可获得对物理设备的访问。每一子分区托管客软件(例如,客操作系统和客应用)。通过虚拟设备和系统管理程序的软件接口向子分区提供对物理设备的访问。一些超虚拟化执行环境给子分区(以及在其中运行的客软件)提供对一个或多个物理图形处理单元(“GPU”)的超虚拟化访问。GPU是被配置成执行并行处理任务(诸如图形渲染任务)的处理设备。GPU一般包含能够并发操作的多个物理硬件处理模块(也被称为节点或引擎)。通常,每一节点/引擎执行不同类型的任务(例如,三维渲染、视频加速等)。由此,这些节点/引擎常常被称为是非对称的。现有的超虚拟化解决方案提供子分区中对客软件而言呈现为物理GPU的“虚拟GPU”(“vGPU”)。vGPU提供用于从客软件接收GPU命令和数据的接口。vGPU连同根分区内的一个或多个组件来工作以在任何可用物理GPU上执行接收到的命令。现有的vGPU向客软件呈现处理全部GPU命令的单个处理节点。现有的vGPU随后将要在物理GPU上执行的任务串行化,以使得一个时间仅在物理GPU上执行单个任务(而非在物理GPU上并行执行多个任务)。由此,vGPU在任何给定时间利用物理GPU处的单个节点/引擎,从而导致对物理GPU的更多高效特征中的一些的利用不足。
技术实现思路
本专利技术涉及用于在超虚拟化环境中提供非对称图形处理单元(“GPU”)处理器的方法、系统及计算机程序产品。一些实施例包括一种用于在超虚拟化执行环境的子分区中提供非对称虚拟化GPU节点的方法。虚拟GPU(“vGPU”)在该子分区内被实例化。该vGPU被配置成虚拟化物理GPU。该vGPU包括内核模式驱动器(KMD)和用户模式驱动器(UMD)。KMD包括多个虚拟节点。每一虚拟节点被配置成与一个或多个其它类型的操作并行地执行不同类型的操作。KMD被声明为多引擎GPU。UMD被配置成调度供在虚拟节点上并行执行的不同类型的操作。还在超虚拟化执行环境的根分区内实例化渲染组件。渲染组件被配置成在物理GPU处执行从vGPU接收的GPU命令。在KMD和渲染组件之间建立多个存储器存取信道。每一存储器存取信道对应于KMD处的不同虚拟节点。每一存储器存取信道被配置成在对应的虚拟节点与渲染组件之间传达GPU命令。UMD调度供在不同虚拟节点上执行的多个不同类型的操作。提供本
技术实现思路
是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本
技术实现思路
不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。本专利技术的附加特征和优点将在以下描述中叙述,并且其一部分根据本描述将是显而易见的,或者可通过对本专利技术的实践来获知。本专利技术的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获得。本专利技术的这些以及其它特征、优点和特征将根据以下描述和所附权利要求而变得更显而易见,或者可通过如此后阐述的对本专利技术的实践而获知。附图说明为了描述可获得本专利技术的上述和其他优点和特征的方式,将通过参考附图中示出的本专利技术的具体实施例来呈现以上简要描述的本专利技术的更具体描述。可以理解,这些附图仅描述本专利技术的典型实施例,从而不被认为是对其范围的限制,本专利技术将通过使用附图用附加特征和细节来描述和说明,在附图中:图1解说了促进用虚拟图形处理单元(“GPU”)的并行操作的示例计算机架构。图2解说了用于在超虚拟化执行环境的子分区中提供非对称虚拟化GPU节点的一示例方法的流程图。具体实施方式本专利技术涉及用于在超虚拟化环境中提供非对称图形处理单元(“GPU”)处理器的方法、系统及计算机程序产品。一些实施例包括一种用于在超虚拟化执行环境的子分区中提供非对称虚拟化GPU节点的方法。虚拟GPU(“vGPU”)在该子分区内被实例化。该vGPU被配置成虚拟化物理GPU。该vGPU包括内核模式驱动器(KMD)和用户模式驱动器(UMD)。KMD包括多个虚拟节点。每一虚拟节点被配置成与一个或多个其它类型的操作并行地执行不同类型的操作。KMD被声明为多引擎GPU。UMD被配置成调度供在虚拟节点上并行执行的不同类型的操作。还在超虚拟化执行环境的根分区内实例化渲染组件。渲染组件被配置成在物理GPU处执行从vGPU接收的GPU命令。在KMD和渲染组件之间建立多个存储器存取信道。每一存储器存取信道对应于KMD处的不同虚拟节点。每一存储器存取信道被配置成在对应的虚拟节点与渲染组件之间传达GPU命令。UMD调度供在不同虚拟节点上执行的多个不同类型的操作。本专利技术的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如举例而言一个或多个处理器和系统存储器的计算机硬件,如以下更详细讨论的。本专利技术范围内的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是计算机存储介质(设备)。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本专利技术的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质(设备)和传输介质。计算机存储介质(设备)包括RAM、ROM、EEPROM、CD-ROM、固态驱动器(SSD)(如基于RAM)、闪存、相变存储器(PCM)、其他类型的存储器、其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置并可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动传输到计算机存储介质(设备)(或反之亦然)。例如,通过网络或数据链接接收到的计算机可执行指令或数据结构可被缓存本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201380006386.html" title="超虚拟化非对称GPU处理器原文来自X技术">超虚拟化非对称GPU处理器</a>

【技术保护点】
一种在包括一个或多个处理器以及系统存储器的计算机系统处用于在超虚拟化执行环境的子分区中提供非对称虚拟化GPU节点的方法,所述计算机系统还包括物理图形处理单元(“GPU”),所述方法包括:在所述超虚拟化执行环境的根分区内实例化渲染组件的动作,所述渲染组件被配置成在物理GPU处执行接收到的GPU命令;在所述子分区内实例化虚拟GPU(“vGPU”)的动作,所述vGPU被配置成虚拟化所述物理GPU,所述vGPU包括:内核模式驱动器(KMD),其包括多个虚拟节点,每一虚拟节点被配置成与一个或多个其它类型的操作并行地执行不同类型的操作;以及用户模式驱动器(UMD),其被配置成调度供在所述虚拟节点上并行执行的不同类型的操作;将所述KMD声明为多引擎GPU的动作;在所述KMD与所述渲染组件之间建立多个存储器存取信道的动作,每一存储器存取信道对应于所述虚拟节点中的一个不同虚拟节点,并且被配置成在所述对应的虚拟节点与所述渲染组件之间传达GPU命令;以及所述UMD调度供在所述虚拟节点中的一个不同虚拟节点上执行的多个不同类型的操作中的每一操作的动作。

【技术特征摘要】
【国外来华专利技术】2012.01.23 US 13/355,7901.一种在包括一个或多个处理器以及系统存储器的计算机系统处用于在超虚拟化执行环境的子分区中提供非对称虚拟化GPU节点的方法,所述计算机系统还包括物理图形处理单元GPU,所述方法包括:在所述超虚拟化执行环境的根分区内实例化渲染组件的动作,所述渲染组件被配置成在物理GPU处执行接收到的GPU命令;在所述子分区内实例化虚拟GPUvGPU的动作,所述vGPU被配置成虚拟化所述物理GPU,所述vGPU包括:内核模式驱动器KMD,其包括多个虚拟节点,每一虚拟节点被配置成与一个或多个其它类型的操作并行地执行不同类型的操作;以及用户模式驱动器UMD,其被配置成调度供在所述虚拟节点上并行执行的不同类型的操作;将所述KMD声明为多引擎GPU的动作;在所述KMD与所述渲染组件之间建立多个存储器存取信道的动作,每一存储器存取信道对应于所述虚拟节点中的一个不同虚拟节点,并且被配置成在所述对应的虚拟节点与所述渲染组件之间传达GPU命令;以及所述UMD调度多个不同类型的操作中的每一操作以供在所述虚拟节点中的一个不同虚拟节点上执行的动作。2.如权利要求1所述的方法,其特征在于,所述KMD的所述多个虚拟节点超过所述物理GPU处的物理节点的数目。3.如权利要求1所述的方法,其特征在于,所述UMD调度多个不同类型的操作中的每一操作以供在所述虚拟节点的一个不同虚拟节点上执行的动作包括所述UMD跟踪所述虚拟节点中的每一虚拟节点处正在执行哪一操作的动作。4.如权利要求1所述的方法,其特征在于,所述UMD调度多个不同类型的操作中的每一操作以供在所述虚拟节点的一个不同虚拟节点上执行的动作包括所述UMD跨所述虚拟节点同步所述多个操作的执行的动作。5.如权利要求4所述的方法,其特征在于,所述UMD跨所述虚拟节点同步所述多个操作的执行的动作包括:所述UMD调度第一操作在第一节点上运行的动作;以及所述UMD在完成所述第一操作之后调度依赖于所述第一操作的至少一个附加操作在一个或多个附加节点上运行的动作。6.如权利要求5所述的方法,其特征在于,所述UMD调度所述至少一个附加操作的动作包括将所述第一节点配置成在所述第一操作完成时向所述一个或多个附加节点发出信号的动作。7.如权利要求1所述的方法,其特征在于,所述多个不同类型的操作中的每一操作具有标识所述操作的顺序的栅栏标识符,所述方法进一步包括根据栅栏顺序报告所述多个不同类型的操作中的每一操作的完成的动作。8.如权利要求1所述的方法,其特征在于,所述多个虚拟节点包括至少一个非对称虚拟节点和至少一个对称虚拟节点。9.如权利要求1所述的方法,其特征在于,所述多个虚拟节点中的至少一个虚拟节...

【专利技术属性】
技术研发人员:M·P·马拉卡帕里S·R·帕特里克
申请(专利权)人:微软公司
类型:发明
国别省市:美国;US

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

1