CN114048005A - 一种gpu虚拟化方法及装置 - Google Patents
一种gpu虚拟化方法及装置 Download PDFInfo
- Publication number
- CN114048005A CN114048005A CN202111417789.7A CN202111417789A CN114048005A CN 114048005 A CN114048005 A CN 114048005A CN 202111417789 A CN202111417789 A CN 202111417789A CN 114048005 A CN114048005 A CN 114048005A
- Authority
- CN
- China
- Prior art keywords
- gpu
- physical
- virtualization
- task
- host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种GPU虚拟化方法,包括以下步骤:通过管理程序创建和管理一个主机及多个VM系统;将VM系统中的图形和计算需求经过虚拟GPU转化成统一的任务命令,发送到物理GPU;所述物理GPU完成任务后通知相应的VM系统。本发明的GPU虚拟化方法及装置,支持多种操作系统下的GPU虚拟化,提高GPU利用率。
Description
技术领域
本发明涉及芯片设计技术领域,特别是涉及一种车载异构多核处理器芯片上的GPU虚拟化方法及装置。
背景技术
随着汽车电子的发展,在多媒体,连接,导航,仪表等需求的推动下,产生了越来越复杂的系统芯片(soc),系统芯片集成了多个不同的处理器内核和各种各样的设备资源,支持更多的操作系统,而系统中的GPU数量通常比较有限,如何更高效地利用有限的GPU资源,更好地支持不同的操作系统成为在这类芯片里的重要问题。
近些年来,GPU虚拟化技术在云计算等领域已经有了长足的发展。而随着车载芯片的发展,对于GPU虚拟化的需求也日益旺盛。目前的GPU虚拟化技术在车载异构多核芯片上的实现较少,对不同操作系统的支持也不全面。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种GPU虚拟化方法及装置,支持多种操作系统下的GPU虚拟化,提高GPU利用率。
为实现上述目的,本发明提供的一种GPU虚拟化方法,包括以下步骤:
通过管理程序创建和管理一个主机及多个VM系统;
将VM系统中的图形和计算需求经过虚拟GPU转化成统一的任务命令,发送到物理GPU;
所述物理GPU完成任务后通知相应的VM系统。
进一步地,所述通过管理程序创建和管理一个主机及多个VM系统的步骤,还包括,
通过管理程序配置所述物理GPU在VM系统中的使用方式,包块独占方式和共享方式。
进一步地,所述通过管理程序创建和管理一个主机及多个VM系统的步骤,还包括,
对于支持硬件虚拟化的GPU,物理GPU为每个VM系统提供独立的寄存器和中断号;
在VM系统的创建阶段,主机创建VM系统的命令缓冲区,并通知物理GPU,建立VM系统中的虚拟GPU和物理GPU的连接。
进一步地,所述独占方式,包括,
通过管理程序创建VM系统时,将所述物理GPU配置成VM系统独占使用的GPU;
VM系统运行时的图形和计算需求通过虚拟GPU传递到所述物理GPU;
所述物理GPU完成工作后通过中断通知VM系统。
进一步地,所述将VM系统中的图形和计算需求经过虚拟GPU转化成统一的任务命令,发送到物理GPU的步骤,还包括,
对于不支持硬件虚拟化的GPU,在所述主机中设置GPU管理模块负责管理共享方式访问的所述物理GPU,根据所述物理GPU的负载分发图形和计算任务;
物理GPU每完成一个任务后,通过中断通知GPU管理模块,由所述GPU管理模块转发给相应的VM。
进一步地,GPU管理模块统一管理所有共享方式访问的物理GPU,根据各个物理GPU的负载,分发图形和计算任务。
为实现上述目的,本发明还提供一种GPU虚拟化装置,包括主机、虚拟机和物理GPU,其中,
所述主机用于分发图形和计算任务,转发中断请求;
所述虚拟机用于将图形和计算需求转化成统一的任务命令;
所述物理GPU用于接收任务命令,在完成每个任务后通过中断通知所述虚拟机。
进一步地,对于不支持硬件虚拟化的GPU,还包括,在所述虚拟机中设置GPU管理模块,用于与所述虚拟GPU进行适配,接收所述虚拟GPU的任务命令并发送到主机的GPU管理模块。
进一步地,对于支持硬件虚拟化的GPU,还包括命令缓冲区,所述命令缓冲区用于转发虚拟GPU的任务命令。
为实现上述目的,本发明还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的GPU虚拟化方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的GPU虚拟化方法的步骤。
本发明的GPU虚拟化方法,具有以下有益效果:
1)支持多种操作系统下的GPU虚拟化,可以充分利用芯片上有限的GPU资源,支持多操作系统上的图形和计算,提高GPU利用率和运行效率;
2)车载异构多核芯片上通用的,支持多种类linux操作系统的GPU虚拟化。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的GPU虚拟化方法流程图;
图2为根据本发明的不支持硬件虚拟化的GPU虚拟化方法流程图;
图3为根据本发明的支持硬件虚拟化的GPU虚拟化方法流程图;
图4为根据本发明的实施例一不支持硬件虚拟化的GPU装置示意图;
图5为根据本发明的实施例一支持硬件虚拟化的GPU装置示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1
图1为根据本发明的GPU虚拟化方法流程图,下面将参考图1,对本发明的GPU虚拟化方法进行详细描述。
首先,在步骤101,通过管理程序创建和管理一个主机及多个VM系统。
本发明实施例中,Hypervisor可以通过引导和加载不同的镜像创建不同的VM系统,包括linux,qnx,android等多种类linux系统,在不同的VM系统中,分别安装不同的vGPU驱动版本,以适配不同的操作系统。各个系统的图形和计算需求,通过vGPU驱动转化成统一的GPU任务。
在步骤102,将VM系统中的图形和计算需求经过虚拟GPU转化成统一的任务命令,发送到物理GPU。
在步骤103,物理GPU完成任务后通知相应的VM系统。
实施例2
图2为根据本发明的支持硬件虚拟化的GPU虚拟化方法流程图,下面将参考图2,对本发明的GPU虚拟化方法进行详细描述。
在步骤201,基于hypervisor(管理程序)创建和管理一个host(主机)及多个vm(Virtual Machine,虚拟机)系统。
在步骤202,对于不支持硬件虚拟化的GPU,在host中设置GPU manager负责分发任务和接受转发irq(Interrupt ReQuest,中断请求)。
优选地,可以通过hypervisor配置GPU在各个vm中的使用方式。
进一步,在各个vm中支持两种不同的GPU使用方式:
方式一:
独占方式,如图4中所示VM’中的使用方式。在hypervisor创建VM’时,将GPU’配置成VM’独占使用的GPU。VM’运行时,它的图形和计算需求通过该操作系统中的vGPU前端直接传递到GPU’。GPU’完成工作后通过IRQ(Interrupt ReQuest,中断请求)直接通知VM’。
本发明实施例中,如图4所示,独占式的系统,GPU的IRQ直接由该系统的vGPU监听。而分享式的GPU由GPU Manager监听各个GPU的IRQ,并分发给相应的VM,以告知VM任务完成。
方式二:
共享方式,如图4中所示VM1,VM2...VMn中GPU的使用方式。HOST中存在GPUManager模块,每个VM中创建一个vGPU,在不同的操作系统中,vGPU做相应的适配,安装相应的GPU驱动程序,以适应该系统的窗口管理。VM中的图形和计算需求经过vGPU,转化成统一的任务命令,发送到HOST中的GPU Manager模块。GPU Manager统一管理所有共享方式访问的物理GPU。GPU Manager根据各个物理GPU的负载,分发图形和计算任务。物理GPU每完成一个任务后,通过中断通知GPU Manager模块,再由GPU Manger模块转发给相应的VM。
实施例3
图3为根据本发明的支持硬件虚拟化的GPU虚拟化方法流程图,下面将参考图3,对本发明的GPU虚拟化方法进行详细描述。
本发明一实施例中,对于支持硬件虚拟化的GPU,物理GPU可以为每个VM提供独立的寄存器和中断号。
在步骤301,在VM的创建阶段,HOST帮助创建该VM的command buffer,并通知物理GPU,以建立该VM中的vGPU和物理GPU的联系。
优选地,所述通知物理GPU的步骤,可具体执行为:
HOST告知物理GPU该VM的ID,command buffer的地址,所需访问的寄存器及所监听的IRQ号,以便物理寄存器将这些信息绑定。
在步骤302,VM中的图形和计算需求,经过vGPU转化成统一的任务命令,直接通过该VM绑定的command buffer(命令缓冲区)发送到物理GPU。
在步骤303,物理GPU完成任务后,通过独立的中断直接通知相应的VM。该步骤中,在运行过程中,来自VM的图形和计算需求不需要经过HOST的转发,从而提高了运行效率。
本发明实施例中,如图5所示,对于支持硬件虚拟化的GPU,GPU可以提供多个独立的IRQ。因而各个VM可以分别监听不同的IRQ号,因而不需要经过GPU Manager的转发。
实施例4
图4为根据本发明的实施例一不支持硬件虚拟化的GPU装置示意图,如图4所示,包括主机、虚拟机、GPU管理模块,其中,GPU管理模块位于主机中,每个虚拟机中创建一个vGPU,在不同的操作系统中,vGPU做相应的适配。虚拟机中的图形和计算需求经过vGPU,转化成统一的任务命令,发送到主机中的GPU管理模块。GPU管理模块统一管理所有共享方式访问的物理GPU。GPU管理根据各个物理GPU的负载,分发图形和计算任务。物理GPU每完成一个任务后,通过中断通知GPU管理模块,再由GPU管理模块转发给相应的虚拟机。
实施例5
图5为根据本发明的实施例一支持硬件虚拟化的GPU装置示意图,如图5所示,包括主机、虚拟机、命令缓冲区,其中,在虚拟机的创建阶段,主机帮助创建该虚拟机的命令缓冲区,并通知物理GPU,以建立该虚拟机中的vGPU和物理GPU的联系。物理GPU可以为每个虚拟机提供独立的寄存器和中断号,独占方式里的物理GPU只能提供一套寄存器和中段号,支持硬件虚拟化的GPU可以提供多套,从而把一个GPU虚拟成多个。此后,虚拟机中的图形和计算需求,经过vGPU转化成统一的任务命令,直接通过该虚拟机绑定的命令缓冲区发送到物理GPU。物理GPU完成任务后,通过独立的中断直接通知相应的虚拟机。
本发明针对将来越来越多的车载异构多核芯片,提供一种可以充分利用有限的GPU资源的虚拟化方案,利用芯片上有限的GPU资源,支持多操作系统上的图形和计算需求。
本发明的一个实施例中,还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的GPU虚拟化方法的步骤。
本发明的一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的GPU虚拟化方法的步骤。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种GPU虚拟化方法,其特征在于,包括以下步骤:
通过管理程序创建和管理一个主机及多个VM系统;
将VM系统中的图形和计算需求经过虚拟GPU转化成统一的任务命令,发送到物理GPU;
所述物理GPU完成任务后通知相应的VM系统。
2.根据权利要求1所述的GPU虚拟化方法,其特征在于,所述通过管理程序创建和管理一个主机及多个VM系统的步骤,还包括,
通过管理程序配置所述物理GPU在VM系统中的使用方式,包块独占方式和共享方式。
3.根据权利要求1所述的GPU虚拟化方法,其特征在于,所述通过管理程序创建和管理一个主机及多个VM系统的步骤,还包括,
对于支持硬件虚拟化的GPU,物理GPU为每个VM系统提供独立的寄存器和中断号;
在VM系统的创建阶段,主机创建VM系统的命令缓冲区,并通知物理GPU,建立VM系统中的虚拟GPU和物理GPU的连接。
4.根据权利要求2所述的GPU虚拟化方法,其特征在于,所述独占方式,包括,
通过管理程序创建VM系统时,将所述物理GPU配置成VM系统独占使用的GPU;
VM系统运行时的图形和计算需求通过虚拟GPU传递到所述物理GPU;
所述物理GPU完成工作后通过中断通知VM系统。
5.根据权利要求1所述的GPU虚拟化方法,其特征在于,所述将VM系统中的图形和计算需求经过虚拟GPU转化成统一的任务命令,发送到物理GPU的步骤,还包括,
对于不支持硬件虚拟化的GPU,在所述主机中设置GPU管理模块负责管理共享方式访问的所述物理GPU,根据所述物理GPU的负载分发图形和计算任务;
物理GPU每完成一个任务后,通过中断通知GPU管理模块,由所述GPU管理模块转发给相应的VM。
6.根据权利要求5所述的GPU虚拟化方法,其特征在于,GPU管理模块统一管理所有共享方式访问的物理GPU,根据各个物理GPU的负载,分发图形和计算任务。
7.一种GPU虚拟化装置,其特征在于,包括主机、虚拟机和物理GPU,其中,
所述主机用于分发图形和计算任务,转发中断请求;
所述虚拟机用于将图形和计算需求转化成统一的任务命令;
所述物理GPU用于接收任务命令,在完成每个任务后通过中断通知所述虚拟机。
8.根据权利要求7所述的GPU虚拟化装置,其特征在于,对于不支持硬件虚拟化的GPU,还包括,在所述虚拟机中设置GPU管理模块,用于与所述虚拟GPU进行适配,接收所述虚拟GPU的任务命令并发送到主机的GPU管理模块。
9.根据权利要求7所述的GPU虚拟化装置,其特征在于,对于支持硬件虚拟化的GPU,还包括命令缓冲区,所述命令缓冲区用于转发虚拟GPU的任务命令。
10.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行权利要求1至5任一项所述的GPU虚拟化方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序运行时执行权利要求1至5任一项所述的GPU虚拟化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111417789.7A CN114048005A (zh) | 2021-11-26 | 2021-11-26 | 一种gpu虚拟化方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111417789.7A CN114048005A (zh) | 2021-11-26 | 2021-11-26 | 一种gpu虚拟化方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114048005A true CN114048005A (zh) | 2022-02-15 |
Family
ID=80211079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111417789.7A Pending CN114048005A (zh) | 2021-11-26 | 2021-11-26 | 一种gpu虚拟化方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114048005A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114661465A (zh) * | 2022-03-17 | 2022-06-24 | 维塔科技(北京)有限公司 | 资源管理的方法、装置、存储介质及电子设备 |
CN115904634A (zh) * | 2023-01-17 | 2023-04-04 | 北京象帝先计算技术有限公司 | 资源管理方法、系统级芯片、电子组件及电子设备 |
-
2021
- 2021-11-26 CN CN202111417789.7A patent/CN114048005A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114661465A (zh) * | 2022-03-17 | 2022-06-24 | 维塔科技(北京)有限公司 | 资源管理的方法、装置、存储介质及电子设备 |
CN115904634A (zh) * | 2023-01-17 | 2023-04-04 | 北京象帝先计算技术有限公司 | 资源管理方法、系统级芯片、电子组件及电子设备 |
CN115904634B (zh) * | 2023-01-17 | 2023-08-15 | 北京象帝先计算技术有限公司 | 资源管理方法、系统级芯片、电子组件及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4921384B2 (ja) | メモリを1台のバーチャル・マシンからもう一方へダイナミックに再割り当てする方法、装置及びシステム | |
US10191759B2 (en) | Apparatus and method for scheduling graphics processing unit workloads from virtual machines | |
US7971203B2 (en) | Method, apparatus and system for dynamically reassigning a physical device from one virtual machine to another | |
US20240330199A1 (en) | Secure memory access in a virtualized computing environment | |
CN102779074B (zh) | 基于内存空洞机制的虚拟机内存资源分配方法 | |
US9959134B2 (en) | Request processing using VM functions | |
US10977191B2 (en) | TLB shootdowns for low overhead | |
CN102541618A (zh) | 一种通用图形处理器虚拟化的实现方法、系统及装置 | |
EP3701373B1 (en) | Virtualization operations for directly assigned devices | |
CN114048005A (zh) | 一种gpu虚拟化方法及装置 | |
US20140237017A1 (en) | Extending distributed computing systems to legacy programs | |
CN115904634B (zh) | 资源管理方法、系统级芯片、电子组件及电子设备 | |
EP3255550B1 (en) | Tlb shootdowns for low overhead | |
CN116244036A (zh) | 半虚拟化串口方法、装置、系统及存储介质 | |
CN113626148A (zh) | 一种基于混合虚拟化的终端虚拟机生成系统及方法 | |
US20230033583A1 (en) | Primary input-output queue serving host and guest operating systems concurrently | |
EP4092528A1 (en) | Virtualized system and method of preventing memory crash of same | |
US20230214247A1 (en) | Robust resource removal for virtual machines | |
CN105373412A (zh) | 虚拟机图形产生方法及系统 | |
CN118484263A (zh) | 硬件资源访问方法、系统、存储介质及程序产品 | |
CN116385252A (zh) | 虚拟化场景的gpu穿透使用方法、设备及存储介质 | |
US20200319940A1 (en) | Management of dynamic sharing of central processing units | |
US20200218459A1 (en) | Memory-mapped storage i/o | |
JPH0290331A (ja) | 仮想計算機システムのためのプロセツサ間通信命令処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |