多系统中GPU设备的控制方法、装置及电子设备与流程

文档序号:17263346发布日期:2019-03-30 09:49阅读:173来源:国知局
多系统中GPU设备的控制方法、装置及电子设备与流程

本申请涉及数据处理技术领域,具体而言,本申请涉及一种多系统中gpu设备的控制方法、装置及电子设备。



背景技术:

随着多系统设备的发展,为实现多系统对gpu设备的利用,相关技术中,一般是通过对真实的gpu设备具有使用权的操作系统(即主控系统)运行模拟软件,并将模拟得到的gpu设备提供给其他操作系统使用。

然而通过主控系统进行模拟以实现向多系统提供gpu设备的方式,不仅消耗主控系统的计算和存储资源,还会导致不同操作系统在切换中的延迟问题,从而失去gpu加速效果优势,进而影响真实的gpu设备无法实现在不同操作系统间的动态切换。



技术实现要素:

本申请提供了一种多系统中gpu设备的控制方法、装置及电子设备,可以解决上述至少一个技术问题。所述技术方案如下:

第一方面,本申请提供了一种多系统中gpu设备的控制方法,该方法包括:

检测到第一操作系统与第二操作系统间的切换请求时,中断第一操作系统对真实图像处理器gpu设备的控制,并通过快照技术创建gpu设备快照;

根据gpu设备快照进行模拟得到模拟gpu设备,并将模拟gpu设备提供至第一操作系统;

将真实的gpu设备提供给第二操作系统,以完成真实的gpu设备从第一操作系统至第二操作系统的切换。

第二方面,本申请提供了一种多系统中gpu设备的控制装置,该装置包括:

系统切换检测模块,用于检测到第一操作系统与第二操作系统间的切换请求时,中断第一操作系统对真实的图像处理器gpu设备的控制,并通过快照技术创建gpu设备快照;

设备模拟处理模块,用于根据gpu设备快照进行模拟得到模拟gpu设备,并将模拟gpu设备提供至第一操作系统;

系统切换处理模块,用于将真实的gpu设备提供给第二操作系统,以完成真实gpu设备从第一操作系统至第二操作系统的切换。

第三方面,本申请提供了一种电子设备,电子设备包括:

一个或多个处理器;

存储器;

一个或多个应用程序,其中一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于:执行多系统中gpu设备的控制方法。

第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行多系统中gpu设备的控制方法。

本申请实施例提供的技术方案带来的有益效果是:检测到第一操作系统与第二操作系统间的切换请求,中断第一操作系统对真实的gpu设备的控制,同时通过快照技术创建gpu设备快照,以便根据gpu设备快照进行模拟得到模拟gpu设备,解决了现有技术利用第一操作系统进行gpu设备模拟而导致的计算消耗和资源存储问题;接着,将模拟gpu设备提供至第一操作系统,保证了第一操作系统在失去对真实的gpu设备控制后,能够利用模拟gpu设备继续提供服务,而将真实的gpu设备提供给第二操作系统,完成了真实的gpu设备从第一操作系统至第二操作系统的切换,实现了将真实的gpu设备在不同操作系统间进行动态切换的目的。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。

图1为本申请实施例提供的一种多系统中gpu设备的控制方法的流程示意图;

图2为本申请实施例提供的一种多系统中gpu设备的控制装置的结构示;

图3为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

首先对本申请涉及的几个名词进行介绍和解释:

图形处理器(英文graphicsprocessingunit,简称gpu),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。

快照技术是一种综合数据备份与数据恢复的技术手段,具有防范数据丢失的功能。可以实时对存储设备进行数据备份,因而在存储设备发生应用故障或者文件损坏时,能够根据备份的数据进行快速的数据恢复,将存储设备的数据恢复到某个可用的时间点的状态。

hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用访问服务器上包括磁盘和内存在内的所有物理设备。hypervisors不但协调着这些硬件资源的访问,也同时在各个虚拟机之间施加防护。当服务器启动并执行hypervisor时,它会加载所有虚拟机客户端的操作系统,同时会分配给每一台虚拟机适量的内存、cpu、网络和磁盘。

