准虚拟化高性能计算和gdi加速的制作方法

文档序号:6532713阅读:242来源:国知局
准虚拟化高性能计算和gdi加速的制作方法
【专利摘要】本发明涉及用于准虚拟化GPGPU计算和GDI加速的方法、系统及计算机程序产品。一些实施例向准虚拟化环境中的访客应用提供计算着色器。子分区中的vGPU向访客应用呈现用于执行GPGPU计算的计算着色器DDI。根分区中的呈现组件从vGPU接收计算着色器命令,并且调度该命令以供在物理GPU处执行。其它实施例向准虚拟化环境中的访客应用提供GPU加速GDI呈现能力。子分区中的vGPU提供API以供接收GDI命令,并且向根分区中的呈现组件发送GDI命令和数据。呈现组件调度3D呈现设备上的GDI命令。3D呈现设备使用可共享的GDI表面在物理GPU处执行GDI命令。
【专利说明】准虚拟化高性能计算和GDI加速
[0001] 背景
[0002] 1.背景和相关抟术
[0003] 计算机系统及相关技术影响社会的许多方面。的确,计算机系统处理信息的能力 已转变了人们生活和工作的方式。现在,计算机系统通常执行在计算机系统出现以前手动 执行的许多任务(例如,文字处理、日程安排、帐目管理等)。最近,计算机系统彼此耦合并 耦合到其他电子设备以形成计算机系统及其他电子设备可在其上传输电子数据的有线和 无线计算机网络。因此,许多计算任务的执行分布在多个不同的计算机系统和/或多个不 同的计算环境中。
[0004] 一些计算系统被配置成提供准虚拟化执行环境,准虚拟化执行环境允许访客软件 以隔离方式共享单个计算机系统的硬件设备。一般而言,准虚拟化执行环境提供受系统管 理程序支持的多个分区。分区提供不同访客软件之间的隔离。分区一般包括根分区以及一 个或多个子分区。根分区运行主机操作系统并管理虚拟化栈。根分区可获得对物理设备的 访问。每一子分区托管访客软件(例如,访客操作系统和访客应用)。通过虚拟设备和系统 管理程序的软件接口向子分区提供对物理设备的访问。
[0005] -些准虚拟化执行环境给子分区(以及在其中执行的访客软件)提供对一个或多 个物理图形处理单元("GPU")的准虚拟化访问。一般而言,对物理GPU的准虚拟化访问的 每个实现支持特定的三维呈现框架。由此,如果访客软件正在不支持这些能力的准虚拟化 执行环境中执行,访客软件可能无法访问物理GPU的能力。在一些情况中,访客软件可依赖 于使用虚拟化的CPU来执行不支持对物理GPU的准虚拟化访问的任务,导致潜在地显著的 性能损失。
[0006] 简要概沭
[0007] 本发明涉及用于在准虚拟化环境中提供高性能计算及图形设备接口( "GDI")加 速的方法、系统及计算机程序产品。
[0008] -些实施例包括用于向在准虚拟化执行环境的子分区中执行的访客应用提供图 形处理单元("GPU")加速的计算功能性的方法。虚拟机会话被实例化。虚拟机会话中的 系统管理程序提供(i)根分区(其具有对物理GPU的访问)以及(ii)子分区(其执行访 客应用)。
[0009] 在子分区中执行的虚拟化图形处理单元("VGPU")被呈现给访客应用。VGPU的 用户模式驱动器("UMD")向访客应用呈现计算着色器设备驱动器接口( "DDI")。计算着 色器DDI提供使访客应用能够向vGPU发送计算着色器命令的应用编程接口("API")。计 算着色器命令被用来在物理GPU处使用计算着色器执行通用图形处理单元(GPGPU)计算。 在根分区中执行的呈现组件从vGPU接收物理GPU专用计算着色器命令,并且调度该命令以 供在物理GPU处执行。
[0010] 附加实施例包括用于向在准虚拟化执行环境的子分区中执行的访客应用提供GPU 加速的GDI功能性的方法。虚拟机会话被实例化。虚拟机会话中的系统管理程序提供(i) 具有对物理GPU的访问的根分区,以及(ii)执行访客应用的子分区。
[0011] 在子分区中执行的vGPU被呈现给访客应用。vGPU的内核模式驱动器("KMD") 的API使访客操作系统能够加速由访客应用提交的GDI呈现命令。这些命令随后被vGPU 的KMD处理。
[0012] 在根分区中执行的呈现组件从vGPU接收⑶I加速呈现命令。作为响应,呈现组件 调度根分区中⑶I合成设备上的⑶I加速呈现命令。⑶I合成设备被配置成在物理GPU处 执行GDI加速呈现命令。GDI合成设备把和GDI命令对应的GDI表面标记为桌面可共享合 成。
[0013] 提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概 念。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确 定所要求保护的主题的范围。
[0014] 在随后的描述中阐述,并且部分地将从本说明书中显而易见,或可以通过本发明 的实施来获知。本发明的特征和优点可通过在所附权利要求书中特别指出的工具和组合来 实现和获得。本发明的这些以及其它特征、优点和特征将根据以下描述和所附权利要求而 变得更显而易见,或者可通过如此后阐述的对本发明的实践而获知。

【专利附图】

【附图说明】
[0015] 为了描述可以获得本发明的上文所列举的及其他优点和特征的方式,将通过参考 附图中所示的本发明的各具体实施例来呈现上文简要描述的本发明的更具体的描述。可以 理解,这些附图仅描述本发明的典型实施例,从而不被认为是对其范围的限制,本发明将通 过使用附图用附加特征和细节来描述和说明,在附图中:
[0016] 图1A解说启用对物理图形处理单元("GPU")硬件的计算着色器功能性的准虚拟 化访问的示例计算机架构。
[0017] 图1B解说通过物理GPU硬件启用准虚拟化图形设备接口("⑶I")加速的示例计 算机架构。
[0018] 图1C解说启用对计算着色器功能性的准虚拟化访问和通过物理GPU硬件启用准 虚拟化GDI加速的示例计算机架构。
[0019] 图2A解说用于向在准虚拟化执行环境的子分区中执行的访客应用提供GPU加速 的计算功能性的示例方法的流程图。
[0020] 图2B解说用于向在准虚拟化执行环境的子分区中执行的访客应用提供GPU加速 的GDI功能性的示例方法的流程图。
[0021] 详细描沭
[0022] 本发明涉及用于在准虚拟化环境中提供高性能计算及图形设备接口( "GDI")加 速的方法、系统及计算机程序产品。
[0023] -些实施例包括用于向在准虚拟化执行环境的子分区中执行的访客应用提供图 形处理单元("GPU")加速的计算功能性的方法。虚拟机会话被实例化。虚拟机会话中的 系统管理程序提供(i)根分区(其具有对物理GPU的访问)以及(ii)子分区(其执行访 客应用)。
[0024] 在子分区中执行的虚拟化图形处理单元("vGPU")被呈现给访客应用。vGPU的 用户模式驱动器("UMD")向访客应用呈现计算着色器设备驱动器接口( "DDI")。计算着 色器DDI提供使访客应用能够向vGPU发送计算着色器命令的应用编程接口("API")。计 算着色器命令被用来在物理GPU处使用计算着色器执行通用图形处理单元("GPGPU")计 算。在根分区中执行的呈现组件从vGPU接收物理GPU专用计算着色器命令,并且调度该命 令以供在物理GPU处执行。
[0025] 附加实施例包括用于向在准虚拟化执行环境的子分区中执行的访客应用提供GPU 加速的GDI功能性的方法。虚拟机会话被实例化。虚拟机会话中的系统管理程序提供(i) 具有对物理GPU的访问的根分区,以及(ii)执行访客应用的子分区。
[0026] 在子分区中执行的vGPU被呈现给访客应用。vGPU的内核模式驱动器("KMD") 的API使访客操作系统能够加速由访客应用提交的GDI呈现命令。这些命令随后被vGPU 的KMD处理。
[0027] 在根分区中执行的呈现组件从vGPU接收⑶I加速呈现命令。作为响应,呈现组件 调度根分区中⑶I合成设备上的⑶I加速呈现命令。⑶I合成设备被配置成在物理GPU处 执行GDI加速呈现命令。GDI合成设备把和GDI命令对应的GDI表面标记为桌面可共享合 成。
[0028] 本发明的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸 如举例而言一个或多个处理器和系统存储器的计算机硬件,如以下更详细讨论的。本发明 范围内的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其 他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何 可用介质。存储计算机可执行指令的计算机可读介质是计算机存储介质(设备)。承载计 算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施 例可包括至少两种显著不同的计算机可读介质:计算机存储介质(设备)和传输介质。
[0029] 计算机存储介质(设备)包括RAM、ROM、EEPROM、CD-ROM、固态驱动器(SSD)(如基 于RAM)、闪存、相变存储器(PCM)、其他类型的存储器、其他光盘存储、磁盘存储或其他磁存 储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用 或专用计算机访问的任何其他介质。
[0030] "网络"被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设 备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、 或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介 质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置并 可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读 介质的范围内。
[0031] 此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程 序代码装置可从传输介质自动传输到计算机存储介质(设备)(或反之亦然)。例如,通过 网络或数据链接接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如, "NIC")内的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性 的计算机存储介质(设备)。因而,应当理解,计算机存储介质(设备)可被包括在还利用 (甚至主要利用)传输介质的计算机系统组件中。
[0032] 计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或 专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令例如可以是二进 制代码、诸如汇编语言之类的中间格式指令或者甚至是源代码。尽管用结构特征和/或方 法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上 述特征或动作。更具体而言,上述特征和动作是作为实现权利要求的示例形式而公开的。
[0033] 本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络 计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息 处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型 计算机、大型计算机、移动电话、PDA、平板、寻呼机、路由器、交换机等等。本发明也可在其中 通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链 路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式 系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
[0034] 准虚拟化的计算着色器(GPGPU)功能件
[0035] 图1A解说启用对物理GPU硬件的计算着色器功能性的准虚拟化访问的示例计算 机架构l〇〇a。参考图1A,计算机架构100a包括物理硬件101。物理硬件101可包括任何适 合的硬件设备,诸如一个或多个通用处理器、系统存储器,等等。如所描绘的,物理硬件包括 至少一个物理GPU 101a。
[0036] 物理GPU 101a是被配置成执行并行处理任务(诸如图形呈现)的处理设备。物 理GPU 101a包括对执行计算着色器的支持,这使得物理GPU 101a能执行通用(即,非图形 呈现)计算。换言之,物理GPU 101a支持计算着色器设备上的GPGPU计算。
[0037] 计算机架构100a还包括系统管理程序102。系统管理程序102在物理硬件101之 上执行并且支持虚拟化平台。虚拟化平台提供多个分区。每一分区提供可在其中执行访客 软件的隔离逻辑单元。例如,计算机架构l〇〇a包括根分区103和子分区104。
[0038] 根分区103执行主机操作系统,并且具有对物理硬件101的直接访问(如物理硬 件101上显现的根分区103所描绘的)。每一子分区提供用于执行访客软件的执行环境(例 如操作系统和/或应用)并且可以按准虚拟化方式间接地访问物理硬件101。也即,通过 系统管理程序102,每一子分区向访客软件提供一个或多个软件接口(例如,虚拟化硬件)。 访客软件进而使用软件接口来访问物理硬件101。系统管理程序102可对多个子分区提供 支持。
[0039] 如所描绘的,访客软件105在子分区104中执行。访客软件105包括任何适当的 访客软件,诸如操作系统和/或在操作系统中执行的应用程序。访客软件105包括或使用 图形运行时l〇5a。图形运行时105a提供用于呈现图形和/或执行GPGPU计算的框架(例 如,API)。
[0040] 子分区104向访客软件105提供对vGPU 106的访问。vGPU 105使物理GPU 101a 虚拟化,使访客软件105能够间接地访问物理GPU 101a。由此,VGPU106被配置成向访客软 件105展示至少一个呈现框架(对应于图形运行时105a)的功能性的全部或子集连同物理 GPU 101a的任何对应功能性。
[0041] 具体而言,vGPU 106被配置成展示使访客软件105能够调用vGPU 106来访问物理 GPU 101a的计算着色器功能性以供在物理GPU 101a处执行GPGPU计算的一个或多个软件接 口。vGPU 106进而结合根分区103中的呈现组件来工作以在物理GPU 101a上执行计算着 色器功能性。如所描绘的,例如根分区103包括呈现组件112。呈现组件112进而包括计算 着色器组件113以供处理计算着色器命令和数据。vGPU 106将计算着色器命令和数据117 远程传输到呈现组件112以在物理GPU 101a上执行呈现。
[0042] 呈现组件112调度从vGPU 106收到的任何图形命令以供在物理GPU 101a上执行。 呈现组件112还创建合适的上下文以供执行这些命令。由此,呈现组件112被配置成使用 计算着色器组件113来调度从子分区104中的vGPU 106收到的计算着色器相关命令在物理 GPU 101a上的执行。
[0043] 如所描绘的,vGPU 106包括在子分区104的用户模式中执行的用户模式驱动器 106a以及在子分区104的内核模式中执行的内核模式驱动器109。用户模式驱动器106a 展示至少一个呈现框架的设备驱动器接口( "DDI"),包括与计算着色器(GPGPU)功能性 有关的DDI,如计算着色器DDI 107所描绘的。计算着色器DDI 107使访客软件105能够为 GPGPU计算的性能调用vGPU 106。
[0044] 在一些实施例中,用户模式驱动器106b展示支持计算着色器功能性(例如,来自 Microsoft?公司的DirectX?版本10和/或版本11)的呈现框架的DDI。例如,在用户模 式驱动器106a展示DirectX?版本10和版本11的计算着色器功能性的实施例中,用户模 式驱动器106a可展示以下DDI中的一个或多个作为计算着色器DDI 107的一部分:
[0045] PFND3D11DDI_SETSHADER_WITH_IFACES pfnCsSetShaderffithlfaces
[0046] PFND3D10DDI_SETSHADER pfnCsSetShader
[0047] PFND3D10DDI_SETSHADERRES0URCES pfnCsSetShaderResources
[0048] PFND3D10DDI_SETSAMPLERS pfnCsSetSamplers
[0049] PFND3D10DDI_SETC0NSTANTBUFFERS pfnCsSetConstantBuffers
[0050] PFND3D11DDI_SETUN0RDEREDACCESSVIEWS pfnCsSetUnorderedAccessViews
[0051] 在一些实施例中,用户模式驱动器106b呈现支持计算着色器功能性(例如, DirectX?版本11)的呈现框架的所有DDI,诸如与域着色器、外壳着色器或几何着色器中 的一个或多个有关的DDI。然而,用户模式驱动器106b可展示来自支持计算着色器功能性 的任何呈现框架的任何DDI集合。
[0052] 在一些实施例中,vGPU 106还可包括在子分区104的用户模式中执行的传统用户 模式驱动器106b。传统用户模式驱动器106b可展示一个或多个呈现框架的传统版本的 DDI。例如,传统用户模式驱动器106b可支持DirectX?的传统版本(例如,DirectX?版本 9)或者任何其他呈现框架(例如,来自硅谷图形公司的OpenGL·?)的传统版本。
[0053] -般而言,用户模式驱动器106a被配置成构建硬件上下文和命令缓冲器。具体而 言,用户模式驱动器l〇6a将访客软件105 (或访客软件105的图形运行时105a)发出的图 形命令转换成硬件专用命令。例如,用户模式驱动器l〇6a可使用计算着色器从访客软件 105接收关于GPGPU计算的图形命令115。用户模式驱动器106a被配置成把图形命令115 转换成硬件专用命令(即,物理GPU 101a专用的命令)。作为转换的一部分,用户模式驱动 器106a为物理GPU 101a保留合适的硬件上下文。例如,用户模式驱动器106a把用于设置 影响图形流水线的逻辑值变换成值以及对应的物理设置。用户模式驱动器l〇6a还被配置 成在命令缓冲器116中存储经转换的硬件专用命令以及向内核模式驱动器109发送命令缓 冲器115。
[0054] 此外,vGPU 106包括在子分区104的内核模式中执行的内核模式驱动器109,该内 核模式驱动器109包括计算着色器组件110。内核模式驱动器109被配置成接收命令缓冲 器(例如,命令缓冲器116),以及构建对应的直接存储器存取("DMA")缓冲器。当要处理 DMA缓冲器时,GPU调度器调用内核模式驱动器109。内核模式驱动器109随后处理向物理 GPU 101a实际提交DMA缓冲器的规范。
[0055] 图2A解说用于向在准虚拟化执行环境的子分区中执行的访客应用提供GPU加速 的计算功能性的示例方法200a的流程图。方法200a将参考计算机架构100a的组件和数 据来描述。
[0056] 方法200a包括实例化虚拟机会话的动作,包括对提供(i)具有对物理GPU的访问 的根分区以及(ii)执行访客应用的子分区的系统管理程序进行实例化(动作201)。例如, 作为实例化虚拟机会话的一部分,计算环境l〇〇a可实例化系统管理程序102。系统管理程 序102提供根分区103和子分区104。根分区103具有对物理GPU 101a的访问。子分区 104执行一个或多个访客应用(包括访客应用105),并且具有对物理GPU 101a的间接访问。
[0057] 方法200a还包括向访客应用呈现vGPU的动作,vGPU在子分区中执行,包括向访 客应用呈现多个计算着色器DDI作为vGPU的UMD的一部分,该多个计算着色器DDI提供使 访客应用能够向vGPU发送计算着色器命令以供在物理GPU处使用计算着色器来执行GPGPU 计算的API (动作202)。例如,子分区104可向访客软件105呈现vGPU 106。vGPU 106包括 用户模式驱动器l〇6a。用户模式驱动器106a呈现计算着色器DDI 107,计算着色器DDI 107 使访客软件105能够调用vGPU 106在物理GPU 101a处执行计算着色器GPGPU计算。例如, 访客软件105 (或图形运行时105a)可为物理GPU 101a处GPGPU计算的性能向vGPU 106发 送图形命令115。
[0058] 用户模式驱动器106a把收到的图形命令115转换成物理硬件专用命令(例如,作 为命令缓冲器116的一部分)。vGPU 106随后将计算着色器命令和数据117 (包括物理硬件 专用命令)远程传输到呈现组件112。
[0059] 方法200a还包括在根分区中执行的呈现组件从vGPU接收物理GPU专用计算着色 器命令的动作(动作203)。例如,在根分区103中执行的呈现组件112可从vGPU 106接收 包括物理GPU专用计算着色器命令的计算着色器命令和数据117。
[0060] 方法200还包括呈现组件调度物理GPU专用计算着色器命令以供在物理GPU处执 行的动作(动作204)。例如,计算着色器组件113可调度收到的物理GPU专用计算着色器 命令以供在物理GPU 101a处的计算着色器设备上执行。通过这样做,计算着色器组件113 可以配置并维持适当的上下文以供物理GPU专用计算着色器命令的执行。
[0061] 准虚拟化的⑶I加谏
[0062] 除了提供访客软件对物理GPU 101a的准虚拟化计算着色器访问(即,GPGPU计算 能力)以外,实施例涉及提供访客软件在物理GPU处的准虚拟化的GDI加速。图1B解说通 过物理GPU硬件启用准虚拟化GDI加速的替换计算机架构100b。因此,与用物理或虚拟中 央处理单元来处理GDI命令相反,计算架构100b使用物理GPU使访客软件能够请求GDI命 令加速。
[0063] 在子分区104'中,计算架构100b提供使⑶I命令当这些命令被访客软件105'发 出时能够在物理GPU 101a'上加速呈现的组件。如所描绘的,例如,子分区104'包括⑶I接 口 108,⑶I接口 108被配置成与图形运行时105a'通信(例如,作为访客操作系统一部分 的图形运行时)。此外,vGPU 106'被配置成处理在内核模式驱动器109'的⑶I组件111处 从⑶I接口 108收到的⑶I加速命令120。
[0064] ⑶I接口 108被配置成向图形运行时105'展示一个或多个⑶I命令接口,以及向 vGPU'的内核模式驱动器109'转发从图形运行时105a'收到的⑶I加速命令。因此,应访 客软件105'的请求,使图形运行时105a'能够经由⑶I接口 108向vGPU 106'的内核模式 驱动器109'发送⑶I加速图形命令120以加速⑶I命令在物理GPU 101a'处的执行。
[0065] 内核模式驱动器109'的⑶I组件111被配置成实现一个或多个⑶I命令接口,连 同对应的硬件呈现操作。在一些实施例中,vGPU 106'实现并展示与DirectX?的特定版本 (例如,DirectX?版本10和/或版本11)相对应的⑶I命令。例如,⑶I组件111可展示 并实现'DxgkDdiRenderKm'接口,连同对应的硬件呈现操作。尽管⑶I组件111可实现任 何适当的⑶I操作,在一些实施例中,⑶I组件111实现以下操作:
[0066]

【权利要求】
1. 在包括一个或多个处理器以及系统存储器的计算机系统处,所述计算机系统还包括 物理图形处理单元("GPU"),一种用于向在准虚拟化执行环境的子分区中执行的访客应用 提供GPU加速的计算功能的方法,所述方法包括: 实例化虚拟机会话的动作,包括对提供(i)具有对所述物理GPU的访问的根分区以及 (ii)执行所述访客应用的子分区的系统管理程序进行实例化; 向所述访客应用呈现虚拟化图形处理单元("vGPU")的动作,所述vGPU在所述子分 区中执行,包括向所述访客应用呈现多个计算着色器设备驱动器接口( "DDI")作为所述 vGPU的用户模式驱动器("UMD")的一部分,所述多个计算着色器DDI提供使所述访客应 用能够向所述vGPU发送计算着色器命令以供在所述物理GPU处使用计算着色器来执行通 用图形处理单元("GPGPU")计算的应用编程接口;以及 在所述根分区中执行的呈现组件从所述vGPU接收物理GPU专用计算着色器命令的动 作;以及 所述呈现组件调度所述物理GPU专用计算着色器命令以供在所述物理GPU处执行的动 作。
2. 如权利要求1所述的方法,其特征在于,所述UMD把从所述访客应用收到的任何计算 着色器命令转换成对应的物理GPU专用计算着色器命令并且在命令缓冲器中存储所述对 应的物理GPU专用计算着色器命令。
3. 如权利要求1所述的方法,其特征在于,所述向访客应用呈现所述vGPU的动作包括 呈现包括内核模式驱动器("KMD")的vGPU的动作,所述KMD被配置成从所述命令缓冲器 构建直接存储器存取缓冲器。
4. 如权利要求3所述的方法,其特征在于,所述KMD被配置成实现对图形设备接口 ("⑶I")加速呈现命令的支持。
5. 如权利要求4所述的方法,其特征在于,通过KMD对GDI加速呈现命令的支持使得能 够创建计算着色器合成设备。
6. 如权利要求1所述的方法,其特征在于,所述呈现组件使用所述根分区中的计算着 色器合成设备来执行所述物理GPU专用计算着色器命令。
7. 在包括一个或多个处理器以及系统存储器的计算机系统处,所述计算机系统还包括 物理图形处理单元("GPU"),一种用于向在准虚拟化执行环境的子分区中执行的访客应用 提供GPU加速的图形设备接口( "GDI")功能性的方法,所述方法包括: 实例化虚拟机会话的动作,包括对提供(i)具有对所述物理GPU的访问的根分区以及 (ii)执行所述访客应用的子分区的系统管理程序进行实例化; 向所述访客应用呈现虚拟化图形处理单元("vGPU")的动作,所述vGPU在所述子分区 中执行,包括向所述vGPU呈现使访客操作系统能够加速由所述访客应用使用的加速图形 设备接口( "GDI")呈现命令的所述vGPU的内核模式驱动器("KMD")的应用编程接口以 供被所述vGPU的KMD处理; 在所述根分区中执行的呈现组件从所述vGPU接收GDI加速呈现命令的动作;以及 所述呈现组件调度所述根分区中GDI合成设备上的GDI加速呈现命令的动作,所述GDI 合成设备被配置成在所述物理GPU处执行所述GDI加速呈现命令,所述GDI合成设备还被 配置成把和所述GDI加速呈现命令对应的GDI表面标记为桌面可共享合成。
8. 如权利要求7所述的方法,其特征在于,所述vGPU的用户模式驱动器("UMD")被 配置成向所述访客应用提供对多个设备驱动器接口("DDI")的访问,所述多个DDI中的至 少一些对在所述物理GPU处提供对计算着色器的功能性的至少一个应用访问是有用的。
9. 如权利要求8所述的方法,其特征在于,所述GDI加速呈现命令作为所述计算着色器 在物理GPU处使用的一部分是有用的。
10. 如权利要求8所述的方法,其特征在于,所述UMD在所述子分区的用户模式中执行。
11. 如权利要求8所述的方法,其特征在于,所述KMD在所述子分区的内核模式中执行。
12. 如权利要求8所述的方法,其特征在于,所述UMD把从所述访客应用收到的图形命 令转换成对应的硬件专用计算着色器命令并且在命令缓冲器中存储所述对应的硬件专用 计算着色器命令。
13. 如权利要求8所述的方法,其特征在于,所述KMD从所述命令缓冲器构建直接存储 器存取缓冲器。
14. 如权利要求8所述的方法,其特征在于,所述UMD包括使得能够呈现与包括计算着 色器的呈现框架对应的所有DDI的新UMD,其包括还包括域着色器、外壳着色器或几何着色 器中一个或多个的呈现框架。
15. -种供在计算机系统处使用的计算机程序产品,所述计算机程序产品用于实现一 种向在准虚拟化执行环境的子分区中执行的访客应用提供GPU加速的计算功能性的方法, 所述计算机程序产品包括其上存储有计算机可执行指令的一个或多个计算机存储介质,当 所述计算机可执行指令在处理器处被执行时使得所述计算机系统执行所述方法,所述方法 包括以下: 实例化虚拟机会话,包括对提供(i)具有对所述物理GPU的访问的根分区以及(ii)执 行所述访客应用的子分区的系统管理程序进行实例化; 向所述访客应用呈现虚拟化图形处理单元("vGPU),所述vGPU在所述子分区中执行, 包括: 向所述访客应用呈现多个计算着色器设备驱动器接口( "DDI")作为所述vGPU的用 户模式驱动器("UMD")的一部分,所述多个计算着色器DDI提供使所述访客应用能够向所 述vGPU发送计算着色器命令以供在所述物理GPU处使用计算着色器来执行通用图形处理 单元("GPGPU")计算的应用编程接口;以及 向所述vGPU呈现使访客操作系统能够加速由所述访客应用使用的图形设备接口 ("⑶I")呈现命令的所述vGPU的内核模式驱动器("KMD")的应用编程接口以供至少被 所述vGPU的KMD处理; 从在所述根分区中执行的呈现组件处的所述vGPU接收至少一个物理GPU专用计算着 色器命令和/或至少一个GDI加速呈现命令中的一者或两者; 调度物理GPU专用计算着色器命令以供在所述物理GPU处执行;以及 调度所述根分区中GDI合成设备上的GDI加速呈现命令,所述GDI合成设备被配置成 在所述物理GPU处执行⑶I加速呈现命令,所述⑶I合成设备还被配置成把和所述⑶I加 速呈现命令对应的GDI表面标记为桌面可共享合成。
【文档编号】G06T15/00GK104067230SQ201380005836
【公开日】2014年9月24日 申请日期:2013年1月10日 优先权日:2012年1月17日
【发明者】M·P·马拉卡帕利, H·张, L·谭 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1