CN114048005A - 一种gpu虚拟化方法及装置 - Google Patents

一种gpu虚拟化方法及装置 Download PDF

Info

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
Application number
CN202111417789.7A
Other languages
English (en)
Inventor
戴莉莉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Lichi Semiconductor Co ltd
Original Assignee
Shanghai Lichi Semiconductor Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Lichi Semiconductor Co ltd filed Critical Shanghai Lichi Semiconductor Co ltd
Priority to CN202111417789.7A priority Critical patent/CN114048005A/zh
Publication of CN114048005A publication Critical patent/CN114048005A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, 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虚拟化方法及装置
技术领域
本发明涉及芯片设计技术领域,特别是涉及一种车载异构多核处理器芯片上的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虚拟化方法的步骤。
CN202111417789.7A 2021-11-26 2021-11-26 一种gpu虚拟化方法及装置 Pending CN114048005A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114661465A (zh) * 2022-03-17 2022-06-24 维塔科技(北京)有限公司 资源管理的方法、装置、存储介质及电子设备
CN115904634A (zh) * 2023-01-17 2023-04-04 北京象帝先计算技术有限公司 资源管理方法、系统级芯片、电子组件及电子设备

Cited By (3)

* Cited by examiner, † Cited by third party
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
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
WO2017024783A1 (zh) 一种虚拟化方法、装置和系统
KR20070100367A (ko) 하나의 가상 머신에서 다른 가상 머신으로 메모리를동적으로 재할당하기 위한 방법, 장치 및 시스템
CN102541618B (zh) 一种通用图形处理器虚拟化的实现方法、系统及装置
CN114048005A (zh) 一种gpu虚拟化方法及装置
US9959134B2 (en) Request processing using VM functions
US11836091B2 (en) Secure memory access in a virtualized computing environment
US10977191B2 (en) TLB shootdowns for low overhead
CN113778612A (zh) 基于微内核机制的嵌入式虚拟化系统实现方法
EP3701373B1 (en) Virtualization operations for directly assigned devices
EP3255550B1 (en) Tlb shootdowns for low overhead
CN112486632A (zh) 一种面向k8s的用户态虚拟设备驱动框架
CN115904634B (zh) 资源管理方法、系统级芯片、电子组件及电子设备
CN113626148B (zh) 一种基于混合虚拟化的终端虚拟机生成系统及方法
US20230033583A1 (en) Primary input-output queue serving host and guest operating systems concurrently
CN113918272B (zh) 分离式虚拟机及其虚拟机架构、构建方法和优化方法
US20220374254A1 (en) Virtualized system and method of preventing memory crash of same
US20230251883A1 (en) Coordinating timer access for virtual machines using peripheral component interface cards
US20230205287A1 (en) Processing unit reset by a virtual function
CN116244036A (zh) 半虚拟化串口方法、装置、系统及存储介质
US20200319940A1 (en) Management of dynamic sharing of central processing units
CN116385252A (zh) 虚拟化场景的gpu穿透使用方法、设备及存储介质
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