在运行多系统的同一硬件设备中,为了实现各操作系统对gpu设备的调用,当终端设备启动并执行hypervisor时,需要向各操作系统分配gpu设备。相关技术中,一般的做法是利用主控系统对真实的gpu设备进行模拟,将模拟得到的gpu设备进行分配,以实现多系统调用gpu设备的目的。然而这种方式,不仅模拟过程需要消耗计算和内存资源,并且会因调用模拟得到的gpu设备的操作系统带而产生调用延迟的问题,从而失去gpu加速效果。同时,gpu设备无法在各操作系统间进行动态切换。

本申请提供的多系统中gpu设备的控制方法、装置及电子设备,旨在解决现有技术的如上技术问题。

下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

实施例一

本申请实施例提供了一种多系统中gpu设备的控制方法,如图1所示,该方法包括:步骤s101至步骤s103。

其中,步骤s101、检测到第一操作系统与第二操作系统间的切换请求时,中断第一操作系统对真实的图像处理器gpu设备的控制,并通过快照技术创建gpu设备快照。

对于本申请实施例,在检测到第一操作系统与第二操作系统间的切换请求时,中断第一操作系统对真实的gpu设备的控制,并创建gpu设备快照,以便根据gpu设备快照进行模拟处理。

具体地,通过hypervisor执行本申请实施例提供的多系统中gpu设备的控制方法。

对于本申请实施例,应用本申请提供的方法的执行主体为电子设备,该电子设备中运行有多个操作系统,各操作系统都可以控制真实的gpu设备,利用hypervisor对电子设备中各操作系统进行管理。

具体地,第一操作系统处于前台时,第一操作系统控制真实的gpu设备,hypervisor检测到第一操作系统与第二操作系统间的切换请求时,即欲将第二操作系统切换到前台,hypervisor根据该切换请求中断第一操作系统对真实的gpu设备的控制,并利用快照技术创建gpu设备快照。

具体地,第一操作系统和第二操作系统都是电子设备上的操作系统,实际应用时,电子设备上的操作系统可以为win7系统、vista系统、linux系统等。

步骤s102、根据gpu设备快照进行模拟得到模拟gpu设备,并将模拟gpu设备提供至第一操作系统。

对于本申请实施例,gpu设备快照用于表征在第一操作系统中断对真实的gpu设备的控制的时间点的条件下的真实的gpu设备的状态。

对于本申请实施例,根据gpu设备快照进行模拟得到模拟gpu设备,以便将模拟gpu设备提供给第一操作系统,使第一操作系统在被中断对真实的gpu设备的控制后,能够控制并使用模拟gpu设备,继续通过模拟gpu设备提供服务。

步骤s103、将真实的gpu设备提供给第二操作系统,以完成真实gpu设备从第一操作系统至第二操作系统的切换。

对于本申请实施例,将真实的gpu设备提供给第二操作系统,目的在于完成真实的gpu设备在不同操作间的切换。

实际应用时,hypervisor将真实的gpu设备提供给第二操作系统,完成真实的gpu设备在不同操作间的切换。

本申请实施例检测到第一操作系统与第二操作系统间的切换请求时,中断第一操作系统对真实的gpu设备的控制,通过快照技术创建gpu设备快照,以便根据gpu设备快照进行模拟,得到模拟gpu设备,解决了现有技术利用第一操作系统进行gpu设备模拟而导致的计算消耗和资源存储问题。接着,将模拟gpu设备提供给第一操作系统,保证了第一操作系统在失去对真实的gpu设备控制后,能够继续利用模拟gpu设备继续提供服务,而将真实的gpu设备提供给第二操作系统,完成了真实的gpu设备从第一操作系统至第二操作系统的切换,实现了将真实的gpu设备在不同操作系统间进行动态切换的目的。

在另一个实施例中,步骤s101中中断第一操作系统对真实gpu设备的控制,包括步骤s1011(图中未示出),且步骤s102中将模拟gpu设备提供至第一操作系统之后,该方法包括:步骤s1021(图中未示出)。

其中,步骤s1011、控制预先提供给第一操作系统的虚拟cpu暂停工作,以停止第一操作系统通过提供给第一操作系统的虚拟cpu向真实gpu设备发送计算任务。

实际应用时,第一操作系统控制真实的gpu设备,第一操作系统能够通过提供给第一操作系统的虚拟cpu向真实的gpu设备发送计算任务,hypervisor检测到第一操作系统与第二操作系统间的切换请求时,hypervisor控制提供给第一操作系统的虚拟cpu暂停工作,此时,第一操作系统无法再发送新的计算任务,因而真实的gpu设备将不再接收第一操作系统发送的新的计算任务,从而实现中断第一操作系统对真实的gpu设备的控制的目的。

对于本申请实施例,通过控制提供给第一操作系统的虚拟cpu暂停服务,以保证真实的gpu设备无法再接收新的计算任务,以便在真实的gpu设备空闲时,hypervisor利用快照技术创建gpu设备快照,为后期得到模拟gpu设备提供真实的gpu设备的状态数据。

步骤s1021、控制提供给第一操作系统的虚拟cpu恢复工作,以使第一操作系统通过提供给第一操作系统的虚拟cpu向针对第一操作系统的模拟gpu设备发送计算任务。

实际应用时,hypervisor中断第一操作系统对真实的gpu设备的控制,并通过快照技术创建gpu设备快照,以根据gpu设备快照进行模拟得到模拟gpu设备,hypervisor将得到的模拟gpu设备提供给第一操作系统,控制提供给第一操作的虚拟cpu恢复工作,以便第一操作系统控制模拟gpu设备,从而使第一操作系统能够通过提供给第一操作系统的虚拟cpu向模拟gpu设备发送计算任务。

对于本申请实施例,通过将模拟gpu设备提供给第一操作系统,解决了第一操作系统在失去对真实的gpu设备的控制后,能够控制并利用模拟gpu设备,继续通过模拟gpu设备提供服务。

在又一个实施例中,步骤s101中通过快照技术创建gpu设备快照,包括:步骤s1012(图中未示出),且步骤s102中根据gpu设备快照进行模拟得到模拟gpu设备,包括步骤s1022(图中未示出)。

其中,步骤s1021、读取真实的gpu设备在空闲状态下的寄存器的数据,并依据读取到的寄存器的数据形成符合预定格式的gpu设备快照。

步骤s1022、根据符合预定格式的gpu设备的快照进行模拟,得到模拟gpu设备。

实际应用时,hypervisor利用快照技术读取真实的gpu设备在空闲状态下寄存器的数据,并依据读取到的寄存器的数据形成符合预定格式的gpu设备快照,以保证用于模拟的gpu设备快照符合模拟处理所要求的格式,从而得到模拟gpu设备。

在又一个实施例中,在检测到第一操作系统与第二操作系统间的切换请求前,第二操作系统由预先模拟得到的针对第二操作系统的模拟gpu设备提供计算服务;步骤s103中将真实gpu设备提供给第二操作系统,包括步骤s1031(图中未示出)。

其中,步骤s1031、中断第二操作系统对针对第二操作系统的模拟gpu设备的控制,并将真实的gpu设备提供给第二操作系统。

实际应用时,hypervisor控制预先提供给第二操作系统的虚拟cpu暂停工作,实现中断第二操作系统对模拟gpu设备a的控制的目的,hypervisor将真实的gpu设备提供给第二操作系统,hypervisor控制提供给第二操作系统的虚拟cpu恢复工作,以便第二操作系统控制真实的gpu设备,从而实现将真实的gpu设备在第一操作系统与第二操作系统间进行动态切换的目的。

进一步地,本申请实施例是利用hypervisor执行多系统中gpu设备的控制方法,因而在hypervisor被启动后,控制预设的gpu热模拟服务模块启动,以利用gpu热模拟服务模块对gpu设备快照进行模拟,得到模拟gpu设备。

本实施例通过gpu热模拟服务模块提供了模拟技术,实现了根据gpu设备快照进行模拟,以得到模拟gpu设备的目的,解决了现有技术利用主控系统,即对真实的gpu设备具有使用权的操作系统,对真实的gpu设备进行模拟而导致的计算消耗和存储资源的技术问题,从而保证了对真实的gpu设备的加速效果。

