CN103631634B - 实现图形处理器虚拟化的方法与装置 - Google Patents

实现图形处理器虚拟化的方法与装置 Download PDF

Info

Publication number
CN103631634B
CN103631634B CN201210304256.2A CN201210304256A CN103631634B CN 103631634 B CN103631634 B CN 103631634B CN 201210304256 A CN201210304256 A CN 201210304256A CN 103631634 B CN103631634 B CN 103631634B
Authority
CN
China
Prior art keywords
application
hardware resource
gpu
graphics processor
hardware
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
Application number
CN201210304256.2A
Other languages
English (en)
Other versions
CN103631634A (zh
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.)
China Telecom Corp Ltd
Original Assignee
China Telecom Corp 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 China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN201210304256.2A priority Critical patent/CN103631634B/zh
Publication of CN103631634A publication Critical patent/CN103631634A/zh
Application granted granted Critical
Publication of CN103631634B publication Critical patent/CN103631634B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明实施例公开了一种实现图形处理器虚拟化的方法与装置,其中,该方法包括响应于远端并发图形应用发起的服务请求,发起多路并行应用运行指令;利用GPU硬件驱动层提供的硬件资源调用接口,并根据各路并发应用的需求对云端的GPU硬件资源进行划分,以为每路应用分配独立的硬件资源;基于所分配的硬件资源环境运行多路并行应用,完成各自图形的渲染;通过路径寻址机制获知每路应用所使用的硬件资源地址,并基于所获知的地址直接在硬件底层截取渲染后的输出数据;对渲染后的输出数据进行流化处理,并传输至发起各并发图形应用的远端用户,以在用户所使用的终端上直接显示各图形应用对应的图形。本发明实施例能够为弱终端提供高端图形应用。

Description

实现图形处理器虚拟化的方法与装置
技术领域
本发明涉及云计算基础技术虚拟化领域,特别地,涉及一种实现图形处理器虚拟化的方法与装置。
背景技术
随着GPU(Graphics Processing Unit,图形处理器)性能的不断提高,目前已不再局限于图形处理,其通用计算能力,在浮点运算与并行计算等方面均具有更加突出的特点,但相对于CPU(Central Processing Unit,中央处理单元),其在应用虚拟化方面尚不完备,难以有效支撑云计算领域。
GPU相对于CPU在硬件架构上具有计算单元优势,但其本身在虚拟化驱动支持以及多核设计方面相比成熟的CPU技术还有较大的差距,难以发挥其强大的图形渲染能力,无法高效支撑多路图形数据处理。
虚拟化主要是指按照需求将硬件和软件环境抽象虚拟出来,提供给操作系统和应用服务使用。主流的虚拟化技术都是以CPU硬件虚拟化为基础,支撑虚拟运行环境,满足普通的逻辑运算、数据存储和用户远程应用交互等。
从虚拟化实现层次而言,可分为基于硬件底层的完全虚拟化、基于改造操作系统控制硬件底层的准虚拟化、基于操作系统的处理机制的增添虚拟服务器功能的操作系统虚拟化、还有立足操作系统之上仅对应用运行环境进行分割的应用层虚拟化等多种。
从虚拟化实现方式来看,当前主要是基于国外著名的虚拟化软件,例如,VMware、Virtual PC、Xen、Virtuozzo/OpenVZ等,实现的功能主要是面向运算、存储和运行普通应用,并且相对固定地为应用分配硬件资源,在应用释放后资源仍不能被其他应用所使用。与目前GPU/显卡的分配能力严重不足,难以满足游戏等需要超强图形数据处理能力的需求相矛盾。
从业务发展角度来讲,当前主流虚拟化处理机制几乎全部都是基于数据的完全分割和硬件独占的模式,对于政企级别应用能够做到安全性和服务的有效保证,但对于灵活多变的互联网应用而言,不但其成本较高,而且灵活性严重不足,难以满足公众客户对丰富多彩的云应用的需求。
从技术完善角度来讲,几乎所有的虚拟化软件都是基于CPU虚拟化实现,针对GPU/显卡而言处理能力很差,无法为消耗百兆以上显存的高端增值应用提供智能服务,严重限制了面向公众云应用的发展,尤其是游戏等具有超强市场前景的应用。
当前,国内外厂商为了解决GPU/显卡资源的调用,都是基于操作系统模糊调用或者采用微软的virtual PC+Remote FX云桌面机制等。主要的模糊调用机制,包括远程桌面、应用层多路运行机制等。上述方法都未从根本上解决这一问题。
随着国内iTV(Interactive TV,互动电视)用户超千万,如果开拓iTV市场的规模效益成为当务之急,则其中的游戏服务是最适合的业务之一。其主要障碍是市场存量终端机顶盒能力不足,无法支撑高增值服务。采用云计算技术,可以很好解决用户终端能力较弱的缺陷,但同时带来云端实现技术的挑战,因此,目前急需适用于图形数据处理的智能GPU虚拟方案来支撑业务的发展。
发明内容
本发明实施例要解决的一个技术问题是提供一种实现图形处理器虚拟化的方法与装置,能够为弱终端提供良好的图形显示功能。
本发明实施例提供了一种实现图形处理器虚拟化的方法,包括响应于远端并发图形应用发起的服务请求,发起多路并行应用运行指令;利用图形处理器GPU硬件驱动层提供的硬件资源调用接口,并根据各路并发应用的需求对云端的GPU硬件资源进行划分,以为每路应用分配独立的硬件资源;基于所分配的硬件资源环境运行多路并行应用,完成各自图形的渲染;通过路径寻址机制获知每路应用所使用的硬件资源地址,并基于所获知的地址直接在硬件底层截取渲染后的输出数据;对渲染后的输出数据进行流化处理,并传输至发起各并发图形应用的远端用户,以在用户所使用的终端上直接显示各图形应用对应的图形。
本发明实施例还提供了一种实现图形处理器虚拟化的装置,包括图形应用启动单元,用于响应于远端并发图形应用发起的服务请求,发起多路并行应用运行指令;硬件资源分配单元,用于利用图形处理器GPU硬件驱动层提供的硬件资源调用接口,并根据各路并发应用的需求对云端的GPU硬件资源进行划分,以为每路应用分配独立的硬件资源;图形应用运行单元,用于基于所分配的硬件资源环境运行多路并行应用,完成各自图形的渲染;输出数据截取单元,用于通过路径寻址机制获知每路应用所使用的硬件资源地址,并基于所获知的地址直接在硬件底层截取渲染后的输出数据;图形数据传输单元,用于对渲染后的输出数据进行流化处理,并传输至发起各并发图形应用的远端用户,以在用户所使用的终端上直接显示各图形应用对应的图形。
本发明实施例提供的实现图形处理器虚拟化的方法与装置,通过应用层直接调用底层硬件资源接口的方式来为每路应用分配独立的硬件资源,与现有技术对调用底层硬件封装的方式相比,显著减少了图形在远端显示的时延。同时,通过GPU底层处理技术直接在硬件底层截取各路图形数据,在提高服务器处理速度的同时减少了图形服务器展现对硬件资源的消耗。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分。在附图中:
图1是本发明实现图形处理器虚拟化的方法的一个实施例的流程示意图。
图2是本发明实施例的总体功能架构示意图。
图3是本发明实现图形处理器虚拟化的方法的另一实施例的流程示意图。
图4是本发明实施例实现智能GPU虚拟化的流程示意图。
图5为本发明实施例进行图形数据处理与流化的流程示意图。
图6是本发明实现图形处理器虚拟化的装置的一个实施例的结构示意图。
图7是本发明实现图形处理器虚拟化的装置的另一实施例的结构示意图。
具体实施方式
下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。本发明的示例性实施例及其说明用于解释本发明,但并不构成对本发明的不当限定。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
为了解决主流虚拟化技术无法实现的适用于图形数据处理的GPU虚拟化问题,本发明下述实施例通过直接调用GPU硬件机制实现底层硬件和应用层贯穿的虚拟化方式来满足云应用的智能分配GPU资源需求,能够面向弱终端提供高端图形互动业务,同时通过云端图形运行数据实时提取和处理来提升服务质量和服务器效能。其中,弱终端是相对PC等能力较强的终端而言,一般CPU处理能力小于800MHz并且没有图形渲染能力,根本无法运行大型增值服务的终端,例如,机顶盒、可联网的电视机等。
图1是本发明实现图形处理器虚拟化的方法的一个实施例的流程示意图。
如图1所示,该实施例可以包括以下步骤:
S102,响应于远端并发图形应用发起的服务请求,发起多路并行应用运行指令;
S104,利用GPU硬件驱动层提供的硬件资源调用接口,并根据各路并发应用的需求对云端的GPU硬件资源进行划分,以为每路应用分配独立的硬件资源,从根本上解决了现有虚拟机或虚拟机制无法直接控制GPU的缺陷,不仅将GPU本身能力开发最大化,而且具备采用云技术框架提供高端图形多路并发云应用的能力,为公众用户和弱终端提供高端增值图形应用服务发展奠定了底层GPU虚拟化的基础;
S106,基于所分配的硬件资源环境运行多路并行应用,完成各自图形的渲染;
S108,通过路径寻址机制获知每路应用所使用的硬件资源地址,并基于所获知的地址直接在硬件底层截取渲染后的输出数据;
S110,对渲染后的输出数据进行流化处理,并传输至发起各并发图形应用的远端用户,以在用户所使用的终端上直接显示各图形应用对应的图形,这种将数据截取与GPU流化处理能力紧耦合的方式使获得的图形数据与流化处理无缝衔接,最终以视频流模式传输给远端用户。
该实施例通过应用层直接调用底层硬件资源接口的方式来为每路应用分配独立的硬件资源,与现有技术对调用底层硬件封装的方式相比,显著减少了图形在远端显示的时延。同时,通过GPU底层处理技术直接在硬件底层截取各路图形数据,在提高服务器处理速度的同时减少了图形服务器展现对硬件资源的消耗。
其中,步骤S102中的服务请求可以包括图形应用显示、图形应用暂停以及图形应用退出。
在服务请求为图形应用显示和图形应用暂停的情况下,构建图形应用的GPU虚拟运行容器。在服务请求为图形应用退出的情况下,释放为图形应用所分配的GPU虚拟运行容器。
此外,在进行流化处理之前,根据用户网络条件确定图形数据传输的最大帧数和码流,并实时封装渲染后的输出数据。
对于支持多应用并行处理的图形渲染能力而言,为了避免因为多块GPU交火带来的性能降低,须定位到具体的GPU硬件,因此可以考虑将为一个图形应用分配的硬件资源设置在一块显卡上,避免出现一个应用跨双显卡或多个显卡运行的现象。
需要指出的是,适应于图形数据处理的智能GPU虚拟化,并非单独承担游戏等图形应用的运行,还须结合已成熟的CPU虚拟化模拟实现简洁的虚拟机功能,但GPU虚拟化是整个虚拟化的核心,也是图形应用运行的基础和保证。以多路图形应用运行为例,详细说明整体服务过程:
(1)多路并行应用管理:响应多用户多终端侧游戏等图形应用请求,根据应用与服务本身属性确定其所需的硬件资源,再根据确定的硬件资源需求智能判断所需硬件环境,将多路并发请求自应用层发送给介于应用层与硬件和操作系统层之间的资源虚拟层。同时,监控虚拟化应用的运行情况以及用户启动、存储、暂停和退出图形应用请求等;
(2)GPU资源虚拟化:根据多路并行应用运行指令,为相关应用构建GPU虚拟运行容器或退出为相关应用分配的GPU虚拟运行容器,具体地,采用渗透技术完成对GPU硬件资源的按需分割,所谓渗透技术即直接采用GPU硬件驱动层提供的硬件资源调用接口实现对资源的分割,类似于水渗透过程,因此被称为渗透技术,将云端服务器GPU看作图形渲染、图形存储和流化处理的资源池,按照每个图形应用的请求智能划分GPU硬件资源,并与CPU配合完成对图形应用运行环境的构建或释放;
(3)多应用运行处理:在划分好的虚拟运行容器中分别对应地运行相应的图形应用,运行后的数据交付给图形运行数据处理部分;
(4)图形运行数据处理:通过GPU底层处理技术,利用对各路图形应用所占用的地址信息直接在硬件底层截取各路游戏运行后的数据,这样在提高云端服务器处理速度的同时,还可以减少服务器展现图形对硬件造成的资源消耗。同时对截取数据,按照网络传输的要求进行处理,并反馈到远端用户形成交互。
上述除第(1)步属于操作系统应用层多路并发管理外,其他步骤均需与硬件底层进行交互,构建硬件驱动层的通信通道,调动和构建软硬件环境。例如,GPU多路并发应用地址的分配、数据的截取和对应流化处理等。
综上可见,本发明上述整体服务过程可以概括为:云端服务器响应来自远端多用户、多终端或多应用的服务请求,发起多路并行应用运行指令;采用本发明独创的渗透技术,在GPU资源整体调度下为每个应用分配虚拟GPU硬件资源;在单独隔离的GPU虚拟硬件环境中,运行应用以完成各自图形的渲染;通过路径寻址机制,即基于为各应用分配的地址信息截取各应用GPU虚拟渲染输出数据,并结合声音等数据实现流化处理,完成从GPU虚拟化到图形数据处理的全部过程;截取获得的数据将被转化为视频流传输给远端用户,以在弱终端上显示。
图2是本发明实施例的总体功能架构示意图。
如图2所示,主要阐释了在单台云端服务器中实现适用于图形处理的GPU虚拟化结构,其可以支持多路图形应用并发,并获取其图形渲染数据的功能。需要指出的是,本发明不仅适用于单台云端服务器,还可以通过管理系统实现多台服务器之间的协同与调度。
其中,应用层响应多用户、多应用请求,开启/运行/暂停/终止图形应用,并基于底层硬件资源分配,在应用层上运行应用。GPU虚拟化层针对单台云端服务器的多GPU系统,将多个GPU硬件构建成统一的硬件资源池,并将其流处理器按照应用与服务的运行需求进行分配,并根据所分配的硬件资源建立路径标识机制,即针对不同应用的硬件地址标识出相应的运行路径;同时将应用和GPU底层硬件对接,为每个应用运行分配GPU硬件资源路径;每个应用在为其分配的硬件资源路径上实现各自的图形渲染和运行;针对每一路的应用截取其输出的图形渲染数据,并完成处理,同时屏蔽其在服务器桌面上的输出。
再参见图2,GPU虚拟化层中的智能GPU虚拟化可以包括:构建GPU资源池、GPU资源分配和路径设置、智能构建应用虚拟GPU环境和运行图形应用。
(1)构建GPU资源池
基于服务器具备配置多个GPU的能力,采取服务器GPU能力汇聚的方式建立整体资源池。该资源池除集中了GPU基础的图形渲染能力外,还集中了流处理能力和图形数据存储能力,其中流处理能力是指具有支撑多路视频采集和编码的逻辑运算能力;针对图形数据存储能力,衡量它的技术指标是显存,不仅代表着GPU通用的处理能力,而且还体现了渲染数据的存储容量。这种资源池构建方式既做到了资源的统一调配,又避免了多块GPU交火产生的性能下降,实现了GPU各种能力的统一调配。
(2)GPU资源分配和路径设置
基于创建的GPU整体资源池,对其所属能力进行分配和路径统一设置,以便于硬件资源能力的寻址和调用。针对不同的GPU能力,采用不同的策略分配,对于支持多应用并行处理的图形渲染能力而言,为了避免因为多块GPU交火带来的性能降低,必须定位到具体的GPU硬件,避免出现一个应用跨双显卡或跨多显卡运行的现象。此过程重点处理的是进行图形数据存储路径编号,并根据编号判断每个应用图形数据输出实时存储的位置,以及将路径编号与流处理相对应,为应用分GPU图形处理,需建立GPU显存的地址空间标识,作为寻址路径与流处理能力对应依据。
以在单台服务器上运行多路游戏为例进行说明,首先根据每个游戏资源需求,分配相应的GPU硬件资源,而且要精确定位到相应硬件资源;根据分配的硬件地址,设置相应的路径编码,为构建虚拟运营环境奠定基础。
(3)智能构建应用虚拟GPU环境
根据应用请求和应用本身运行所需的相关硬件环境智能确定所需GPU资源,按照应用的图形渲染、图形数据存储和流处理能力分配运行所需硬件环境。该过程主要实现图形数据寻址、存储空间映射并与流处理能力对应等,除了确保图形应用的运行外,还为图形数据后续处理奠定基础。
(4)运行图形应用
在准备好的GPU虚拟环境中运行对应的图形应用,并进入图形数据截取处理流程。
再参见图2,GPU虚拟化层中的图形数据处理与流化可以包括:获取图形数据、封装成标准文件格式和流化处理等。
(1)获取图形数据
在GPU虚拟化过程中,针对每个并行的图形应用分配的GPU虚拟环境寻址图形数据输出的存储地址,同步直接获取并行运行应用图形数据。在获取图形数据的同时,为了降低各应用图形输出对系统资源的耗用,屏蔽在操作系统桌面的呈现。此过程中,获取的图形数据均为二进制的数据模式。
(2)封装成标准的文件格式
将获取的图形二进制数据按照需求实时封装成标准的文件格式。因实时输出的应用图形数据是连续性的,在封装过程中,需同时兼顾用户应用请求、应用输出和网络状况等,进一步地说,即需控制数据量的大小,用户请求可以分为高清和标清,网络带宽也限制是否能够支持高清传输,因此在封装过程中需根据对应清晰度控制数据分装量。
首先要考虑的是网络状况,根据用户网络条件判断图形数据传输的最大帧数和码流,其中,帧数就是在1秒钟时间里传输的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次,通常用fps(Frames Per Second)表示;码流(Data Rate)是指视频文件在单位时间内使用的数据流量,也叫码率,是视频编码中画面质量控制中最重要的部分。其次,判断是否满足用户的应用高清或标清请求特点,以用户网络带宽为基准,满足8MHz则可提供高清服务,小于8MHz则只能提供标清服务,结合应用情况和用户网络状况给予最佳的封装处理,满足最佳效果。为了确保应用流畅,根据封装逻辑对应图形帧数情况,将应用输出的二进制数据按照对应时长实时封装成标准文件。如果是高互动性应用,需要每秒封装60帧的画面数据,对于低互动应用,则每秒20-30帧画面数据即可。
(3)流化处理
将封装好的标准文件实时编码成标准的视频码流,例如,H.264。此过程处理可以由软件编码器实现,硬件层GPU提供多应用对应的流化处理能力,关键是实现图形数据和流化处理的一一对应。
基于上述总体功能架构可以通过网络将处理后的图形数据传输给远端弱终端,同时获取终端远程外设指令,并将指令回传给云端服务器完成实时互动,即可完整地实现整个应用过程。
图3是本发明实现图形处理器虚拟化的方法的另一实施例的流程示意图。
如图3所示,该实施例可以包括以下步骤:
S302,云端服务器接收远端用户发起的应用请求;
S304,根据每个应用所需的运行环境判断软硬件环境是否具备运行条件,如具备运行条件,则转S308,由服务器开始分配运行环境,即,直接采用GPU硬件驱动层提供的硬件资源调用接口,实现资源分割,否则,转S306;
S306,返回“应用无法运行”的提示;
S308,构建应用运行的GPU虚拟环境,并运行应用,即,在为用户分配的GPU硬件资源内,为每路应用构建相对独立的运行空间,并运行相关应用;
S310,运行图形应用;
S312,寻址到每个应用运行和存储的硬件资源环境,通过显存寻址获取应用输出的图形数据;
S314,进行声音等其他资源的映射;
S316,对图形数据进行流化处理,即,调用GPU能力实现应用数据的视频编码处理,形成视频流等传送至远端的用户。
图4是本发明实施例实现智能GPU虚拟化的流程示意图。
如图4所示,该流程包括以下步骤:
S402,检测GPU/显卡资源;
S404,判断GPU/显卡的数量,如为一块GPU/显卡,则转S408,否则,在为多块GPU/显卡的情况下,转S406;
S406,汇集多块GPU资源;
S408,构建GPU资源池,该资源池中包括图形渲染能力、图形数据存储能力和流处理能力;
S410,进行GPU资源分配和路径设置,包括渲染能力分割、数据存储地址映射和流化能力对应;
S412,智能构建应用虚拟GPU环境;
S414,运行图形应用。
图5为本发明实施例进行图形数据处理与流化的流程示意图。
如图5所示,该流程包括以下步骤:
S502,寻址应用图形数据存储地址;
S504,根据存储地址获取图形数据;
S506,根据网络状况判断是否满足高清输出要求,如果满足,则转S508,否则,转S510;
S508,实现网络适配高清模式,转S512;
S510,实现网络适配标清模式;
S512,结合用户请求和应用情况将数据封装为标准文件;
S514,结合声音输出流化为标准音视频流。
本领域普通技术人员可以理解,实现上述方法实施例的全部和部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算设备可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤,而前述的存储介质可以包括ROM、RAM、磁碟和光盘等各种可以存储程序代码的介质。
图6是本发明实现图形处理器虚拟化的装置的一个实施例的结构示意图。
如图6所示,该实施例中的装置60可以包括图形应用启动单元602、硬件资源分配单元604、图形应用运行单元606、输出数据截取单元608以及图形数据传输单元610。
其中,图形应用启动单元602响应于远端并发图形应用发起的服务请求,发起多路并行应用运行指令;硬件资源分配单元604利用图形处理器GPU硬件驱动层提供的硬件资源调用接口,并根据各路并发应用的需求对云端的GPU硬件资源进行划分,以为每路应用分配独立的硬件资源;图形应用运行单元606基于所分配的硬件资源环境运行多路并行应用,完成各自图形的渲染;输出数据截取单元608通过路径寻址机制获知每路应用所使用的硬件资源地址,并基于所获知的地址直接在硬件底层截取渲染后的输出数据;图形数据传输单元610对渲染后的输出数据进行流化处理,并传输至发起各并发图形应用的远端用户,以在用户所使用的终端上直接显示各图形应用对应的图形。
其中,服务请求包括图形应用显示、图形应用暂停以及图形应用退出。在服务请求为图形应用显示和图形应用暂停的情况下,硬件资源分配单元构建图形应用的GPU虚拟运行容器。在服务请求为图形应用退出的情况下,硬件资源分配单元释放为图形应用所分配的GPU虚拟运行容器。
可选地,为了避免多块GPU交火带来的性能下降,硬件资源分配单元为一个图形应用分配的硬件资源处于一块显卡上。
图7是本发明实现图形处理器虚拟化的装置的另一实施例的结构示意图。
如图7所示,该实施例中的装置70还可以包括输出数据封装单元702,其在进行流化处理之前,根据用户网络条件确定图形数据传输的最大帧数和码流,并实时封装渲染后的输出数据。
本发明上述实施例突破了主流虚拟化技术无法实现的适用于图形数据处理的难题,采用渗透技术实现使用图形应用的GPU虚拟化机制,支撑弱终端高端图形互动,通过云端图形运行数据实时提取和流化处理提升了服务质量和服务器效能。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同和相似的部分可以相互参见。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处可以参见方法实施例部分的说明。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。

Claims (12)

1.一种实现图形处理器虚拟化的方法,其特征在于,包括:
响应于远端并发图形应用发起的服务请求,发起多路并发应用运行指令;
利用图形处理器GPU硬件驱动层提供的硬件资源调用接口,并根据各路并发应用的需求对云端的GPU硬件资源进行划分,以为每路应用分配独立的硬件资源,其中,根据多路并发应用运行指令,为相关应用构建GPU虚拟运行容器或退出为相关应用分配的GPU虚拟运行容器;
基于所分配的硬件资源运行所述多路并发应用,完成各自图形的渲染;
通过路径寻址机制获知每路应用所使用的硬件资源地址,并基于所获知的地址直接在硬件底层截取渲染后的输出数据;
对渲染后的输出数据进行流化处理,并传输至发起各并发图形应用的远端用户,以在用户所使用的终端上直接显示各图形应用对应的图形。
2.根据权利要求1所述的实现图形处理器虚拟化的方法,其特征在于,所述服务请求包括图形应用显示、图形应用暂停以及图形应用退出。
3.根据权利要求2所述的实现图形处理器虚拟化的方法,其特征在于,在服务请求为图形应用显示和图形应用暂停的情况下,构建图形应用的GPU虚拟运行容器。
4.根据权利要求2所述的实现图形处理器虚拟化的方法,其特征在于,在服务请求为图形应用退出的情况下,释放为图形应用所分配的GPU虚拟运行容器。
5.根据权利要求1所述的实现图形处理器虚拟化的方法,其特征在于,为一个图形应用分配的硬件资源处于一块显卡上。
6.根据权利要求1所述的实现图形处理器虚拟化的方法,其特征在于,所述方法还包括:
在进行流化处理之前,根据用户网络条件确定图形数据传输的最大帧数和码流,并实时封装渲染后的输出数据。
7.一种实现图形处理器虚拟化的装置,其特征在于,包括:
图形应用启动单元,用于响应于远端并发图形应用发起的服务请求,发起多路并发应用运行指令;
硬件资源分配单元,用于利用图形处理器GPU硬件驱动层提供的硬件资源调用接口,并根据各路并发应用的需求对云端的GPU硬件资源进行划分,以为每路应用分配独立的硬件资源,其中,根据多路并发应用运行指令,为相关应用构建GPU虚拟运行容器或退出为相关应用分配的GPU虚拟运行容器;
图形应用运行单元,用于基于所分配的硬件资源运行所述多路并发应用,完成各自图形的渲染;
输出数据截取单元,用于通过路径寻址机制获知每路应用所使用的硬件资源地址,并基于所获知的地址直接在硬件底层截取渲染后的输出数据;
图形数据传输单元,用于对渲染后的输出数据进行流化处理,并传输至发起各并发图形应用的远端用户,以在用户所使用的终端上直接显示各图形应用对应的图形。
8.根据权利要求7所述的实现图形处理器虚拟化的装置,其特征在于,所述服务请求包括图形应用显示、图形应用暂停以及图形应用退出。
9.根据权利要求8所述的实现图形处理器虚拟化的装置,其特征在于,在服务请求为图形应用显示和图形应用暂停的情况下,所述硬件资源分配单元构建图形应用的GPU虚拟运行容器。
10.根据权利要求8所述的实现图形处理器虚拟化的装置,其特征在于,在服务请求为图形应用退出的情况下,所述硬件资源分配单元释放为图形应用所分配的GPU虚拟运行容器。
11.根据权利要求7所述的实现图形处理器虚拟化的装置,其特征在于,所述硬件资源分配单元为一个图形应用分配的硬件资源处于一块显卡上。
12.根据权利要求7所述的实现图形处理器虚拟化的装置,其特征在于,所述装置还包括:
输出数据封装单元,用于在进行流化处理之前,根据用户网络条件确定图形数据传输的最大帧数和码流,并实时封装渲染后的输出数据。
CN201210304256.2A 2012-08-24 2012-08-24 实现图形处理器虚拟化的方法与装置 Active CN103631634B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210304256.2A CN103631634B (zh) 2012-08-24 2012-08-24 实现图形处理器虚拟化的方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210304256.2A CN103631634B (zh) 2012-08-24 2012-08-24 实现图形处理器虚拟化的方法与装置

Publications (2)

Publication Number Publication Date
CN103631634A CN103631634A (zh) 2014-03-12
CN103631634B true CN103631634B (zh) 2017-07-25

Family

ID=50212731

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210304256.2A Active CN103631634B (zh) 2012-08-24 2012-08-24 实现图形处理器虚拟化的方法与装置

Country Status (1)

Country Link
CN (1) CN103631634B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104952096B (zh) * 2014-03-31 2018-06-08 中国电信股份有限公司 Cpu和gpu混合云渲染方法、装置和系统
CN108345492A (zh) 2014-04-08 2018-07-31 华为技术有限公司 一种虚拟化环境中的数据通信的方法、装置及处理器
CN104750560B (zh) * 2015-03-06 2018-12-14 联想(北京)有限公司 一种信息处理方法及电子设备
CN104660711A (zh) * 2015-03-13 2015-05-27 华存数据信息技术有限公司 一种基于图形处理器虚拟化的远程可视化应用方法
US10580105B2 (en) 2015-05-29 2020-03-03 Intel Corporation Container access to graphics processing unit resources
CN105554096A (zh) * 2015-12-11 2016-05-04 鹏博士电信传媒集团股份有限公司 一种云游戏云端服务的实现方法及系统
CN105677479B (zh) * 2015-12-30 2019-05-10 北京奇艺世纪科技有限公司 并行运行gpu运算程序的实现方法及装置
CN108334396B (zh) * 2017-01-19 2022-12-30 阿里巴巴集团控股有限公司 一种数据处理方法和装置、资源组的创建方法和装置
CN108804217A (zh) * 2017-04-26 2018-11-13 中兴通讯股份有限公司 一种资源调度装置、资源调度系统和资源调度方法
CN108804199B (zh) * 2017-05-05 2021-03-05 龙芯中科技术股份有限公司 图形处理器虚拟化方法及装置
CN107423115B (zh) * 2017-07-28 2020-06-02 西安万像电子科技有限公司 显卡虚拟化的方法、装置和系统
CN108388460B (zh) * 2018-02-05 2021-05-18 中国人民解放军战略支援部队航天工程大学 基于图形集群的远程实时渲染平台构建方法
CN109656714B (zh) * 2018-12-04 2022-10-28 成都雨云科技有限公司 一种虚拟化显卡的gpu资源调度方法
CN110196753A (zh) * 2019-01-21 2019-09-03 腾讯科技(北京)有限公司 基于容器的图形处理器gpu虚拟化方法、装置和可读介质
CN109949201B (zh) * 2019-01-29 2023-04-07 福建多多云科技有限公司 一种Linux容器的图像渲染加速方法
CN110688230B (zh) * 2019-10-17 2022-06-24 广州文远知行科技有限公司 一种同步训练方法、装置、计算机设备和存储介质
CN112783384A (zh) * 2019-11-08 2021-05-11 荣耀终端有限公司 一种云应用运行的控制方法及电子设备
CN111399976A (zh) * 2020-03-02 2020-07-10 上海交通大学 基于api重定向技术的gpu虚拟化实现系统及方法
CN111552554A (zh) * 2020-05-09 2020-08-18 中瓴智行(成都)科技有限公司 基于图形库api代理的gpu虚拟化方法、系统及介质
CN112102457A (zh) * 2020-08-28 2020-12-18 西安万像电子科技有限公司 3d渲染方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101419558A (zh) * 2008-11-13 2009-04-29 湖南大学 Cuda图形子系统虚拟化方法
CN102446341A (zh) * 2010-09-30 2012-05-09 联想(北京)有限公司 服务器及其图像处理方法
CN102541618A (zh) * 2010-12-29 2012-07-04 中国移动通信集团公司 一种通用图形处理器虚拟化的实现方法、系统及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8803892B2 (en) * 2010-06-10 2014-08-12 Otoy, Inc. Allocation of GPU resources across multiple clients
JP5808424B2 (ja) * 2010-12-15 2015-11-10 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ネットワーク対応アプリケーションのためのハードウェア・アクセラレーテッド・グラフィックス

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101419558A (zh) * 2008-11-13 2009-04-29 湖南大学 Cuda图形子系统虚拟化方法
CN102446341A (zh) * 2010-09-30 2012-05-09 联想(北京)有限公司 服务器及其图像处理方法
CN102541618A (zh) * 2010-12-29 2012-07-04 中国移动通信集团公司 一种通用图形处理器虚拟化的实现方法、系统及装置

Also Published As

Publication number Publication date
CN103631634A (zh) 2014-03-12

Similar Documents

Publication Publication Date Title
CN103631634B (zh) 实现图形处理器虚拟化的方法与装置
CN110227259B (zh) 一种数据处理的方法、装置、服务器和系统
CN103701807B (zh) 一种vdi环境下的数据发送方法和装置
CN106390449A (zh) 一种基于图形虚拟化技术的云游戏框架
CN108881916A (zh) 远程桌面的视频优化处理方法及装置
CN103067468B (zh) 云调度方法及其系统
CN109304031A (zh) 一种基于异构智能终端的虚拟化云游戏平台
WO2022242358A1 (zh) 图像处理方法、装置、计算机设备及存储介质
US20240070800A1 (en) Accessing local memory of a gpu executing a first kernel when executing a second kernel of another gpu
US20140063028A1 (en) Memory Space Mapping Techniques for Server Based Graphics Processing
CN102855133A (zh) 一种计算机处理单元交互式系统
CN106101751A (zh) 基于Android操作系统的播放器以及嵌入式播放盒
CN115065684B (zh) 数据处理方法、装置、设备以及介质
CN109725977A (zh) 一种基于Android系统的多应用显示方法及终端设备
CN102857533B (zh) 一种基于云计算的远程交互式系统
CN105491021A (zh) 一种Android云应用服务器及Android云应用服务器系统
CN114968152B (zh) 减少virtio-gpu额外性能损耗的方法
CN101908033A (zh) 一种多用户远程使用多个主计算机的方法和装置
CN103268253A (zh) 一种智能化的多尺度并行渲染作业调度管理方法
CN114567784B (zh) 一种用于飞腾显卡的vpu视频解码输出方法及系统
CN112835730A (zh) 图像存储、内存分配、图像合成方法、装置、设备及介质
CN107544805B (zh) 基于Android系统可复用框架的手机游戏系统架构
US20140055470A1 (en) Host Context Techniques for Server Based Graphics Processing
WO2024051148A1 (zh) 云游戏控制方法、装置、电子设备及存储介质
CN102857534B (zh) 一种基于云计算的远程交互方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant