云游戲中虛擬gpu資源自主管理與控制方法
【專利摘要】本發(fā)明提供了一種云游戲中虛擬GPU資源自主管理與控制方法,包括步驟:構(gòu)建Auto-vGPU框架;使用基于LASS0的降維算法以選擇關(guān)鍵指標(biāo)數(shù)據(jù)作為系統(tǒng)輸入,來(lái)支持AutoiGPU框架擬合低維的輸入輸出模型;利用PI控制器參數(shù)自動(dòng)配置算法,自動(dòng)控制Auto-vGPU框架中vGASA模塊中的參數(shù)配置,減少人工操作,支持Auto-vGPU框架在動(dòng)態(tài)復(fù)雜的云環(huán)境中保持良好的性能。本發(fā)明實(shí)現(xiàn)了虛擬GPU資源的自動(dòng)化管理,并使用LASS0/LARS降維技術(shù),自動(dòng)化減少虛擬機(jī)中每個(gè)游戲的輸入量,還通過(guò)采用根據(jù)期望性能自動(dòng)化配置PI參數(shù)的方法,設(shè)計(jì)在線控制器。
【專利說(shuō)明】云游戲中虛擬GPU資源自主管理與控制方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及虛擬GPU管理和控制方法,具體地,涉及云游戲中虛擬GPU資源自主管 理與控制方法。
【背景技術(shù)】
[0002] 云游戲是以云計(jì)算為基礎(chǔ)的游戲方式,在云游戲的運(yùn)行模式下,所有游戲都在服 務(wù)器端運(yùn)行,并將渲染完畢后的游戲畫(huà)面壓縮后通過(guò)網(wǎng)絡(luò)傳送給用戶。在云游戲的概念中, 玩家的游戲客戶端被看作為瘦客戶端,玩家在沒(méi)有高端處理器和顯卡的條件下,依然可以 方便的玩新游戲。云游戲可依賴合理的資源分配實(shí)現(xiàn)經(jīng)濟(jì)利益的最大化,但這要解決資源 調(diào)度和管理方面的難題。
[0003] 當(dāng)前,有一種自適應(yīng)的虛擬GPU資源調(diào)度方案vGASA。該方案運(yùn)行在虛擬化環(huán)境 中,利用GPU虛擬化技術(shù)實(shí)現(xiàn)資源的共享。調(diào)度虛擬化資源所面臨的一個(gè)挑戰(zhàn)是,如何在存 在運(yùn)行時(shí)間(如CPU、GPU執(zhí)行時(shí)間)不確定的情況下,讓調(diào)度方案的設(shè)計(jì)擁有魯棒性。為 了克服這一挑戰(zhàn),vGASA使用了基于線性單輸入單輸出模型(SIS0)的反饋控制方法,其中 的SIS0使用模型擬合技術(shù)離線建立。
[0004] 但是,在不確定、大規(guī)模、復(fù)雜的云環(huán)境中,這種模型和控制器的離線設(shè)計(jì)不能滿 足快速自動(dòng)化設(shè)計(jì)的需求,同時(shí)也不能滿足真實(shí)云游戲服務(wù)的可靠性需求,原因有以下幾 占·
[0005] (1)這種離線設(shè)計(jì)使用試驗(yàn)性質(zhì)的PI控制調(diào)節(jié)方法,需要進(jìn)行大量的實(shí)驗(yàn)來(lái)達(dá)到 系統(tǒng)期望的性能;
[0006] (2)未知的變化可能導(dǎo)致系統(tǒng)的性能降級(jí),這會(huì)使整個(gè)系統(tǒng)(包括模型和控制器) 需要被重新設(shè)計(jì);
[0007] (3)在綜合的虛擬化環(huán)境中,手工的離線設(shè)計(jì)將花費(fèi)大量的時(shí)間在日常的大數(shù)量 的主機(jī)和虛擬機(jī)的操作上;
[0008] (4)給定的控制器只能在主機(jī)和虛擬機(jī)的配置是特定不變的情況下發(fā)揮作用,而 在在線的云游戲平臺(tái)中,經(jīng)常會(huì)出現(xiàn)虛擬機(jī)遷移的動(dòng)態(tài)云環(huán)境現(xiàn)象。
[0009] 因此,需要設(shè)計(jì)一種自動(dòng)化管理虛擬GPU資源的框架,以減少在系統(tǒng)管理中的人 為誤操作,從而提供可靠的云游戲服務(wù)。
【發(fā)明內(nèi)容】
[0010] 針對(duì)現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的是提供一種云游戲中虛擬GPU資源自主管 理與控制方法。
[0011] 本發(fā)明主要涉及三個(gè)主要的發(fā)明點(diǎn):Aut〇-VGPU框架,基于LASSO的降維算法,PI 控制器參數(shù)自動(dòng)配置算法。
[0012] Auto-vGPU框架是系統(tǒng)的整體架構(gòu),使用基于LASSO的降維算法,對(duì)運(yùn)行在虛擬機(jī) 中的游戲,在線學(xué)習(xí)設(shè)計(jì)一種低維模型,并運(yùn)用PI調(diào)節(jié)器的自動(dòng)化調(diào)節(jié)理論,實(shí)現(xiàn)在線自 動(dòng)配置控制器的參數(shù),Auto-vGPU是一種新型的自動(dòng)化管理GPU資源,提供可靠云游戲服務(wù) 的架構(gòu)。
[0013] 基于LASSO的降維算法,主要用以選擇關(guān)鍵指標(biāo)數(shù)據(jù)作為系統(tǒng)輸入,支持 Auto-vGPU框架擬合低維的輸入輸出模型。
[0014] PI控制器參數(shù)自動(dòng)配置算法,主要用以自動(dòng)控制VGASA模塊中的參數(shù)配置,減少 人工操作,支持Auto-vGPU框架在動(dòng)態(tài)復(fù)雜的云環(huán)境中保持良好的性能。
[0015] 通過(guò)這3個(gè)發(fā)明點(diǎn)的共同作用,我們能夠得到的效果為:在動(dòng)態(tài)的虛擬機(jī)操作環(huán) 境中,在無(wú)需人工干預(yù)的條件下,Auto-vGPU能夠自動(dòng)管理虛擬化的GPU資源。通過(guò)我們的 實(shí)驗(yàn)可以看出,用于測(cè)試的工作負(fù)載的FPS波動(dòng)范圍都很小,僅從29到30,并且當(dāng)有新的工 作負(fù)載加入時(shí),Auto-vGPU框架能夠維持原先已有工作負(fù)載的性能以及它們占有的資源,同 時(shí),對(duì)新工作負(fù)載的最相關(guān)輸入設(shè)置相應(yīng)的睡眠時(shí)間,不會(huì)嚴(yán)重影響到其他工作負(fù)載的運(yùn) 行。這些都說(shuō)明,我們的框架具有良好的可靠性和可擴(kuò)展性。
[0016] 本發(fā)明采用的技術(shù)方案如下:
[0017] 根據(jù)本發(fā)明提供的一種云游戲中虛擬GPU資源自主管理與控制方法,包括:
[0018] 構(gòu)建 Auto-vGPU 框架;
[0019] 使用基于LASS0的降維算法以選擇關(guān)鍵指標(biāo)數(shù)據(jù)作為系統(tǒng)輸入,來(lái)支持 Auto-vGPU框架擬合低維的輸入輸出模型;
[0020] 利用PI控制器參數(shù)自動(dòng)配置算法,以自動(dòng)控制Auto-vGPU框架中vGASA模塊中的 參數(shù)配置,減少人工操作,支持Auto-vGPU框架在動(dòng)態(tài)復(fù)雜的云環(huán)境中保持良好的性能;
[0021] 其中,Auto-vGPU框架包括:傳感器模塊、建模模塊、vGASA模塊、自控配置模塊;
[0022] 傳感器模塊用于收集操作系統(tǒng)和應(yīng)用的參數(shù),并將所述操作系統(tǒng)和應(yīng)用的參數(shù)集 成為數(shù)據(jù)集發(fā)送到建模模塊;其中,所述操作系統(tǒng)和應(yīng)用的參數(shù)包括GPU的執(zhí)行時(shí)間、CPU 的執(zhí)行時(shí)間、睡眠時(shí)間、幀率FPS ;
[0023] 建模模塊用于自動(dòng)化分析傳感器模塊傳來(lái)的數(shù)據(jù)集,合成一個(gè)輸入輸出模型,該 輸入輸出模型用于捕獲游戲應(yīng)用性能和系統(tǒng)資源之間的關(guān)系;
[0024] vGASA模塊包括監(jiān)視器、調(diào)度控制器、調(diào)度程序、虛擬機(jī)列表和圖形API分析器。監(jiān) 視器和調(diào)度程序包含各個(gè)虛擬機(jī)對(duì)應(yīng)的代理,監(jiān)視器將虛擬機(jī)的實(shí)時(shí)性能輸送到調(diào)度控制 器,調(diào)度控制器從所有運(yùn)行的虛擬機(jī)中獲取反饋的性能數(shù)據(jù),然后發(fā)送命令觸發(fā)自控配置 模塊工作;圖形API分析器預(yù)測(cè)GPU命令的執(zhí)行代價(jià);虛擬機(jī)列表記錄當(dāng)前正在運(yùn)行的虛 擬機(jī),從而將所有運(yùn)行著的虛擬機(jī)編入索引;當(dāng)一個(gè)新的虛擬機(jī)啟動(dòng)時(shí),該新的虛擬機(jī)自動(dòng) 被添加到vGASA模塊的虛擬機(jī)列表中;vGASA模塊截取虛擬機(jī)發(fā)送給主機(jī)圖形函數(shù)庫(kù)的庫(kù) 調(diào)用;若某個(gè)游戲客戶端應(yīng)用調(diào)用GPU的API,此調(diào)用會(huì)被重定向到Auto-vGPU框架,并根 據(jù)當(dāng)前所有運(yùn)行中的虛擬機(jī)的FPS,進(jìn)行資源的調(diào)度;
[0025] 自控配置模塊用于自動(dòng)控制vGASA模塊中的參數(shù)配置。
[0026] 優(yōu)選地,通過(guò)如下方式建立傳感器模塊:
[0027] 方式(1):針對(duì)操作系統(tǒng)性能指標(biāo),封裝一個(gè)命名為Request的函數(shù),以用于獲取 操作系統(tǒng)的參數(shù),操作系統(tǒng)的參數(shù)包括GPU的執(zhí)行時(shí)間、CPU的執(zhí)行時(shí)間,從而計(jì)算不同游 戲在固定的時(shí)間周期內(nèi)所占用的資源量;
[0028] 方式(2):針對(duì)游戲運(yùn)行性能指標(biāo),獲取游戲客戶端內(nèi)部的參數(shù)數(shù)據(jù),游戲客戶端 內(nèi)部的參數(shù)數(shù)據(jù)包括睡眠時(shí)間、幀率,將游戲客戶端內(nèi)部的參數(shù)數(shù)據(jù)發(fā)送到建模模塊做進(jìn) 一步的分析。
[0029] 優(yōu)選地,為了簡(jiǎn)化輸入輸出模型,只選擇所述數(shù)據(jù)集中的關(guān)鍵指標(biāo)測(cè)量數(shù)據(jù)作為 輸入,并使用降維方法建立低維的輸入輸出模型,更具體地說(shuō),輸入輸出模型的建立使用了 能夠?qū)崿F(xiàn)降維的LARS-LASS0方法,從而實(shí)現(xiàn)選擇關(guān)鍵指標(biāo)測(cè)量數(shù)據(jù)作為輸入的功能。
[0030] 優(yōu)選地,建立低維的輸入輸出模型的過(guò)程中包括離線模型的分析,具體實(shí)現(xiàn)過(guò)程 如下:
[0031] 使用庫(kù)干預(yù)方法,即在GPU計(jì)算模型的環(huán)路中插入一個(gè)Sle印函數(shù),這樣,通過(guò) Sleep函數(shù)調(diào)整各個(gè)虛擬機(jī)的睡眠時(shí)間,來(lái)控制游戲的幀率;
[0032] 通過(guò)下式(1)算出睡眠時(shí)間Tsleep,式(1)中幀率F已知:
【權(quán)利要求】
1. 一種云游戲中虛擬GPU資源自主管理與控制方法,其特征在于,包括: 構(gòu)建Auto-vGPU框架; 使用基于LASSO的降維算法以選擇關(guān)鍵指標(biāo)數(shù)據(jù)作為系統(tǒng)輸入,來(lái)支持Auto-vGPU框 架擬合低維的輸入輸出模型; 利用PI控制器參數(shù)自動(dòng)配置算法,以自動(dòng)控制Auto-vGPU框架中vGASA模塊中的參數(shù) 配置,減少人工操作,支持Auto-vGPU框架在動(dòng)態(tài)復(fù)雜的云環(huán)境中保持良好的性能; 其中,Auto-vGPU框架包括:傳感器模塊、建模模塊、vGASA模塊、自控配置模塊; 傳感器模塊用于收集操作系統(tǒng)和應(yīng)用的參數(shù),并將所述操作系統(tǒng)和應(yīng)用的參數(shù)集成為 數(shù)據(jù)集發(fā)送到建模模塊;其中,所述操作系統(tǒng)和應(yīng)用的參數(shù)包括GPU的執(zhí)行時(shí)間、CPU的執(zhí) 行時(shí)間、睡眠時(shí)間、幀率FPS ; 建模模塊用于自動(dòng)化分析傳感器模塊傳來(lái)的數(shù)據(jù)集,合成一個(gè)輸入輸出模型,該輸入 輸出模型用于捕獲游戲應(yīng)用性能和系統(tǒng)資源之間的關(guān)系; vGASA模塊包括監(jiān)視器、調(diào)度控制器、調(diào)度程序、虛擬機(jī)列表和圖形API分析器。監(jiān)視器 和調(diào)度程序包含各個(gè)虛擬機(jī)對(duì)應(yīng)的代理,監(jiān)視器將虛擬機(jī)的實(shí)時(shí)性能輸送到調(diào)度控制器, 調(diào)度控制器從所有運(yùn)行的虛擬機(jī)中獲取反饋的性能數(shù)據(jù),然后發(fā)送命令觸發(fā)自控配置模塊 工作;圖形API分析器預(yù)測(cè)GPU命令的執(zhí)行代價(jià);虛擬機(jī)列表記錄當(dāng)前正在運(yùn)行的虛擬機(jī), 從而將所有運(yùn)行著的虛擬機(jī)編入索引;當(dāng)一個(gè)新的虛擬機(jī)啟動(dòng)時(shí),該新的虛擬機(jī)自動(dòng)被添 加到vGASA模塊的虛擬機(jī)列表中;vGASA模塊截取虛擬機(jī)發(fā)送給主機(jī)圖形函數(shù)庫(kù)的庫(kù)調(diào)用; 若某個(gè)游戲客戶端應(yīng)用調(diào)用GPU的API,此調(diào)用會(huì)被重定向到Auto-vGPU框架,并根據(jù)當(dāng)前 所有運(yùn)行中的虛擬機(jī)的FPS,進(jìn)行資源的調(diào)度; 自控配置模塊用于自動(dòng)控制vGASA模塊中的參數(shù)配置。
2. 根據(jù)權(quán)利要求1所述的云游戲中虛擬GPU資源自主管理與控制方法,其特征在于,通 過(guò)如下方式建立傳感器模塊: 方式(1):針對(duì)操作系統(tǒng)性能指標(biāo),封裝一個(gè)命名為Request的函數(shù),以用于獲取操作 系統(tǒng)的參數(shù),操作系統(tǒng)的參數(shù)包括GPU的執(zhí)行時(shí)間、CPU的執(zhí)行時(shí)間,從而計(jì)算不同游戲在 固定的時(shí)間周期內(nèi)所占用的資源量; 方式(2):針對(duì)游戲運(yùn)行性能指標(biāo),獲取游戲客戶端內(nèi)部的參數(shù)數(shù)據(jù),游戲客戶端內(nèi)部 的參數(shù)數(shù)據(jù)包括睡眠時(shí)間、幀率,將游戲客戶端內(nèi)部的參數(shù)數(shù)據(jù)發(fā)送到建模模塊做進(jìn)一步 的分析。
3. 根據(jù)權(quán)利要求1所述的云游戲中虛擬GPU資源自主管理與控制方法,其特征在于, 為了簡(jiǎn)化輸入輸出模型,只選擇所述數(shù)據(jù)集中的關(guān)鍵指標(biāo)測(cè)量數(shù)據(jù)作為輸入,并使用降維 方法建立低維的輸入輸出模型,更具體地說(shuō),輸入輸出模型的建立使用了能夠?qū)崿F(xiàn)降維的 LARS-LASSO方法,從而實(shí)現(xiàn)選擇關(guān)鍵指標(biāo)測(cè)量數(shù)據(jù)作為輸入的功能。
4. 根據(jù)權(quán)利要求3所述的云游戲中虛擬GPU資源自主管理與控制方法,其特征在于,建 立低維的輸入輸出模型的過(guò)程中包括離線模型的分析,具體實(shí)現(xiàn)過(guò)程如下: 使用庫(kù)干預(yù)方法,即在GPU計(jì)算模型的環(huán)路中插入一個(gè)Sleep函數(shù),這樣,通過(guò)Sleep 函數(shù)調(diào)整各個(gè)虛擬機(jī)的睡眠時(shí)間,來(lái)控制游戲的幀率; 通過(guò)下式⑴算出睡眠時(shí)間TslMP,式⑴中幀率F已知: Cl) 1000 其中,7是當(dāng)幀率F滿足期望值時(shí)每一幀顯示的時(shí)間,和Tgpu分別是一個(gè)周期內(nèi) r CPU和GPU的執(zhí)行時(shí)間;計(jì)算出睡眠時(shí)間Tsleep后,Sle印函數(shù)被調(diào)用,讓虛擬機(jī)睡眠 Tsleep長(zhǎng) 的時(shí)間; 定義
羑示睡眠時(shí)間,得到線性模型如式(2): Yi = ui; (2)
每個(gè)虛擬機(jī)的睡眠時(shí)間取決于GPU計(jì)算模型環(huán)路中的Sleep函數(shù);對(duì)于所有的游戲,有 大量的函數(shù)在虛擬機(jī)中運(yùn)行;但是,睡眠哪一函數(shù)會(huì)影響到虛擬機(jī)的圖像性能是不確定的; 為了不失一般性,假設(shè)有η個(gè)函數(shù)作為備選,使用一個(gè)線性組合來(lái)近似表示 Ui,如式(3)所 示: (3) 其中,表示回歸系數(shù),?·· %<為系統(tǒng)中對(duì)應(yīng)各個(gè)函數(shù)的輸入。
5. 根據(jù)權(quán)利要求3所述的云游戲中虛擬GPU資源自主管理與控制方法,其特征在于,建 立低維的輸入輸出模型的過(guò)程中包括使用基于LASSO的降維算法對(duì)模型進(jìn)行降維,具體步 驟如下: 步驟A1 :收集作為輸入測(cè)量值的集合的Direct3D庫(kù)中函數(shù)的睡眠時(shí)間I? j = 1,···,η,1,45和作為輸出測(cè)量值的集合的幀率yi(t+k);其中,i表示第i個(gè)工作負(fù)載,j 表示第j個(gè)函數(shù),k表示第k組測(cè)量值集合,η表示共有η個(gè)函數(shù),m表示共有m組測(cè)量值; 步驟A2 :對(duì)輸入測(cè)量值的集合+ 和輸出測(cè)量值的集合+岣進(jìn)行標(biāo)準(zhǔn)化,使 + 〇滿足零均值和單位長(zhǎng)度,yi(t+k)滿足零均值; 步驟A3 :對(duì)回歸系數(shù)絕對(duì)值之和進(jìn)行約束,使一部分計(jì)算得到的回歸系數(shù)變?yōu)?,從而 達(dá)到降維的目的。
6. 根據(jù)權(quán)利要求1所述的云游戲中虛擬GPU資源自主管理與控制方法,其特征在于,在 vGASA模塊中使用PI控制器。
7. 根據(jù)權(quán)利要求1所述的云游戲中虛擬GPU資源自主管理與控制方法,其特征在于,利 用PI控制器參數(shù)自動(dòng)配置算法,以自動(dòng)控制Auto-vGPU框架中vGASA模塊中的參數(shù)配置, 具體實(shí)現(xiàn)過(guò)程如下: 確保閉環(huán)控制的全部極點(diǎn)都在單位圓內(nèi),在PI控制器內(nèi)使用整數(shù),使用PI控制器參數(shù) 自動(dòng)配置算法,計(jì)算出恰當(dāng)?shù)膮?shù)卜和匕; PI控制器的自我配置采用極點(diǎn)配置法; 步驟B1 :基于期望的控制性能,計(jì)算出閉環(huán)系統(tǒng)的期望極點(diǎn); 步驟B2 :構(gòu)建閉環(huán)系統(tǒng)期望的特征多項(xiàng)式; 步驟B3 :算出kp和ki,以使期望特征多項(xiàng)式相似于模型特征多項(xiàng)
這一 步的完成需要將期望特征多項(xiàng)式的系數(shù)z轉(zhuǎn)變?yōu)橥P吞卣鞫囗?xiàng)式系數(shù)z -樣的形式; 接下來(lái),分析系統(tǒng)的穩(wěn)態(tài)誤差;開(kāi)環(huán)轉(zhuǎn)換函數(shù)記作?;(Ζ);當(dāng)z = 1時(shí),系統(tǒng)變?yōu)镮型系 統(tǒng),此時(shí)如果系統(tǒng)是穩(wěn)定的,那么受控變量FPS會(huì)收斂到階躍響應(yīng)。
【文檔編號(hào)】G06F9/455GK104216783SQ201410412054
【公開(kāi)日】2014年12月17日 申請(qǐng)日期:2014年8月20日 優(yōu)先權(quán)日:2014年8月20日
【發(fā)明者】姚建國(guó), 徐鑫, 管海兵 申請(qǐng)人:上海交通大學(xué)