优化可扩展GPU虚拟化的系统、装置和方法制造方法及图纸

技术编号:18237572 阅读:78 留言:0更新日期:2018-06-17 00:42
本发明专利技术公开了一种优化可扩展GPU虚拟化的方法,包括:为每个vGPU提供私有影子图形转换表GTT;连同上下文切换将vGPU的私有影子GTT复制到物理GTT,其中所述私有影子GTT允许vGPU共享重叠范围的全局图形存储器空间。 1

System, device and method for optimizing extensible GPU virtualization

The present invention discloses a method for optimizing extensible GPU virtualization, including: providing private shadow graphics conversion table GTT for each vGPU; copying the private shadow GTT of vGPU to physical GTT with context switching, in which the private shadow GTT allows vGPU to share a global graphical memory space of overlapping range. One

【技术实现步骤摘要】
优化可扩展GPU虚拟化的系统、装置和方法
本专利技术一般涉及计算机处理器,尤其涉及优化可扩展GPU虚拟化的系统、装置和方法。
技术介绍
图形处理单元(GPU)在云计算中发挥着不可替代的作用,因为GPU能高效地加速诸如2D和3D渲染之类的某些工作负载的计算。随着越来越多的GPU密集型工作负载被部署在云端,云服务器提供商引入一种新的计算范式,称为GPU云,以满足对GPU资源的高需求,例如,亚马逊EC2GPU实例和阿里云GPU服务器。作为GPU云的关键实现技术中的一种,GPU虚拟化旨在为多个实例提供高性能的灵活且可扩展(scalable)的GPU资源。为了实现这一具有挑战性的目标,已经引入若干GPU虚拟化解决方案,例如GPUvm和gVirt。gVirt也称为GVT-g,是一种完全虚拟化解决方案,对英特尔图形处理器具有适中的直通支持。在每个虚拟机VM中,利用本机图形驱动器运行,维持虚拟GPU(vGPU)实例以提供直接分配的性能关键资源,因为在性能关键路径上没有虚拟机监控程序(hypervisor)干预。因此,其在性能、特性和共享能力之间优化资源。对于虚拟化方案,可扩展性是一种不可替代的特性,它通过在云服务器上主存密集的VM实例来确保高资源利用率。尽管gVirt成功实施GPU虚拟化,然而它遭受放大vGPU实例的数量的问题。当前版本的gVirt仅支持一个物理英特尔GPU上3个虚拟机vGPU实例,这将虚拟机VM实例的数量限制到3个。相反,CPU虚拟化技术(例如,Xen4.6虚拟机VM支持高达256个vCPU)被充分实现,以便开发其潜能。GPU与类似CPU之类的其它资源的可扩展性之间的不匹配必然减少VM实例的数量。另外,高可扩展性能够提高资源合并。GPU工作负载在GPU利用率上显著波动。gVirt的这种低可扩展性将导致严重的GPU资源利用不足。如果更多的虚拟机VM能够被合并到单个宿主机,则云服务提供商具有更多的机会在具有不同工作负载模式的VM之间复用GPU能力(例如,调度GPU密集或空闲模式的VM),从而能够提高GPU的物理资源使用率。
技术实现思路
本文描述了优化可扩展GPU虚拟化的各种实施方式。在某些实施方式中,提供一种优化可扩展GPU虚拟化的方法,包括:为每个vGPU提供私有影子图形转换表GTT;连同上下文切换将vGPU的私有影子GTT复制到物理GTT,其中所述私有影子GTT允许vGPU共享重叠范围的全局图形存储器空间。应该理解,上述简要描述和以下的详细描述对各个实施例进行了说明并且旨在提供理解要求保护的主题的特性和特点的概览或框架。附图用于提供对各实施例的进一步的理解,并且构成说明书的一部分。附图示出了本文描述的各个实施例,与说明书一起解释要求保护的主题的原理和操作。附图说明图1示出图形转换表GTT的一个实施例的框图。图2示出gScale的架构的一个实施例的框图。图3示出静态共享影子GTT和gScale的动态私有影子GTT。图4示出共享全局图形存储器空间的高地址部分的实施例。图5示出常规映射和阶梯映射。图6示出栅栏寄存器存储器空间池工作的流程。图7示出物理全局图形存储器空间的布局的实施例。图8示出使用细粒度分区片的物理全局图形存储器空间的布局的示例。图9示出gScale如何通过预测GTT复制减少总的执行时间。图10示出gScale主控的LinuxVM的2D和3D性能。图11示出Windows中gScale的可扩展性。图12示出gScale与gVirt的性能比较。图13示出具有或不具有预测GTT复制以及考虑到预测复制机制的调度的gScale之间的Linux3D性能比较。图14示出具有或不具有预测GTT复制以及考虑到预测复制机制的调度的gScale之间的3D性能比较。图15示出私有影子GTT的开销。图16示出WindowsVM的混合测试。具体实施方式在以下的描述中,为了解释的目的,阐述了众多特定细节,以提供对本案的实施例的透彻理解。然而,本领域的技术人员将认识到可在没有一个或多个特定细节的情况下或者与其它替换和/或附加方法、材料或组件一起实施各实施例。在其它情形中,未示出或未详细描述公知的结构、材料或操作以免使本专利技术的各实施例的诸方面晦涩。由类似OpenGL和DirectX的高级编程API驱动,图形驱动器产生GPU命令至初级缓冲器和批量缓冲器中,同时GPU相应地消耗该命令。初级缓冲器也称为环形缓冲器,被设计成传递具有环形结构的初级命令,但初级缓冲器的尺寸是有限的。为了补偿空间不足,将批量缓冲器链接到初级缓冲器以传递大部分GPU命令。GPU命令由CPU产生并且批量地从CPU传送到GPU。为了确保在CPU产生命令后GPU消耗这些命令,在初级缓冲器中利用两个寄存器实现通知机制。当CPU完成命令放置时,更新尾部寄存器,它将通知GPU在初级缓冲器中获取命令。当GPU完成处理所有的命令时,它写头部寄存器以向CPU通知到来的命令。图1是图形转换表(Graphicstranslationtable,GTT)的一个实施例的框图。图形转换表160有时也被称为全局图形转换表,它是一种页表,提供从逻辑图形存储器地址到物理存储器地址的转换,如图1所示。由GTT160服务的物理存储器空间被称为全局图形存储器空间,它由诸如渲染引擎和显示引擎之类的所有的GPU组件使用,。根据GPU的架构,GTT是驻留在MMIO(存储器映射的输入/输出)范围的GPU的唯一的全局寄存器。CPU不直接访问全局图形存储器空间。然而,入口(Aperture)130也是MMIO范围,通过入口130,CPU110也能访问全局图形存储器空间。全局图形存储器的该CPU可见部分被称为全局图形存储器的低地址部分140,而其余的部分被称为全局图形存储器的高地址部分(GM的高地址部分)或隐藏的全局图形存储器(隐藏的GM)150。注意,GM的低地址部分140和孔130之间的映射由硬件直接设定。在一些实施例中,GPU180具有2MBGTT,它映射到2GB图形存储器空间。入口范围最大可以是512KB,它映射到CPU110可见的512MB图形存储器空间。因此,GM的低地址部分140是512MB,而GM的高地址部分150是1536MB。除了图形转换表160,存在另一种类型的GPU页表,称为每个进程的图形转换表(PPGTT),它向每个进程提供自身的本地图形存储器空间。与GTT不同,PPGTT驻留在主存储器中。有时,GPU180也使用一组栅栏寄存器来访问全局图形存储器,每个GPU180可仅局域32个栅栏寄存器。本专利技术的实施例给出gScale,一种实用、高效且可扩展的GPU虚拟化方案。为了增加vGPU实例的数量,gScale针对gVirt的瓶颈设计,并且引入全局图形存储器空间的动态共享方案。gScale向每个vGPU实例提供私有影子图形转换表(GTT),以打破全局图形存储器空间的限制。gScale连同上下文切换将vGPU的私有影子GTT复制到物理GTT。私有影子GTT允许vGPU共享重叠范围的全局图形存储器空间,这是gScale的核心设计。然而,进行全局图形存储器空间共享是不简单的,因为全局图形存储器空间对于CPU和GPU都是可访问的。gScale实现新颖的阶梯映射机制和栅栏寄存器存储器空间池,本文档来自技高网
...
优化可扩展GPU虚拟化的系统、装置和方法

【技术保护点】
1.一种优化可扩展GPU虚拟化的方法,包括:

【技术特征摘要】
1.一种优化可扩展GPU虚拟化的方法,包括:为每个vGPU提供私有影子图形转换表GTT;连同上下文切换将vGPU的私有影子GTT复制到物理GTT,其中所述私有影子GTT允许vGPU共享重叠范围的全局图形存储器空间。2.如权利要求1所述的方法,其特征在于,所述全局图形存储器空间包括全局图形存储器空间的低地址部分和全局图形存储器空间的高地址部分,所述方法还包括:通过使用阶梯映射和栅栏寄存器存储器空间池在所有的vGPU之间共享全局图形存储器空间的低地址部分;将所述全局图形存储器空间的高地址部分分成若干区片;以及将一个或多个vGPU部署在一个区片中。3.如权利要求1所述的方法,其特征在于,还包括:不对空闲vGPU实例进行上下文切换;以及不从空闲vGPU的私有影子GTT向物理GTT复制条目。4.如权利要求1所述的方法,其特征在于,还包括:将所述全局图形存储器空间的高地址部分分成若干子区片,每个vGPU占据数个相邻的子区片。5.如权利要求4所述的方法,其特征在于,第一vGPU占据第一多个连续子区片,而第二vGPU占据第二多个连续子区片,所述第一多个连续子区片与第二多个连续子区片相同、至少部分重叠、相邻或分离。6.如权利要求2所述的方法,其特征在于,还包括:根据历史记录投票预测下一时间片哪个VM即将运行;以及如果调度序列中相邻的vGPU未被部署在同一区片中,则在前一vGPU仍占据GPU的同时,将下一vGPU的影子GTT复制到其对应的区片中,以缩短上下文切换时间。7.如权利要求2所述的方法,其特征在于,还包括:安排多个区片上的vGPU的上下文切换序列。8.如权利要求7所述的方法,其特征在于,安排多个区片上的vGPU的上下文切换序列还包括:a)在所有的区片中找出具有最大数量vGPU的第一区片;b)从第一区片弹出一个vGPU;c)在剩余的区片中找出具有最大数量vGPU的第二区片;d)从第二区片中弹出一个vGPU;e)将弹出的vGPU插入OutputVmList,所述OutputVmList指示一个循环的调度序列;f)返回步骤a)并重复步骤a)至步骤e)。9.如权利要求8所述的方法,其特征在于,安排多个区片上的vGPU的上下文切换序列还包括:如果所有的其它区片均先弹光它们的vGPU而最后一个区片中的一些vGPU未被弹出,则将最后一个区片中的所有剩余的VM插入OutputVmList。10.一种优化可扩展GPU虚拟化的装置,包括:一个或多个虚拟机...

【专利技术属性】
技术研发人员:马嘉诚管海兵戚正伟陈勇彪
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海,31

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

1