下面以应用本申请实施例提供的多系统中gpu设备的控制方法的执行主体为电子设备进行说明。假设电子设备中包括a操作系统和b操作系统。

启动过程:

电子设备开机后,hypervisor被启动后,hypervisor启动gpu热模拟服务模块。hypervisor启动a操作系统,并将真实的gpu设备提供给a操作系统,以便实现a操作系统控制并利用真实的gpu设备的目的。hypervisor控制提供给a操作系统的虚拟cpu暂停工作,以实现控制a操作系统停止向真实的gpu设备发送计算任务的目的。hypervisor控制提供给a操作系统的虚拟cpu暂停工作,利用快照技术创建gpu设备快照,hypervisor将gpu设备快照输入至gpu热模拟服务模块进行模拟,得到模拟gpu设备a后,hypervisor将模拟gpu设备a提供给a操作系统,hypervisor控制提供给a操作系统的虚拟cpu恢复工作。hypervisor启动b操作系统,将真实的gpu设备提供给b操作系统,b操作系统启动后实现利用真实的gpu设备的目的。到此完成电子设备中所有操作系统的启动。

b操作系统与a操作系统间的切换过程:

b操作系统向hypervisor发送切换请求,hypervisor检测到b操作系统切换为a操作系统的切换请求时,hypervisor控制提供给b操作系统的虚拟cpu暂停工作,hypervisor利用快照技术创建gpu设备快照,hypervisor将此处创建的gpu设备快照输入至gpu热模拟服务模块进行模拟,得到模拟gpu设备b后,hypervisor将模拟gpu设备b提供给b操作系统,hypervisor控制提供给b操作系统的虚拟cpu恢复工作,实现b操作系统使用模拟gpu设备b的目的。此时,a操作系统控制的为模拟gpu设备a,hypervisor控制提供给a操作系统的虚拟cpu暂停工作,并将真实的gpu设备提供给a操作系统,hypervisor控制提供给a操作系统的虚拟cpu恢复工作,以使a操作系统控制并使用真实的gpu设备,进而完成真实的gpu设备在b操作系统与a操作系统间的切换。

需要说明的是,本申请实施例中包括两个操作系统,实际应用时,操作系统的数量可以多于两个。实际应用时,电子设备不论是包括两个操作系统,还是包括多个操作系统,均需要参照本实施例中启动过程和切换过程,以保证在各操作系统中的一个操作系统对真实的gpu设备具有使用权的前提下,其他各操作系统都能由各自的模拟gpu设备提供服务。

实施例二

本申请实施例提供了一种多系统中gpu设备的控制装置,如图2所示,该多系统中gpu设备的控制装置20可以包括:系统切换检测模块201、设备模拟处理模块202以及系统切换处理模块203。

其中,系统切换检测模块201,用于检测到第一操作系统与第二操作系统间的切换请求时,中断第一操作系统对真实的图像处理器gpu设备的控制,并通过快照技术创建gpu设备快照;

设备模拟处理模块202,用于根据gpu设备快照进行模拟得到模拟gpu设备,并将模拟gpu设备提供至第一操作系统;

系统切换处理模块203,用于将真实的gpu设备提供给第二操作系统,以完成真实gpu设备从第一操作系统至第二操作系统的切换。

本申请实施例检测到第一操作系统与第二操作系统间的切换请求时,中断第一操作系统对真实的gpu设备的控制,通过快照技术创建gpu设备快照,以便根据gpu设备快照进行模拟,得到模拟gpu设备,解决了现有技术利用第一操作系统进行gpu设备模拟而导致的计算消耗和资源存储问题。接着,将模拟gpu设备提供给第一操作系统,保证了第一操作系统在失去对真实的gpu设备控制后,能够继续利用模拟gpu设备继续提供服务,而将真实的gpu设备提供给第二操作系统,完成了真实的gpu设备从第一操作系统至第二操作系统的切换,实现了将真实的gpu设备在不同操作系统间进行动态切换的目的。

进一步,系统切换检测模块201,用于控制预先提供给第一操作系统的虚拟cpu暂停工作,以停止第一操作系统通过提供给第一操作系统的虚拟cpu向真实gpu设备发送计算任务;且设备模拟处理模块202,用于将模拟gpu设备提供至第一操作系统之后,包括:控制提供给第一操作系统的虚拟cpu恢复工作,以使第一操作系统通过提供给第一操作系统的虚拟cpu向针对第一操作系统的模拟gpu设备发送计算任务。

对于本申请实施例,通过将模拟gpu设备提供给第一操作系统,解决了第一操作系统在失去对真实的gpu设备的控制后,能够控制模拟gpu设备,实现模拟gpu设备向第一操作系统服务的目的。

进一步地,在检测到第一操作系统与第二操作系统间的切换请求前,第二操作系统由预先模拟得到的针对第二操作系统的模拟gpu设备提供计算服务;设备模拟处理模块202,用于中断第二操作系统对针对第二操作系统的模拟gpu设备的控制,并将真实的gpu设备提供给第二操作系统。

进一步地,系统切换检测模块201,用于读取真实gpu设备在空闲状态下的寄存器的数据,并依据读取到的寄存器的数据形成符合预定格式的gpu设备的快照;且设备模拟处理模块202,用于根据符合预定格式的gpu设备的快照进行模拟,得到模拟gpu设备。

进一步地,通过hypervisor执行本申请实施例提供的多系统中gpu设备的控制方法。

更进一步地,该装置还包括启动模块204(图中未示出),其中,启动模块204,用于在hypervisor被启动后,控制预设的gpu热模拟服务模块启动,以利用gpu热模拟服务模块对gpu设备快照进行模拟,得到模拟gpu设备。

本实施例的多系统中gpu设备的控制装置可执行本申请实施例一提供的一种多系统中gpu设备的控制方法,其实现原理相类似,此处不再赘述。

实施例三

本申请实施例提供了一种电子设备,如图3所示,图3所示的电子设备400包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。进一步地,电子设备400还可以包括收发器4004,收发器4004用于在电子设备和其他设备间提供通信功能。需要说明的是,实际应用中收发器4004不限于一个,该电子设备400的结构并不构成对本申请实施例的限定。

处理器4001可以是cpu,通用处理器,dsp,asic,fpga或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。

总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是pci总线或eisa总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器4003可以是rom或可存储静态信息和指令的其他类型的静态存储设备,ram或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom、cd-rom或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。

存储器4003用于存储执行本申请方案的应用程序代码,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的应用程序代码,以实现图2所示实施例提供的多系统中gpu设备的控制装置。

本申请实施例检测到第一操作系统与第二操作系统间的切换请求时,中断第一操作系统对真实的gpu设备的控制,通过快照技术创建gpu设备快照,以便根据gpu设备快照进行模拟,得到模拟gpu设备,解决了现有技术利用第一操作系统进行gpu设备模拟而导致的计算消耗和资源存储问题。接着,将模拟gpu设备提供给第一操作系统,保证了第一操作系统在失去对真实的gpu设备控制后,能够继续利用模拟gpu设备继续提供服务,而将真实的gpu设备提供给第二操作系统,完成了真实的gpu设备从第一操作系统至第二操作系统的切换,实现了将真实的gpu设备在不同操作系统间进行动态切换的目的。

实施例四

本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现实施例一所示的方法。

本申请实施例提供了一种计算机可读存储介质,与现有技术相比,检测到第一操作系统与第二操作系统间的切换请求时,中断第一操作系统对真实的gpu设备的控制,通过快照技术创建gpu设备快照,以便根据gpu设备快照进行模拟,得到模拟gpu设备,解决了现有技术利用第一操作系统进行gpu设备模拟而导致的计算消耗和资源存储问题。接着,将模拟gpu设备提供给第一操作系统,保证了第一操作系统在失去对真实的gpu设备控制后,能够继续利用模拟gpu设备继续提供服务,而将真实的gpu设备提供给第二操作系统,完成了真实的gpu设备从第一操作系统至第二操作系统的切换,实现了将真实的gpu设备在不同操作系统间进行动态切换的目的。

本申请实施例提供了一种计算机可读存储介质适用于上述方法实施例。在此不再赘述。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1