基于Hypervisor的GPU虚拟化方法、装置及电子设备制造方法及图纸

技术编号:35551955 阅读:18 留言:0更新日期:2022-11-12 15:32
本公开涉及一种基于Hypervisor的GPU虚拟化方法、装置及电子设备,所述方法包括接收多个虚拟机向GPU控制模块发起的访问请求;计算所述多个虚拟机的配额比值差;选择配额比值差最大的访问请求进行授权,以使所述配额比值差最大的访问请求优先被所述GPU执行。上述方案用于解决现有技术中存在的GPU虚拟化技术存在效率低、占用CPU时间、无法拓展等问题。该方案能灵活地对虚拟机数量,GPU优先级等资源进行配置,灵活性较强,除了和Hypervisor的GPU控制模块交互,没有额外的CPU开销,CPU利用率较高,可以接近物理GPU的性能。可以接近物理GPU的性能。可以接近物理GPU的性能。

【技术实现步骤摘要】
基于Hypervisor的GPU虚拟化方法、装置及电子设备


[0001]本公开涉及信息处理领域,具体地,涉及一种基于Hypervisor的GPU虚拟化方法、装置及电子设备。

技术介绍

[0002]GPU(graphics processing unit,图形处理器),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。GPU在UI(User Interface,用户界面)显示和游戏娱乐上发挥着不可替代的作用。
[0003]GPU的工作方式主要是由驱动层或者用户态将API(Application Programming Interface,应用程序编程接口)命令(如:OPENGL,VULKAN等)以及状态编码成硬件可以识别的任务,再提交到硬件进行执行。
[0004]Hypervisor (Virtual Machine Monitor,虚拟机监视器)是一种运行其他操作系统的虚拟化技术。虚拟化技术可以将一块芯片虚拟化成多块芯片,芯片上可以运行多个不同的操作系统,也被称之为虚拟机,以满足不同的场景需要。同时,虚拟化技术又有着提高芯片利用率,降低成本的好处。因此,虚拟化技术在信息技术的多个领域都发挥着至关重要的作用。
[0005]虽然虚拟化技术能带来上述诸多好处,但是仅仅相同构架下的CPU和内存有着相同的虚拟化技术实现,对于不同的外设并没有一个统一的虚拟化技术标准。外设虚拟化的目的是为了让多个虚拟机都能使用同一个外部设备,很多时候某些外设是不能被虚拟化的,这种外设只能被单独分配给某一个虚拟机,使虚拟机对其独占。
[0006]由于GPU在各种场景中都能发挥作用,因此也提出了一些GPU虚拟化技术,使得多个虚拟机都有使用GPU计算的能力。但是这些技术或多或少都存在各种局限,例如:API转发技术,这种技术只有一个实体占有GPU访问权限,其它虚拟机如果要使用GPU,会将每个API转发给占用GPU的实体,让其代为访问GPU。这种方法的缺点是每个API都需要转发,效率太低。
[0007]代理技术,这种技术只有一个实体占有GPU访问权限,实现有virglrenderer等。其它虚拟机如果要访问GPU,会对所有API和相关状态进行编码,然后统一传输给占用GPU的实体,该实体解码后恢复成API提交给GPU。这种方法的优点是减少的转发的次数。缺点是利用CPU编解码API和状态,占用CPU时间,虚拟机GPU损耗较大。
[0008]GPU硬件虚拟化,某些厂商对GPU硬件实现了硬件虚拟化,其在GPU硬件上设计了多组资源。每个虚拟机可以通过一组资源提交GPU任务。硬件会自动对收到的GPU任务排序执行或者直接给每组资源分配GPU时间片以便执行GPU任务。这种方式避免了前面两种方式的缺点,但是资源组的划分以及优先级设定,时间片划分等操作是厂商固定的,无法拓展,且该方式需要硬件层面的功能支撑。
[0009]可见,现有的GPU虚拟化技术存在效率低、占用CPU时间、无法拓展等问题。

技术实现思路

[0010]本公开的目的是提供一种基于Hypervisor的GPU虚拟化方法、装置及电子设备,用于解决现有技术中存在GPU虚拟化技术存在效率低、占用CPU时间、无法拓展等问题。
[0011]为了实现上述目的,本公开第一方面提供一种基于Hypervisor的GPU虚拟化方法,所述方法包括:接收多个虚拟机向GPU控制模块发起的访问请求;计算每个虚拟机的当前配额比值和预定配额比值的差;选择配额比值差最大的访问请求进行授权,以使配额比值差最大的访问请求优先被所述GPU执行。
[0012]可选的,选择配额比值差最大的访问请求进行授权,以使所述配额比值差最大的访问请求优先被所述GPU执行,包括:通知提交所述配额比值差最大的访问请求的目标虚拟机,由所述目标虚拟机访问所述GPU,以使所述配额比值差最大的访问请求优先被所述GPU执行。
[0013]可选的,所述方法还包括:所述GPU控制模块监测所述目标虚拟机访问所述GPU完成后的通知;若在预设时长内,未监测到所述通知,则确定所述目标虚拟机超时使用所述GPU;并在确定所述目标虚拟机超时后,对所述目标虚拟机进行清理,对所述GPU复位。
[0014]可选的,选择配额比值差最大的访问请求进行授权,以使所述配额比值差最大的访问请求优先被所述GPU执行,包括:基于封装在所述配额比值差最大的访问请求中的访问操作,由所述GPU控制模块访问所述GPU,以使所述配额比值差最大的访问请求优先被所述GPU执行。
[0015]可选的,所述方法还包括:所述GPU控制模块向所述配额比值差最大的访问请求对应的目标虚拟机发送访问结果;或所述配额比值差最大的访问请求对应的目标虚拟机在被授权后自行访问所述GPU获取访问结果。
[0016]可选的,所述多个虚拟机发起的访问请求的配额比值差根据预设的虚拟机GPU优先级、预设的虚拟机GPU时间片和虚拟机的GPU任务执行时间中的一种或多种计算得到。
[0017]可选的,所述虚拟机发起的访问请求包括提交GPU任务、映射GPU内存、访问GPU状态、设置GPU状态中的一种或多种。
[0018]可选的,所述方法通过GPU驱动程序中最靠近硬件层面的程序实现。
[0019]本公开第二方面提供一种基于Hypervisor的GPU虚拟化装置,包括:接收模块,用于接收多个虚拟机向GPU控制模块发起的访问请求;GPU控制模块,用于计算当前虚拟机的配额比值和预定配额比值的差值;并选择配额比值差最大的访问请求进行授权,以使配额比值差最大的访问请求优先被所述GPU执行。
[0020]本公开第三方面提供一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述方法的步骤。
[0021]本公开第四方面提供一种电子设备,包括:存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面所述方法的步骤。
[0022]本公开实施例中,在Hypervisor中通过GPU控制模块对每个虚拟机的GPU时间进行分时管理,提供分时管理算法确保不同虚拟机对GPU使用的优先级,在实现GPU虚拟化的同时,解决了上述现有技术中存在的,GPU虚拟化技术存在效率低、占用CPU时间、无法拓展的技术问题。本公开实施例的方案在软件层面实现,即GPU虚拟化是在Hypervisor里面纯软件实现的,不需要硬件虚拟化功能支撑,通用性较强。并且,该方案实现于Hypervisor和虚拟机操作系统驱动层,使得用户态不用修改,能完美兼容用户态生态,减少用户态移植成本,降低用户态软件开发周期,同时可以做到性能最优。
[0023]进一步,该方案能灵活地对虚拟机数量,GPU优先级等资源进行配置,灵活性较强。除了和Hypervisor的GPU控制模块交互,没有额外的CPU开销,CPU利用率较高,可以接近物理GPU本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Hypervisor的GPU虚拟化方法,其特征在于,所述方法包括:计算给每个虚拟机的预定配额比值;接收多个虚拟机向GPU控制模块发起的访问请求;计算每个虚拟机当前的配额比值,选择配额比值差最大的访问请求进行授权,以使所述配额比值差最大的访问请求优先被所述GPU执行。2.如权利要求1所述的方法,其特征在于,选择配额比值差最大的访问请求进行授权,以使所述配额比值差最大的访问请求优先被所述GPU执行,包括:通知提交所述配额比值差最大的访问请求的目标虚拟机,由所述目标虚拟机访问所述GPU,以使所述配额比值差最大的访问请求优先被所述GPU执行。3.如权利要求2所述的方法,其特征在于,所述方法还包括:所述GPU控制模块监测所述目标虚拟机访问所述GPU完成后的通知;若在预设时长内,未监测到所述通知,则确定所述目标虚拟机超时使用所述GPU;并在确定所述目标虚拟机超时后,对所述目标虚拟机进行清理,对所述GPU复位。4.如权利要求1所述的方法,其特征在于,选择配额比值差最大的访问请求进行授权,以使所述配额比值差最大的访问请求优先被所述GPU执行,包括:基于封装在所述配额比值差最大的访问请求中的访问操作,由所述GPU控制模块访问所述GPU,以使所述配额比值差最大的访问请求优先被所述GPU执行。5.如权利要求4所述的方法,其特...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:中瓴智行成都科技有限公司
类型:发明
国别省市:

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

1