CN111090531B - 一种图形处理器分布式虚拟化的实现方法及分布式系统 - Google Patents
一种图形处理器分布式虚拟化的实现方法及分布式系统 Download PDFInfo
- Publication number
- CN111090531B CN111090531B CN201911268655.6A CN201911268655A CN111090531B CN 111090531 B CN111090531 B CN 111090531B CN 201911268655 A CN201911268655 A CN 201911268655A CN 111090531 B CN111090531 B CN 111090531B
- Authority
- CN
- China
- Prior art keywords
- memory
- slave
- gpu
- data
- virtual machine
- 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.)
- Active
Links
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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
Abstract
本发明实施例提供了一种图形处理器分布式虚拟化的实现方法及分布式系统,分布式系统包括主物理机和从物理机,主物理机包括GPU、主内存、主内存管理器以及与GPU直通的GPU域,从物理机包括从内存、从内存管理器以及客户虚拟机,主内存与从内存为分布式共享内存。客户虚拟机将待处理数据发送至本地的从内存;从内存管理器到从内存中提取待处理数据,并根据预先配置的从内存与主内存的对应关系,将待处理数据写入对应的主内存;主内存管理器从主内存中提取待处理数据,并根据预先配置的主内存与GPU域的对应关系,将待处理数据发送至对应的GPU域;GPU域调用直通的GPU对待处理数据进行处理,得到数据处理结果。通过本方案,实现了GPU分布式虚拟化。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种图形处理器分布式虚拟化的实现方法及分布式系统。
背景技术
随着AI(Artificial Intelligence,人工智能)和大数据的兴起,GPU(GraphicsProcessing Unit,图形处理器)再次受到人们的关注。并且,随着虚拟化技术和云计算技术的发展,越来越多的数据中心和物理机被虚拟化,越来越多的业务被迁移到客户虚拟机上,希望在客户虚拟机上也能像物理机上一样使用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分配的主内存;
所述宿主机操作系统建立所述从内存与所述主内存的对应关系,并将所述对应关系发送至所述主内存管理器及所述从物理机的从内存管理器;
所述从内存管理器将所述从内存以外设组件互联标准PCI设备的形式挂到所述客户虚拟机上。
可选的,所述方法还包括:
所述宿主机操作系统在获取到删除GPU的客户虚拟机或者客户虚拟机卸载GPU的请求时,根据所述请求,删除所述客户虚拟机对应的从内存与主内存的对应关系,并向所述主内存管理器和所述客户虚拟机所属从物理机的从内存管理器发送删除指令;
所述主内存管理器和所述从内存管理器根据所述删除指令,删除所述对应关系。
第二方面,本发明实施例提供了一种分布式系统,所述系统包括:主物理机和从物理机;所述主物理机包括GPU、主内存、主内存管理器以及与所述GPU直通的GPU域,所述从物理机包括从内存、从内存管理器以及客户虚拟机,所述主内存与所述从内存为分布式共享内存;
所述从物理机的客户虚拟机,用于将待处理数据发送至所述从物理机的从内存;
所述从物理机的从内存管理器,用于从所述从内存中提取所述待处理数据,并根据预先配置的从内存与主内存的对应关系,将所述待处理数据写入所述从内存对应的主内存;
所述主内存管理器,用于从所述主内存中提取所述待处理数据,并根据预先配置的主内存与GPU域的对应关系,将所述待处理数据发送至所述主内存对应的GPU域;
所述GPU域,用于调用直通的GPU对所述待处理数据进行处理,得到数据处理结果。
可选的,所述主物理机与所述从物理机配置有支持远程直接内存访问的无限带宽网卡或者具有允许通过以太网使用远程直接内存访问功能的网卡。
可选的,所述GPU域,还用于将所述数据处理结果发送至所述主内存;
所述主内存管理器,还用于从所述主内存中提取所述数据处理结果,并根据所述预先配置的从内存与主内存的对应关系,将所述数据处理结果写入所述主内存对应的从内存;
所述从内存所属从物理机的从内存管理器,还用于从所述从内存中提取所述数据处理结果,并根据预先配置的从内存与客户虚拟机的对应关系,将所述数据处理结果发送至所述从内存对应的客户虚拟机。
可选的,所述从物理机的从内存管理器,具体用于:
从所述从内存提取所述待处理数据,并根据预先配置的从内存与主内存的对应关系,通过远程直接内存访问RDMA单边访问的方式,将所述待处理数据写入所述从内存对应的主内存。
可选的,所述主物理机还包括宿主机操作系统;
所述宿主机操作系统,用于在获取到创建GPU的客户虚拟机或者客户虚拟机挂载GPU的请求时,根据所述请求,向所述客户虚拟机分配GPU;获取所述客户虚拟机所属从物理机为所述客户虚拟机分配的从内存以及所述主物理机为已分配的GPU分配的主内存;建立所述从内存与所述主内存的对应关系,并将所述对应关系发送至所述主内存管理器及所述从物理机的从内存管理器;
所述从内存管理器,还用于将所述从内存以PCI设备的形式挂到所述客户虚拟机上。
可选的,所述宿主机操作系统,还用于在获取到删除GPU的客户虚拟机或者客户虚拟机卸载GPU的请求时,根据所述请求,删除所述客户虚拟机对应的从内存与主内存的对应关系,并向所述主内存管理器和所述客户虚拟机所属从物理机的从内存管理器发送删除指令;
所述主内存管理器和所述从内存管理器,还用于根据所述删除指令,删除所述对应关系。
本发明实施例提供的一种图形处理器分布式虚拟化的实现方法及分布式系统,分布式系统包括主物理机和从物理机,主物理机包括GPU、主内存、主内存管理器以及与GPU直通的GPU域,从物理机包括从内存、从内存管理器以及客户虚拟机,主内存与从内存为分布式共享内存。从物理机的客户虚拟机将待处理数据发送至从物理机的从内存;从物理机的从内存管理器到从内存中提取待处理数据,并根据预先配置的从内存与主内存的对应关系,将待处理数据写入从内存对应的主内存;主内存管理器从主内存中提取待处理数据,并根据预先配置的主内存与GPU域的对应关系,将待处理数据发送至主内存对应的GPU域;GPU域调用直通的GPU对待处理数据进行处理,得到数据处理结果。通过设置分布式共享内存,从物理机的客户虚拟机向本地的从内存写入待处理数据,从内存管理器直接向从内存对应的主内存写入该待处理数据,由于主内存是GPU的实际物理内存,主内存中的待处理数据可以发送给GPU域,由GPU域调用直通的GPU对其进行处理,使得主物理机上的GPU可以给其他从物理机上的客户虚拟机使用,实现了GPU分布式虚拟化。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例的分布式系统的结构示意图;
图2为本发明另一实施例的分布式系统的结构示意图;
图3为本发明再一实施例的分布式系统的结构示意图;
图4为本发明再一实施例的分布式系统的结构示意图;
图5为本发明再一实施例的分布式系统的结构示意图;
图6为本发明实施例的图形处理器分布式虚拟化的实现方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了方便理解本发明实施例,首先在此介绍本发明实施例描述中引入的几个要素。
虚拟机:通过虚拟机软件可以在一台物理计算机上模拟出一台或者多台虚拟的计算机,而这些虚拟机就像真正的计算机那样进行工作,虚拟机上可以安装操作系统和应用程序,虚拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机中进行工作。
DSM(Distributed Shared Memory,分布式共享内存):使得不同机器上的进程不用通过共享物理内存就可以使用共享数据。进行访问DSM中的数据就如同访问本机的内存一样。DSM运行系统还可以保证在不同机器上执行的程序可以观察到别的机器对DSM的修改。
RDMA(Remote Direct Memory Access,远程直接内存访问):可以简单理解为利用相关的硬件和网络技术,一个物理机的网卡可以直接读写另一个物理机的内存,最终达到高带宽、低延迟和低资源利用率的效果。
硬件层:虚拟化环境运行的硬件平台。其中,硬件层可以包括多种硬件,例如处理器、内存、网卡、存储器等。
宿主机:作为管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;实现虚拟机的调度和隔离。其中,宿主机可能是VMM(Virtual Machine Monitor,虚拟机监控器);此外,有时VMM和1个特权虚拟机配合,两者结合组成宿主机。其中,虚拟硬件平台对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟处理器、虚拟内存、虚拟磁盘、虚拟网卡等等。虚拟机则运行在宿主机为其准备的虚拟硬件平台上,宿主机上运行一个或多个虚拟机。
为了实现GPU分布式虚拟化,本发明实施例提供了一种图形处理器分布式虚拟化的实现方法及分布式系统。下面,首先对本发明实施例所提供的分布式系统进行介绍。
本发明实施例所提供的一种分布式系统如图1所示,该分布式系统包括主物理机110和从物理机120;主物理机110包括GPU111、主内存112、主内存管理器113以及与GPU111直通的GPU域114,从物理机120包括从内存121、从内存管理器122以及客户虚拟机123,主内存112与从内存121为分布式共享内存。
在一个分布式系统中,一般只有一个主物理机,会有至少一个从物理机。一个从物理机包括至少一个客户虚拟机,每一个客户虚拟机对应从内存的一个区域(即对应不同的从内存地址);主物理机包括至少一个GPU域,每一个GPU域对应主内存的一个区域(即对应不同的主内存地址),主物理机包括至少一个GPU,GPU与GPU域之间直通,一个GPU域可以直通一个或者多个GPU。
主内存和从内存为DSM,主内存和从内存一般具有一一对应的关系,即主内存的一块区域对应从内存的一块区域,也可以是一个从内存对应一个主内存,当然,也可能是多个从内存对应一个主内存,或者从内存的多块区域对应主内存的一块区域。主内存和从内存的对应关系可以通过地址映射或者标识映射的方式进行记录。
在一种实施方式中,如图2所示,主物理机包括硬件层、VMM和GPU域,VMM运行于硬件层之上,GPU域运行于VMM之上;硬件层包括GPU、主内存和I/O(Input/Output,输入/输出)接口,VMM包括主内存管理器,GPU域可以是运行在包括GPU的硬件层之上的应用层管理软件,也可以为硬件层上层的硬件模块,用于管理、调控GPU的运行。从物理机包括硬件层、VMM和客户虚拟机,VMM运行于硬件层之上,客户虚拟机运行于VMM之上;硬件层包括从内存和I/O接口,VMM包括从内存管理器。
在另一种实施方式中,如图3所示,主物理机包括硬件层、VMM和GPU域,VMM运行于硬件层之上,GPU域运行于VMM之上;硬件层包括GPU和I/O接口,VMM包括主内存和主内存管理器。从物理机包括硬件层、VMM和客户虚拟机,VMM运行于硬件层之上,客户虚拟机运行于VMM之上;硬件层包括I/O接口,VMM包括从内存和从内存管理器。
下面对主物理机和从物理机中各部件的功能进行介绍。
从物理机120的客户虚拟机123,用于将待处理数据发送至从物理机120的从内存121;
从物理机120的从内存管理器122,用于到从内存121中提取待处理数据,并根据预先配置的从内存与主内存的对应关系,将待处理数据写入从内存121对应的主内存112;
主内存管理器113,用于从主内存112中提取待处理数据,并根据预先配置的主内存与GPU域的对应关系,将待处理数据发送至主内存112对应的GPU域114;
GPU域114,用于调用直通的GPU111对待处理数据进行处理,得到数据处理结果。
客户虚拟机使用GPU的请求一般是客户虚拟机内的APP(Application,应用程序)调用GPU的相关API(Application Programming Interface,应用程序编程接口)发起的,API经GPU基本库解析后,解析出待处理数据,并将待处理数据发送到DSM(实际发送到本地的从内存),从内存管理器具有内存管理功能,预先维护有从内存与主内存的对应关系,在到从内存中读取出待处理数据后,根据该对应关系,可以确定从内存对应的主内存,然后将待处理数据写入从内存对应的主内存。具体的,从内存与主内存的对应关系可以以内存映射表的方式进行记录。如果从内存和主内存的对应关系为多对一,在进行传递的过程中会记录下数据流向的标签,以便于后续在反馈数据时,按照该标签向对应的从内存反馈数据。
主内存管理器也具有内存管理功能,预先维护有主内存与GPU域的对应关系,在主内存112中写入待处理数据后,主内存管理器113从主内存112中提取待处理数据,并根据该对应关系,确定主内存对应的GPU域,将待处理数据发送至主内存112对应的GPU域114。
GPU域114在收到待处理数据后调用直通的GPU111对待处理数据进行处理,得到数据处理结果。具体的,GPU域收到待处理数据后,首先对待处理数据进行处理,将待处理数据处理为GPU可识别的数据,然后将GPU可识别的数据发送给直通的一个或者多个GPU,由GPU进行数据处理,得到数据处理结果。
可选的,主物理机110与从物理机120配置有支持RMDA的IB(Infiniband,无限带宽)网卡或者具有RoCE(RDMA over Converged Ethernet,允许通过以太网使用远程直接内存访问)功能的网卡。也就是说,在图2和图3所示的网络结构中,I/O接口为IB或RoCE接口。
可选的,从物理机120的从内存管理器122,具体可以用于:到从内存121提取待处理数据,并根据预先配置的从内存与主内存的对应关系,通过RDMA单边访问的方式,将待处理数据写入从内存121对应的主内存112。从内存管理器在向主内存写待处理数据时,可以采用RDMA单边访问的方式,保证数据的单向写入,实现数据的共享。
可选的,GPU域114,还可以用于将数据处理结果发送至主内存112。
相应的,主内存管理器113,还可以用于从主内存112中提取数据处理结果,并根据预先配置的从内存与主内存的对应关系,将数据处理结果写入主内存112对应的从内存121;
从内存121所属从物理机120的从内存管理器122,还可以用于到从内存121中提取数据处理结果,并根据预先配置的从内存与客户虚拟机的对应关系,将数据处理结果发送至从内存121对应的客户虚拟机123。
在主物理机得到数据处理结果后,GPU域可以将数据处理结果首先发送至主内存,主内存管理器具有内存管理功能,预先维护有从内存与主内存的对应关系,在到主内存中读取出待处理数据后,根据该对应关系,可以确定主内存对应的从内存,然后将数据处理结果写入主内存对应的从内存。最终,由从内存管理器将从内存中的数据处理结果发送至对应的客户虚拟机。
本发明实施例中,主物理机还可以包括多个客户虚拟机,主物理机本地的GPU虚拟化可以采用传统的本地客户虚拟机使用GPU的方案,这里不再赘述。
应用本发明实施例,分布式系统包括主物理机和从物理机,主物理机包括GPU、主内存、主内存管理器以及与GPU直通的GPU域,从物理机包括从内存、从内存管理器以及客户虚拟机,主内存与从内存为分布式共享内存。从物理机的客户虚拟机将待处理数据发送至从物理机的从内存;从物理机的从内存管理器到从内存中提取待处理数据,并根据预先配置的从内存与主内存的对应关系,将待处理数据写入从内存对应的主内存;主内存管理器从主内存中提取待处理数据,并根据预先配置的主内存与GPU域的对应关系,将待处理数据发送至主内存对应的GPU域;GPU域调用直通的GPU对待处理数据进行处理,得到数据处理结果。通过设置分布式共享内存,从物理机的客户虚拟机向本地的从内存写入待处理数据,从内存管理器直接向从内存对应的主内存写入该待处理数据,由于主内存是GPU的实际物理内存,主内存中的待处理数据可以发送给GPU域,由GPU域调用直通的GPU对其进行处理,使得主物理机上的GPU可以给其他从物理机上的客户虚拟机使用,实现了GPU分布式虚拟化。
基于图1所示实施例,本发明实施例还提供了一种分布式系统,如图4所示,该分布式系统包括主物理机110和从物理机120;主物理机110包括GPU111、主内存112、主内存管理器113、与GPU111直通的GPU域114以及宿主机操作系统115,从物理机120包括从内存121、从内存管理器122以及客户虚拟机123,主内存112与从内存121为分布式共享内存。
GPU111、主内存112、主内存管理器113、GPU域114、从内存121、从内存管理器122以及客户虚拟机123的功能与图1所示实施例中相同,实现GPU分布式虚拟化的过程相同,这里不再赘述。下面,重点对宿主机操作系统115进行介绍。
宿主机操作系统运行于VMM之上,主要用于进行GPU和GPU域管理,包括GPU域管理模块和GPU源管理模块。宿主机操作系统主要提供GPU的发现、上报、调度、分配、释放等功能。在分布式系统中,宿主机操作系统是分布式的,能够提供GPU资源共享,因此,不仅仅主物理机上部署有宿主机操作系统,在从物理机上也可以部署有宿主机操作系统,这里不做限定。另外,由于宿主机操作系统实现分布式功能,因此,也常将其称为云操作系统。
对于GPU的发现功能而言,与传统的物理主机相同,主要是通过定时LSPCI(一种用来显示系统中所有总线设备或连接到该总线上的所有设备的工具)扫描的方式,获取物理主机上的GPU信息。
对于GPU的上报功能而言,扫描到的GPU信息上报到宿主机操作系统中的GPU源管理模块,并通知GPU域管理模块创建GPU域,并将GPU直通给GPU域。
对于GPU的调度、分配功能,宿主机操作系统115,用于在获取到创建GPU的客户虚拟机或者客户虚拟机挂载GPU的请求时,根据该请求,向客户虚拟机分配GPU,获取客户虚拟机123所属从物理机120为客户虚拟机123分配的从内存121以及主物理机110为已分配的GPU111分配的主内存112,建立从内存121与主内存112的对应关系,并将对应关系发送至主内存管理器113及从物理机120的从内存管理器122。
从内存管理器122,用于将从内存121以PCI(Peripheral ComponentInterconnect,外设组件互联标准)设备的形式挂到客户虚拟机123上。
在创建GPU客户虚拟机或客户虚拟机挂载GPU时,向GPU源管理模块发送请求,GPU源管理模块根据客户虚拟机调度的节点,就近分配GPU;获取到GPU信息之后,建立两个物理机间内存的对应关系,并将从内存以PCI设备的形式挂到客户虚拟机上。
对于GPU的释放功能,宿主机操作系统115,还可以用于在获取到删除GPU的客户虚拟机或者客户虚拟机卸载GPU的请求时,根据该请求,删除客户虚拟机123对应的从内存121与主内存112的对应关系,并向主内存管理器113和客户虚拟机123所属从物理机120的从内存管理器122发送删除指令;
主内存管理器113和从内存管理器122,还可以用于根据删除指令,删除对应关系。
GPU客户虚拟机删除或客户虚拟机卸载GPU时,删除对应的从内存与主内存的对应关系,一般在宿主机操作系统上还可以维护有GPU信息的数据库,相应的对该数据库进行更新。
通过GPU分布式同一调度,给GPU云计算领域的分布式使用提供了资源管理方案,更好地管理GPU的资源。
在本发明实施例的一种实现方式中,如图5所示,主物理机包括硬件层、VMM、宿主机操作系统和GPU域,VMM运行于硬件层之上,GPU域和宿主机操作系统运行于VMM之上;硬件层包括GPU和IB/RoCE接口,VMM包括主内存和主内存管理器,宿主机操作系统包括GPU域管理模块和GPU源管理模块,GPU域包括驱动模块、虚拟GPU服务模块、GPU库和GPU驱动模块。从物理机包括硬件层、VMM和客户虚拟机,VMM运行于硬件层之上,客户虚拟机运行于VMM之上;硬件层包括IB/RoCE接口,VMM包括从内存和从内存管理器,客户虚拟机包括APP、GPU通用模块和驱动模块。
数据流的处理过程为:客户虚拟机内的APP调用GPU通用模块,生成待处理数据,通过驱动模块将待处理数据发送至从内存,从内存管理器到从内存中提取待处理数据,并根据预先配置的从内存与主内存的对应关系,将待处理数据通过从物理机和主物理机的IB/RoCE接口写入主内存,主内存管理器从主内存中提取待处理数据,并根据预先配置的主内存与GPU域的对应关系,将待处理数据发送至对应的GPU域,经GPU域中的驱动模块、虚拟GPU服务模块、GPU库和GPU驱动模块,将待处理数据发送至直通的GPU,由GPU对待处理数据进行处理,得到数据处理结果,并将数据处理结果通过相同的方式返回给客户虚拟机。宿主机操作系统中的GPU域管理模块对GPU域进行管理,GPU源管理模块对GPU的发现、上报、调度、分配、释放等进行管理。
本发明实施例还提供了一种图形处理器分布式虚拟化的实现方法,如图6所示,该方法应用于图1所示的分布式系统,该方法可以包括如下步骤。
S601,从物理机的客户虚拟机将待处理数据发送至该从物理机的从内存。
S602,该从物理机的从内存管理器到从内存中提取待处理数据,并根据预先配置的从内存与主内存的对应关系,将待处理数据写入从内存对应的主内存。
S603,主内存管理器从主内存中提取待处理数据,并根据预先配置的主内存与GPU域的对应关系,将待处理数据发送至主内存对应的GPU域。
S604,GPU域调用直通的GPU对待处理数据进行处理,得到数据处理结果。
客户虚拟机使用GPU的请求一般是客户虚拟机内的APP调用GPU的相关API发起的,API经GPU基本库解析后,解析出待处理数据,并将待处理数据发送到DSM(实际发送到本地的从内存),从内存管理器具有内存管理功能,预先维护有从内存与主内存的对应关系,在到从内存中读取出待处理数据后,根据该对应关系,可以确定从内存对应的主内存,然后将待处理数据写入从内存对应的主内存。具体的,从内存与主内存的对应关系可以以内存映射表的方式进行记录。如果从内存和主内存的对应关系为多对一,在进行传递的过程中会记录下数据流向的标签,以便于后续在反馈数据时,按照该标签向对应的从内存反馈数据。
主内存管理器也具有内存管理功能,预先维护有主内存与GPU域的对应关系,在主内存中写入待处理数据后,主内存管理器从主内存中提取待处理数据,并根据该对应关系,确定主内存对应的GPU域,将待处理数据发送至主内存对应的GPU域。
GPU域在收到待处理数据后调用直通的GPU对待处理数据进行处理,得到数据处理结果。具体的,GPU域收到待处理数据后,首先对待处理数据进行处理,将待处理数据处理为GPU可识别的数据,然后将GPU可识别的数据发送给直通的一个或者多个GPU,由GPU进行数据处理,得到数据处理结果。
应用本发明实施例,通过设置分布式共享内存,从物理机的客户虚拟机向本地的从内存写入待处理数据,从内存管理器直接向从内存对应的主内存写入该待处理数据,由于主内存是GPU的实际物理内存,主内存中的待处理数据可以发送给GPU域,由GPU域调用直通的GPU对其进行处理,使得主物理机上的GPU可以给其他从物理机上的客户虚拟机使用,实现了GPU分布式虚拟化。
可选的,在S604之后,该方法还可以包括如下步骤:
GPU域将数据处理结果发送至主内存;
主内存管理器从主内存中提取数据处理结果,并根据预先配置的从内存与主内存的对应关系,将数据处理结果写入主内存对应的从内存;
从内存所属从物理机的从内存管理器从从内存中提取数据处理结果,并根据预先配置的从内存与客户虚拟机的对应关系,将数据处理结果发送至从内存对应的客户虚拟机。
可选的,S602,具体可以为:从物理机的从内存管理器到从内存提取待处理数据,并根据预先配置的从内存与主内存的对应关系,通过RMDA单边访问的方式,将待处理数据写入从内存对应的主内存。
可选的,主物理机还可以包括宿主机操作系统,该方法还可以包括如下步骤:
宿主机操作系统在获取到创建GPU的客户虚拟机或者客户虚拟机挂载GPU的请求时,根据该请求,向客户虚拟机分配GPU;
宿主机操作系统获取客户虚拟机所属从物理机为客户虚拟机分配的从内存以及主物理机为已分配的GPU分配的主内存;
宿主机操作系统建立从内存与主内存的对应关系,并将该对应关系发送至主内存管理器及从物理机的从内存管理器;
从内存管理器将从内存以PCI设备的形式挂到客户虚拟机上。
可选的,该方法还可以包括:
宿主机操作系统在获取到删除GPU的客户虚拟机或者客户虚拟机卸载GPU的请求时,根据该请求,删除客户虚拟机对应的从内存与主内存的对应关系,并向主内存管理器和客户虚拟机所属从物理机的从内存管理器发送删除指令;
主内存管理器和从内存管理器根据删除指令,删除该对应关系。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于系统实施例,所以描述的比较简单,相关之处参见系统实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (9)
1.一种图形处理器分布式虚拟化的实现方法,其特征在于,应用于分布式系统,所述分布式系统包括主物理机和从物理机,所述主物理机包括图形处理器GPU、主内存、主内存管理器以及与所述GPU直通的GPU域,所述从物理机包括从内存、从内存管理器以及客户虚拟机,所述主内存与所述从内存为分布式共享内存,所述方法包括:
所述从物理机的客户虚拟机将待处理数据发送至所述从物理机的从内存;
所述从物理机的从内存管理器从所述从内存中提取所述待处理数据,并根据预先配置的从内存与主内存的对应关系,将所述待处理数据写入所述从内存对应的主内存;
所述主内存管理器从所述主内存中提取所述待处理数据,并根据预先配置的主内存与GPU域的对应关系,将所述待处理数据发送至所述主内存对应的GPU域;
所述GPU域调用直通的GPU对所述待处理数据进行处理,得到数据处理结果;
所述主物理机还包括宿主机操作系统,所述方法还包括:
所述宿主机操作系统在获取到创建GPU的客户虚拟机或者客户虚拟机挂载GPU的请求时,根据所述请求,向所述客户虚拟机分配GPU;
所述宿主机操作系统获取所述客户虚拟机所属从物理机为所述客户虚拟机分配的从内存以及所述主物理机为已分配的GPU分配的主内存;
所述宿主机操作系统建立所述从内存与所述主内存的对应关系,并将所述对应关系发送至所述主内存管理器及所述从物理机的从内存管理器;
所述从内存管理器将所述从内存以外设组件互联标准PCI设备的形式挂到所述客户虚拟机上。
2.根据权利要求1所述的方法,其特征在于,在所述GPU域调用直通的GPU对所述待处理数据进行处理,得到数据处理结果之后,所述方法还包括:
所述GPU域将所述数据处理结果发送至所述主内存;
所述主内存管理器从所述主内存中提取所述数据处理结果,并根据所述预先配置的从内存与主内存的对应关系,将所述数据处理结果写入所述主内存对应的从内存;
所述从内存所属从物理机的从内存管理器从所述从内存中提取所述数据处理结果,并根据预先配置的从内存与客户虚拟机的对应关系,将所述数据处理结果发送至所述从内存对应的客户虚拟机。
3.根据权利要求1所述的方法,其特征在于,所述从物理机的从内存管理器从所述从内存中提取所述待处理数据,并根据预先配置的从内存与主内存的对应关系,将所述待处理数据写入所述从内存对应的主内存,包括:
所述从物理机的从内存管理器从所述从内存提取所述待处理数据,并根据预先配置的从内存与主内存的对应关系,通过远程直接内存访问中单边访问的方式,将所述待处理数据写入所述从内存对应的主内存。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述宿主机操作系统在获取到删除GPU的客户虚拟机或者客户虚拟机卸载GPU的请求时,根据所述请求,删除所述客户虚拟机对应的从内存与主内存的对应关系,并向所述主内存管理器和所述客户虚拟机所属从物理机的从内存管理器发送删除指令;
所述主内存管理器和所述从内存管理器根据所述删除指令,删除所述对应关系。
5.一种分布式系统,其特征在于,所述系统包括:主物理机和从物理机;所述主物理机包括GPU、主内存、主内存管理器以及与所述GPU直通的GPU域,所述从物理机包括从内存、从内存管理器以及客户虚拟机,所述主内存与所述从内存为分布式共享内存;
所述从物理机的客户虚拟机,用于将待处理数据发送至所述从物理机的从内存;
所述从物理机的从内存管理器,用于从所述从内存中提取所述待处理数据,并根据预先配置的从内存与主内存的对应关系,将所述待处理数据写入所述从内存对应的主内存;
所述主内存管理器,用于从所述主内存中提取所述待处理数据,并根据预先配置的主内存与GPU域的对应关系,将所述待处理数据发送至所述主内存对应的GPU域;
所述GPU域,用于调用直通的GPU对所述待处理数据进行处理,得到数据处理结果;
所述主物理机还包括宿主机操作系统;
所述宿主机操作系统,用于在获取到创建GPU的客户虚拟机或者客户虚拟机挂载GPU的请求时,根据所述请求,向所述客户虚拟机分配GPU;获取所述客户虚拟机所属从物理机为所述客户虚拟机分配的从内存以及所述主物理机为已分配的GPU分配的主内存;建立所述从内存与所述主内存的对应关系,并将所述对应关系发送至所述主内存管理器及所述从物理机的从内存管理器;
所述从内存管理器,还用于将所述从内存以PCI设备的形式挂到所述客户虚拟机上。
6.根据权利要求5所述的系统,其特征在于,所述主物理机与所述从物理机配置有支持远程直接内存访问的无限带宽网卡或者具有允许通过以太网使用远程直接内存访问功能的网卡。
7.根据权利要求5所述的系统,其特征在于,
所述GPU域,还用于将所述数据处理结果发送至所述主内存;
所述主内存管理器,还用于从所述主内存中提取所述数据处理结果,并根据所述预先配置的从内存与主内存的对应关系,将所述数据处理结果写入所述主内存对应的从内存;
所述从内存所属从物理机的从内存管理器,还用于从所述从内存中提取所述数据处理结果,并根据预先配置的从内存与客户虚拟机的对应关系,将所述数据处理结果发送至所述从内存对应的客户虚拟机。
8.根据权利要求5所述的系统,其特征在于,所述从物理机的从内存管理器,具体用于:
从所述从内存提取所述待处理数据,并根据预先配置的从内存与主内存的对应关系,通过远程直接内存访问RDMA单边访问的方式,将所述待处理数据写入所述从内存对应的主内存。
9.根据权利要求5所述的系统,其特征在于,所述宿主机操作系统,还用于在获取到删除GPU的客户虚拟机或者客户虚拟机卸载GPU的请求时,根据所述请求,删除所述客户虚拟机对应的从内存与主内存的对应关系,并向所述主内存管理器和所述客户虚拟机所属从物理机的从内存管理器发送删除指令;
所述主内存管理器和所述从内存管理器,还用于根据所述删除指令,删除所述对应关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911268655.6A CN111090531B (zh) | 2019-12-11 | 2019-12-11 | 一种图形处理器分布式虚拟化的实现方法及分布式系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911268655.6A CN111090531B (zh) | 2019-12-11 | 2019-12-11 | 一种图形处理器分布式虚拟化的实现方法及分布式系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111090531A CN111090531A (zh) | 2020-05-01 |
CN111090531B true CN111090531B (zh) | 2023-08-04 |
Family
ID=70394971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911268655.6A Active CN111090531B (zh) | 2019-12-11 | 2019-12-11 | 一种图形处理器分布式虚拟化的实现方法及分布式系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111090531B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111679911B (zh) * | 2020-06-04 | 2024-01-16 | 建信金融科技有限责任公司 | 云环境中gpu卡的管理方法、装置、设备及介质 |
CN113867993B (zh) * | 2021-12-03 | 2022-03-04 | 维塔科技(北京)有限公司 | 虚拟化的rdma方法、系统、存储介质及电子设备 |
CN114661465A (zh) * | 2022-03-17 | 2022-06-24 | 维塔科技(北京)有限公司 | 资源管理的方法、装置、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1797345A (zh) * | 2004-12-30 | 2006-07-05 | 微软公司 | 用于虚拟化图形子系统的系统和方法 |
WO2016164204A1 (en) * | 2015-04-07 | 2016-10-13 | Microsoft Technology Licensing, Llc | Virtual machines backed by host virtual memory |
CN106775940A (zh) * | 2016-12-06 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种图形处理系统及虚拟化方法 |
CN110138855A (zh) * | 2019-05-13 | 2019-08-16 | 武汉数字化设计与制造创新中心有限公司 | 研发资源云平台及资源共享方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8938723B1 (en) * | 2009-08-03 | 2015-01-20 | Parallels IP Holdings GmbH | Use of GPU for support and acceleration of virtual machines and virtual environments |
US20110102443A1 (en) * | 2009-11-04 | 2011-05-05 | Microsoft Corporation | Virtualized GPU in a Virtual Machine Environment |
US9607351B2 (en) * | 2013-07-24 | 2017-03-28 | General Dynamics Mission Systems, Inc. | Systems and methods for GPU virtualization |
US9412146B2 (en) * | 2013-10-25 | 2016-08-09 | Futurewei Technologies, Inc. | System and method for distributed virtualization of GPUs in desktop cloud |
CN106406977B (zh) * | 2016-08-26 | 2019-06-11 | 山东乾云启创信息科技股份有限公司 | 一种gpu虚拟化实现系统及方法 |
CN107491340B (zh) * | 2017-07-31 | 2020-07-14 | 上海交通大学 | 跨物理机的巨型虚拟机实现方法 |
CN108932154B (zh) * | 2018-07-23 | 2022-05-27 | 上海交通大学 | 一种分布式虚拟机管理器 |
-
2019
- 2019-12-11 CN CN201911268655.6A patent/CN111090531B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1797345A (zh) * | 2004-12-30 | 2006-07-05 | 微软公司 | 用于虚拟化图形子系统的系统和方法 |
WO2016164204A1 (en) * | 2015-04-07 | 2016-10-13 | Microsoft Technology Licensing, Llc | Virtual machines backed by host virtual memory |
CN106775940A (zh) * | 2016-12-06 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种图形处理系统及虚拟化方法 |
CN110138855A (zh) * | 2019-05-13 | 2019-08-16 | 武汉数字化设计与制造创新中心有限公司 | 研发资源云平台及资源共享方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111090531A (zh) | 2020-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111090531B (zh) | 一种图形处理器分布式虚拟化的实现方法及分布式系统 | |
CN107580083B (zh) | 一种容器ip地址分配的方法和系统 | |
CN104536802B (zh) | 一种实现应用调用的方法及虚拟机 | |
CN107733704B (zh) | 一种基于虚拟化和容器技术的勘探开发云的系统和方法 | |
EP3554025B1 (en) | Method for forwarding packet and physical host | |
CN100472451C (zh) | 一种虚拟机系统及其硬件设备访问方法 | |
CA2802361C (en) | Method and system for workload distributing and processing across a network of replicated virtual machines | |
EP3358806B1 (en) | Method, device and server for service migration during software upgrade under nfv architecture | |
US9063793B2 (en) | Virtual server and virtual machine management method for supporting zero client by providing host interfaces from classified resource pools through emulation or direct connection modes | |
CN107292807B (zh) | 一种图形合成方法、窗口设置方法及系统 | |
CN111213127B (zh) | 用于直接分配的设备的虚拟化操作 | |
US20210373928A1 (en) | Method, system and apparatus for sharing of fpga board by multiple virtual machines | |
WO2015083255A1 (ja) | 計算機システム及び仮想マシンの制御方法 | |
WO2022041507A1 (zh) | 3d渲染方法及系统 | |
CN111679911B (zh) | 云环境中gpu卡的管理方法、装置、设备及介质 | |
CN108540408B (zh) | 一种基于Openstack的分布式虚拟交换机的管理方法及系统 | |
US20140325163A1 (en) | Cross-Partition Shared Memory Attach for Data Processing Environment | |
CN103207805A (zh) | 基于虚拟化的硬盘复用系统 | |
CN104092747B (zh) | 虚拟化环境下usb动态连接方法及装置 | |
CN114816655A (zh) | 用于安全容器的设备访问方法及系统 | |
CN114820272A (zh) | 数据交互的方法、装置、存储介质及电子设备 | |
CN113835897A (zh) | 一种在分布式计算集群Kubernetes上对GPU资源进行分配使用的方法 | |
CN115202820A (zh) | Pod单元的创建方法、装置、设备及存储介质 | |
TWI760948B (zh) | 用於管理電信等級虛擬網路服務之加速資源分配之系統、方法及電腦可讀取儲存媒體 | |
CN114745377A (zh) | 边缘云集群服务系统及实现方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |