亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于對(duì)啟用gpu的虛擬機(jī)進(jìn)行負(fù)載平衡的技術(shù)的制作方法

文檔序號(hào):6435416閱讀:234來(lái)源:國(guó)知局
專利名稱:用于對(duì)啟用gpu的虛擬機(jī)進(jìn)行負(fù)載平衡的技術(shù)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)顯示技術(shù),尤其涉及用于對(duì)啟用GPU的虛擬機(jī)進(jìn)行負(fù)載平衡的技術(shù)。
背景技術(shù)
虛擬機(jī)平臺(tái)通過(guò)在每個(gè)操作系統(tǒng)自己的虛擬機(jī)內(nèi)運(yùn)行該操作系統(tǒng)來(lái)允許多個(gè)客操作系統(tǒng)在物理機(jī)上的同時(shí)執(zhí)行??捎商摂M機(jī)中提供的一個(gè)示例性服務(wù)是虛擬桌面會(huì)話。 虛擬桌面會(huì)話在本質(zhì)上是在虛擬機(jī)內(nèi)運(yùn)行的將其用戶界面發(fā)送到遠(yuǎn)程計(jì)算機(jī)的個(gè)人計(jì)算機(jī)環(huán)境。這一體系結(jié)構(gòu)類似于遠(yuǎn)程桌面環(huán)境,但改為將多個(gè)用戶同時(shí)連接到服務(wù)器類操作系統(tǒng),在虛擬桌面會(huì)話中,每一用戶能夠訪問(wèn)在虛擬機(jī)中執(zhí)行的他們自己的商用操作系統(tǒng)?,F(xiàn)代操作系統(tǒng)實(shí)施了用于3D應(yīng)用/視頻游戲的三維(3D)圖形用戶界面及其操作系統(tǒng)用戶界面。用戶享受與3D環(huán)境交互的體驗(yàn),并且期望能夠在虛擬桌面會(huì)話中將3D圖形流傳送給客戶機(jī);然而,由于多種原因而難以實(shí)現(xiàn)流傳送3D圖形。例如,流傳送3D圖形的動(dòng)作需要帶寬和/或壓縮。此外,虛擬桌面服務(wù)器將需要包括3D圖形處理單元(GPU), 其能夠執(zhí)行3D功能。3D圖形處理是資源密集的,并且GPU通常每次僅能渲染幾個(gè)3D圖形用戶界面。如果這些GPU不得不渲染過(guò)多圖形用戶界面,則它們會(huì)快速地變得過(guò)載。遺憾的是,在虛擬桌面部署中,GPU可能不得不同時(shí)渲染大量3D圖形用戶界面。這會(huì)導(dǎo)致一個(gè)或多個(gè)操作超時(shí),并且圖形驅(qū)動(dòng)程序進(jìn)而將重置圖形處理單元——其會(huì)導(dǎo)致3D應(yīng)用程序終止。因此,需要用于防止GPU變得過(guò)載且崩潰的技術(shù)。

發(fā)明內(nèi)容
示例性實(shí)施方式包括一種系統(tǒng)。在該示例中,該系統(tǒng)包括但不限于處理器、以及在計(jì)算機(jī)系統(tǒng)可操作時(shí)與該處理器通信的存儲(chǔ)器。在此示例中,存儲(chǔ)器可包括計(jì)算機(jī)可讀指令,該計(jì)算機(jī)可讀指令在執(zhí)行時(shí)使處理器指派一組虛擬機(jī)在第一 3D圖形處理單元上渲染 3D圖形;至少基于第一 3D圖形處理單元用來(lái)對(duì)命令進(jìn)行響應(yīng)所花的時(shí)間量來(lái)確定第一 3D 圖形處理單元(504)被過(guò)度使用;至少響應(yīng)于對(duì)第一 3D圖形處理單元被過(guò)度使用的判定, 將第一虛擬機(jī)從該組虛擬機(jī)移至第二圖形處理單元。除以上之外,權(quán)利要求書具體實(shí)施方式
和附圖中描述了其他技術(shù)。另一示例性實(shí)施方式包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。在此示例中,計(jì)算機(jī)可讀存儲(chǔ)指令包括計(jì)算機(jī)可讀指令,該計(jì)算機(jī)可讀指令在執(zhí)行時(shí)使處理器估計(jì)用于為第一虛擬機(jī)渲染3D圖形的圖形存儲(chǔ)器的量;響應(yīng)于確定與由被指派在第一圖形處理單元上渲染圖形的
5一組虛擬機(jī)所發(fā)出的直接存儲(chǔ)器存取事務(wù)相關(guān)聯(lián)的等待時(shí)間值小于第一閾值以及所估計(jì)的用于渲染3D圖形的圖形存儲(chǔ)器的量小于第二閾值,從多個(gè)3D圖形處理單元選擇第一 3D 圖形處理單元;以及指派所述第一虛擬機(jī)在第一 3D圖形處理單元上渲染3D圖形。除以上之外,權(quán)利要求書具體實(shí)施方式
和附圖中描述了其他技術(shù)。另一示例性實(shí)施方式包括一種方法。在此示例中,方法包括但不限于估計(jì)用于為虛擬機(jī)渲染圖形的圖形存儲(chǔ)器的量;將所估計(jì)的圖形存儲(chǔ)器的量與所估計(jì)的由多個(gè)3D圖形處理單元控制的可用圖形存儲(chǔ)器的量進(jìn)行比較;根據(jù)比較從多個(gè)3D圖形處理單元選擇為虛擬機(jī)渲染3D圖形的3D圖形處理單元;以及指派所選3D圖形處理單元來(lái)為虛擬機(jī)渲染 3D圖形。除以上之外,權(quán)利要求書具體實(shí)施方式
和附圖中描述了其他技術(shù)。本領(lǐng)域技術(shù)人員將理解,本公開(kāi)的一個(gè)或多個(gè)各種方面可包括但不限于用于實(shí)現(xiàn)此處所引用的方面的電路和/或編程;該電路和/或編程實(shí)質(zhì)上可以是配置成實(shí)現(xiàn)本文所引用的方面的硬件、軟件和/或固件的任何組合,這取決于系統(tǒng)設(shè)計(jì)者的設(shè)計(jì)選擇。以上是概述,并且因此必然包含細(xì)節(jié)的簡(jiǎn)化、一般化及省略。本領(lǐng)域技術(shù)人員將明白,本概述只是說(shuō)明性的并且決不旨在是限制性的。


圖1描繪了計(jì)算機(jī)系統(tǒng)的高級(jí)框圖。
圖2描繪了虛擬機(jī)服務(wù)器的高級(jí)框圖。
圖3描繪了虛擬機(jī)服務(wù)器的高級(jí)框圖。
圖4描繪了虛擬桌面服務(wù)器的高級(jí)框圖。
圖5描繪了虛擬桌面服務(wù)器的高級(jí)框圖。
圖6描繪了虛擬桌面服務(wù)器的高級(jí)框圖。
圖7描繪了數(shù)據(jù)中心的高級(jí)框圖。
圖8描繪了用于平衡虛擬機(jī)之間的GPU使用的操作流程。
圖9示出了包括附加操作的圖8的操作流程。
圖10描繪了用于平衡虛擬機(jī)之間的GPU使用的操作流程。
圖11示出了包括附加操作的圖10的操作流程。
圖12描繪了用于平衡虛擬機(jī)之間的GPU使用的操作流程。
圖13示出了包括附加操作的圖12的操作流程。
具體實(shí)施例方式本發(fā)明可使用一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)。圖1及以下討論旨在提供可在其中實(shí)現(xiàn)所公開(kāi)的主題的合適計(jì)算環(huán)境的簡(jiǎn)要概括描述。貫穿本說(shuō)明書使用的術(shù)語(yǔ)電路可包括諸如硬件中斷控制器、硬盤驅(qū)動(dòng)程序、網(wǎng)絡(luò)適配器、圖形處理器、基于硬件的視頻/音頻編解碼器等硬件組件,以及用于操作這些硬件的固件。術(shù)語(yǔ)“電路”還可以包括由固件和/或軟件來(lái)配置的進(jìn)行指令讀取和執(zhí)行的微處理器、專用集成電路、以及處理器,例如多核通用處理單元的核。處理器可由從例如RAM、R0M、 固件和/或大容量存儲(chǔ)等存儲(chǔ)器加載的指令來(lái)配置,從而具體化可用于配置處理器來(lái)執(zhí)行功能的邏輯。在其中電路包括硬件和軟件的組合的示例實(shí)施方式中,實(shí)現(xiàn)者可以編寫具體化邏輯的源代碼,該源代碼隨后被編譯成可由硬件執(zhí)行的機(jī)器可讀代碼。因?yàn)楸绢I(lǐng)域技術(shù)人員可以明白現(xiàn)有技術(shù)已經(jīng)進(jìn)化到硬件實(shí)現(xiàn)的功能或軟件實(shí)現(xiàn)的功能之間幾乎沒(méi)有差別的地步,因而選擇硬件還是軟件來(lái)實(shí)現(xiàn)此處描述的功能只是一個(gè)設(shè)計(jì)選擇。換言之,由于本領(lǐng)域的技術(shù)人員可以理解軟件進(jìn)程可被變換成等效的硬件結(jié)構(gòu),且硬件結(jié)構(gòu)本身可被變換成等效的軟件進(jìn)程,因此選擇硬件實(shí)現(xiàn)或是軟件實(shí)現(xiàn)留給了實(shí)現(xiàn)者?,F(xiàn)在參考圖1,描繪了示例性計(jì)算系統(tǒng)100。計(jì)算機(jī)系統(tǒng)100可包括處理器102, 例如,執(zhí)行核。盡管示出了一個(gè)處理器102,但在其他實(shí)施方式中,計(jì)算機(jī)系統(tǒng)100可具有多個(gè)處理器,例如每一處理器襯底有多個(gè)執(zhí)行核,和/或各自可具有多個(gè)執(zhí)行核的多個(gè)處理器襯底。如圖所示,各種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)110可由一個(gè)或多個(gè)系統(tǒng)總線互連,所述系統(tǒng)總線將各種系統(tǒng)組件耦合到處理器102。系統(tǒng)總線可以是幾種類型的總線結(jié)構(gòu)中的任何一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線、以及使用各種總線體系結(jié)構(gòu)中的任一種的局部總線。在示例實(shí)施方式中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)110可以包括例如隨機(jī)存取存儲(chǔ)器 (RAM) 104、存儲(chǔ)設(shè)備106 (例如電機(jī)硬盤驅(qū)動(dòng)程序、固態(tài)硬盤驅(qū)動(dòng)程序等)、固件108 (例如閃速RAM或ROM)、以及可移動(dòng)存儲(chǔ)設(shè)備118 (例如CD-ROM、軟盤、DVD、閃速驅(qū)動(dòng)程序、外部存儲(chǔ)設(shè)備等)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可使用其他類型的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),如磁帶盒、閃存卡、和/或數(shù)字視頻盤。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)110可以提供對(duì)處理器可執(zhí)行指令122、數(shù)據(jù)結(jié)構(gòu)、程序模塊以及諸如可執(zhí)行指令之類的用于計(jì)算機(jī)100的其他數(shù)據(jù)的非易失性和易失性存儲(chǔ)。基本輸入/輸出系統(tǒng)(BIOS) 120可被存儲(chǔ)在固件108中,它包含幫助在諸如啟動(dòng)期間在計(jì)算機(jī)系統(tǒng)100內(nèi)的各元件之間傳遞信息的基本例程。包括操作系統(tǒng)和/或應(yīng)用程序的多個(gè)程序可被存儲(chǔ)在固件108、存儲(chǔ)設(shè)備106、RAM 104和/或可移動(dòng)存儲(chǔ)設(shè)備118上,并且可由處理器 102來(lái)執(zhí)行。命令和信息可由計(jì)算機(jī)100通過(guò)輸入設(shè)備116來(lái)接收,輸入設(shè)備可包括但不限于鍵盤和定點(diǎn)設(shè)備。其他輸入設(shè)備可以包括話筒、操縱桿、游戲手柄、掃描儀等等。這些和其他輸入設(shè)備常通過(guò)耦合到系統(tǒng)總線的串行端口接口連接到處理器102,但也可通過(guò)其他接口連接,如并行端口、游戲端口或通用串行總線(USB)。顯示器或其他類型的顯示設(shè)備也可經(jīng)由諸如視頻適配器等可以是圖形處理器單元112的一部分或可連接到圖形處理器單元112 的接口來(lái)連接到系統(tǒng)總線。除顯示器之外,計(jì)算機(jī)通常包括其他外圍輸出設(shè)備,如揚(yáng)聲器和打印機(jī)(未示出)。圖1的示例性系統(tǒng)還可包括主適配器、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)總線和連接到SCSI總線的外部存儲(chǔ)設(shè)備。計(jì)算機(jī)系統(tǒng)100可使用至一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),如遠(yuǎn)程計(jì)算機(jī)的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)可以是另一計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其他常見(jiàn)的網(wǎng)絡(luò)節(jié)點(diǎn),并且通常包括上面關(guān)于計(jì)算機(jī)系統(tǒng)100所述的許多或全部元件。當(dāng)在LAN或WAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)系統(tǒng)100可通過(guò)網(wǎng)絡(luò)接口卡114連接至LAN或WAN。NIC 114可以是內(nèi)置或外置的,其可以連接到系統(tǒng)總線。在聯(lián)網(wǎng)環(huán)境中,相對(duì)于計(jì)算機(jī)系統(tǒng)100所描述的程序模塊或其部分可被儲(chǔ)存在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。可以理解,所描述的網(wǎng)絡(luò)連接是示例性的,且可以使用在計(jì)算機(jī)之間建立通信鏈路的其他手段。 雖然可構(gòu)想本發(fā)明的許多實(shí)施方式尤其適用于計(jì)算機(jī)化的系統(tǒng),然而在本說(shuō)明中不意味著將本發(fā)明限于那些實(shí)施方式。
轉(zhuǎn)向圖2,示出了可被用來(lái)生成虛擬機(jī)的示例性虛擬平臺(tái)。在該實(shí)施方式中,系統(tǒng)管理程序微內(nèi)核202可被配置成控制并仲裁對(duì)計(jì)算機(jī)系統(tǒng)200的硬件的訪問(wèn)。系統(tǒng)管理程序微內(nèi)核202可以生成稱為分區(qū)的執(zhí)行環(huán)境,如子分區(qū)1到子分區(qū)N(其中N是大于1的整數(shù))。在此,子分區(qū)是系統(tǒng)管理程序微內(nèi)核202所支持的基本隔離單元。系統(tǒng)管理程序微內(nèi)核202可以隔離一個(gè)分區(qū)中的進(jìn)程,使其不能訪問(wèn)另一分區(qū)的資源。每個(gè)子分區(qū)都可以被映射到在系統(tǒng)管理程序微內(nèi)核202控制之下的一組硬件資源,例如,存儲(chǔ)器、設(shè)備、處理器周期等。在各實(shí)施方式中,系統(tǒng)管理程序微內(nèi)核202可以是獨(dú)立的軟件產(chǎn)品、操作系統(tǒng)的一部分、嵌入在主板的固件中、專用集成電路、或其組合。系統(tǒng)管理程序微內(nèi)核202可以通過(guò)限制物理計(jì)算機(jī)系統(tǒng)中的客操作系統(tǒng)的存儲(chǔ)器視圖來(lái)實(shí)施分區(qū)劃分。當(dāng)系統(tǒng)管理程序微內(nèi)核202實(shí)例化一虛擬機(jī)時(shí),它可以將系統(tǒng)物理存儲(chǔ)器(SPM)的頁(yè)(例如,具有開(kāi)始和結(jié)束地址的固定長(zhǎng)度存儲(chǔ)器塊)分配給虛擬機(jī)作為客物理存儲(chǔ)器(GPM)。在此,客的受限的系統(tǒng)存儲(chǔ)器視圖由系統(tǒng)管理程序微內(nèi)核202來(lái)控制。術(shù)語(yǔ)“客物理存儲(chǔ)器”是從虛擬機(jī)的視點(diǎn)描述存儲(chǔ)器頁(yè)的簡(jiǎn)寫方式,且術(shù)語(yǔ)系統(tǒng)物理存儲(chǔ)器是從物理系統(tǒng)的觀點(diǎn)描述存儲(chǔ)器頁(yè)的簡(jiǎn)寫方式。因此,被分配給虛擬機(jī)的存儲(chǔ)器頁(yè)會(huì)有客物理地址(虛擬機(jī)所使用的地址)和系統(tǒng)物理地址(頁(yè)的實(shí)際地址)??筒僮飨到y(tǒng)可以虛擬化客物理存儲(chǔ)器。虛擬存儲(chǔ)器是一種管理技術(shù),其允許操作系統(tǒng)過(guò)度提交存儲(chǔ)器,并且給予應(yīng)用程序?qū)B續(xù)工作存儲(chǔ)器的唯一訪問(wèn)。在虛擬化環(huán)境中, 客操作系統(tǒng)可以使用一個(gè)或多個(gè)頁(yè)表來(lái)將已知為虛擬客地址的虛擬地址轉(zhuǎn)換成客物理地址。在該示例中,存儲(chǔ)器地址可以具有客虛擬地址、客物理地址以及系統(tǒng)物理地址。在所描繪的示例中,父分區(qū)組件也可被認(rèn)為是類似于Xen的開(kāi)源系統(tǒng)管理程序的域0,父分區(qū)組件可以包括主機(jī)204。主機(jī)204可以是操作系統(tǒng)(或一組配置實(shí)用程序),并且主機(jī)204可以被配置成通過(guò)使用虛擬服務(wù)提供者228 (VSP)向在子分區(qū)1_N中執(zhí)行的客操作系統(tǒng)提供資源。VPS 228(—般在開(kāi)源社區(qū)中被稱為后端驅(qū)動(dòng)程序)可用來(lái)通過(guò)虛擬化服務(wù)客戶機(jī)(VSC)(在開(kāi)源社區(qū)或類虛擬化設(shè)備中一般稱為前端驅(qū)動(dòng)程序)對(duì)到硬件資源的接口進(jìn)行多路復(fù)用。如圖所示,虛擬服務(wù)客戶機(jī)可以在客操作系統(tǒng)的上下文中執(zhí)行。然而,這些驅(qū)動(dòng)程序不同于客機(jī)中的其余驅(qū)動(dòng)程序,因?yàn)橄蛩鼈兲峁┝讼到y(tǒng)管理程序而非客機(jī)。在一示例性實(shí)施方式中,虛擬服務(wù)提供者2 與虛擬服務(wù)客戶機(jī)216和218通信所使用的路徑可以被視為虛擬路徑。如圖所示,仿真器234(例如虛擬化IDE設(shè)備、虛擬化視頻適配器、虛擬化NIC等) 可被配置成在主機(jī)204中運(yùn)行并被附連到可供客操作系統(tǒng)220和222使用的資源。例如,當(dāng)客操作系統(tǒng)接觸被映射到設(shè)備的寄存器所處的存儲(chǔ)器位置、或者存儲(chǔ)器被映射的設(shè)備時(shí), 微內(nèi)核系統(tǒng)管理程序202可截取該請(qǐng)求并將客機(jī)試圖寫入的值傳遞給相關(guān)聯(lián)的仿真器。在此,該示例中的資源可被認(rèn)為是虛擬設(shè)備所處的位置。仿真器的以這種方式的使用可以被視為仿真路徑。仿真路徑與虛擬化路徑相比是低效的,因?yàn)榕c在VSP和VSC之間傳遞消息相比,它需要更多的CPU資源來(lái)仿真設(shè)備。例如,可以將用來(lái)經(jīng)由仿真路徑把值寫入盤的、 被映射至寄存器的存儲(chǔ)器上的幾百個(gè)動(dòng)作減少為單個(gè)消息,該消息在虛擬路徑中從VSC被傳遞至VSP。每一子分區(qū)可包括一個(gè)或多個(gè)虛擬處理器Q30和23 ,客操作系統(tǒng)Q20和222) 可管理并調(diào)度線程以便在這些虛擬處理器上執(zhí)行。一般而言,虛擬處理器是提供具有特定架構(gòu)的物理處理器的表示的可執(zhí)行指令以及相關(guān)聯(lián)的狀態(tài)信息。例如,一個(gè)虛擬機(jī)可具有帶有英特爾x86處理器特性的虛擬處理器,而另一虛擬處理器可具有PowerPC處理器的特性。本例中的虛擬處理器可被映射到計(jì)算機(jī)系統(tǒng)的處理器,使得實(shí)現(xiàn)虛擬處理器的指令將得到處理器的支持。由此,在包括多個(gè)處理器的實(shí)施方式中,虛擬處理器可以由處理器同時(shí)執(zhí)行,同時(shí)例如其他處理器執(zhí)行系統(tǒng)管理程序指令。分區(qū)中虛擬處理器和存儲(chǔ)器的組合可被認(rèn)為是虛擬機(jī)??筒僮飨到y(tǒng)Q20和222)可以是任何操作系統(tǒng),如來(lái)自微軟 、蘋果 、開(kāi)源社區(qū)等的操作系統(tǒng)。客操作系統(tǒng)可包括用戶/內(nèi)核操作模式,并且可具有能包括調(diào)度器、存儲(chǔ)器管理器等的內(nèi)核。一般而言,內(nèi)核模式可包括處理器中的執(zhí)行模式,該執(zhí)行模式授予至少對(duì)特權(quán)處理器指令的訪問(wèn)。每一客操作系統(tǒng)可具有相關(guān)聯(lián)的文件系統(tǒng),該文件系統(tǒng)上存儲(chǔ)有諸如終端服務(wù)器、電子商務(wù)服務(wù)器、電子郵件服務(wù)器等應(yīng)用程序以及客操作系統(tǒng)本身。客操作系統(tǒng)可調(diào)度線程來(lái)在虛擬處理器上執(zhí)行,并且可實(shí)現(xiàn)此類應(yīng)用程序的實(shí)例。現(xiàn)在參考圖3,示出了上述圖2中的替換虛擬平臺(tái)。圖3描繪了與圖2的組件相類似的組件;然而,在該示例實(shí)施方式中,系統(tǒng)管理程序302可包括微內(nèi)核組件以及和圖2的主機(jī)204中的組件(如虛擬服務(wù)提供者2 和設(shè)備驅(qū)動(dòng)程序224)相類似的組件,而管理操作系統(tǒng)304可包含例如用于配置系統(tǒng)管理程序302的配置實(shí)用程序。在該體系結(jié)構(gòu)中,系統(tǒng)管理程序302可以執(zhí)行與圖2的系統(tǒng)管理程序微內(nèi)核202相同或相似的功能;然而,在該體系結(jié)構(gòu)中,系統(tǒng)管理程序304可被配置成向在子分區(qū)中執(zhí)行的客操作系統(tǒng)提供資源。圖3 的系統(tǒng)管理程序302可以是獨(dú)立的軟件產(chǎn)品、操作系統(tǒng)的一部分、嵌入在主板的固件內(nèi),或者系統(tǒng)管理程序302的一部分可以由專用集成電路來(lái)實(shí)現(xiàn)?,F(xiàn)在參考圖4,它示出虛擬桌面服務(wù)器400的高級(jí)框圖。在一實(shí)施方式中,虛擬桌面服務(wù)器400可以被配置成部署到客戶機(jī)(例如,諸如智能電話的移動(dòng)設(shè)備)、具有和圖1 所示組件相似的組件的計(jì)算機(jī)系統(tǒng)等等的虛擬桌面會(huì)話(VDQ。簡(jiǎn)言之,虛擬桌面技術(shù)使用戶能與虛擬機(jī)中運(yùn)行的客操作系統(tǒng)遠(yuǎn)程地交互。不同于遠(yuǎn)程桌面會(huì)話,在虛擬桌面會(huì)話中, 僅僅一個(gè)用戶登錄到客操作系統(tǒng)中并且該用戶可以對(duì)其具有總控制,例如,該用戶可以作為管理員運(yùn)行并且在客機(jī)上具有完全的權(quán)限。在所示例子中,虛擬桌面服務(wù)器400可以具有與圖2和圖3的計(jì)算機(jī)系統(tǒng)200或300類似的組件。虛擬化平臺(tái)402是上面在圖2和圖 3中所述的虛擬化基礎(chǔ)結(jié)構(gòu)組件的邏輯抽象。在以下章節(jié)中被描述為在虛擬化平臺(tái)402“以內(nèi)”的功能可以在圖2和圖3所述的一個(gè)或多個(gè)元件中實(shí)現(xiàn)。例如,將在下面的段落中更詳細(xì)描述的3D圖形服務(wù)管理器404可以在圖2的主機(jī)204中實(shí)現(xiàn)。在一個(gè)更具體的示例中, 3D圖形服務(wù)管理器404可以在父分區(qū)中運(yùn)行的主機(jī)操作系統(tǒng)中實(shí)現(xiàn)。啟動(dòng)虛擬桌面會(huì)話要求對(duì)虛擬機(jī)內(nèi)的客操作系統(tǒng)進(jìn)行實(shí)例化。在示例性實(shí)施方式中,虛擬桌面管理器(例如處理器可執(zhí)行指令的模塊)可以響應(yīng)于請(qǐng)求而啟動(dòng)虛擬機(jī) 414 (其可以引導(dǎo)客操作系統(tǒng)428)。虛擬桌面管理器可以在邏輯處理器上執(zhí)行,并且可以指示虛擬化平臺(tái)402(例如微內(nèi)核系統(tǒng)管理程序20 為分區(qū)分配存儲(chǔ)器。虛擬化平臺(tái)402可以執(zhí)行并且配置虛擬機(jī)414的存儲(chǔ)器內(nèi)的虛擬設(shè)備,并且將引導(dǎo)加載器程序加載到分配給 VM 414的存儲(chǔ)器中。引導(dǎo)加載器程序可以在虛擬處理器上執(zhí)行(其進(jìn)而可以在處理器上運(yùn)行),并且客操作系統(tǒng)4 可以加載在虛擬機(jī)414內(nèi)。會(huì)話管理器408可以由客操作系統(tǒng)4 來(lái)加載,并且其可以加載諸如運(yùn)行時(shí)子系統(tǒng)似6之類的環(huán)境子系統(tǒng),所述環(huán)境子系統(tǒng)可以包括諸如操作系統(tǒng)核410之類的內(nèi)核模式部分。在一實(shí)施方式中,環(huán)境子系統(tǒng)可以被配置成將服務(wù)的子集展示給應(yīng)用程序并向內(nèi)核420提供訪問(wèn)點(diǎn)。當(dāng)客操作系統(tǒng)4 被加載時(shí),引導(dǎo)加載器程序可以退出,并將對(duì)虛擬機(jī)414的控制轉(zhuǎn)交給客操作系統(tǒng)428。客操作系統(tǒng)4 可以執(zhí)行圖4所示的各個(gè)模塊,并且將其自身配置為主控虛擬桌面會(huì)話。例如,客操作系統(tǒng)4 可以包括致使遠(yuǎn)程呈現(xiàn)引擎406、會(huì)話管理器408等等在引導(dǎo)之際啟動(dòng)的注冊(cè)表值。在客操作系統(tǒng)4 運(yùn)行以后的某個(gè)時(shí)刻,其可以從客戶機(jī)接收連接請(qǐng)求。該傳入的連接請(qǐng)求可以首先由遠(yuǎn)程呈現(xiàn)引擎406來(lái)處理,該遠(yuǎn)程渲染引擎406可以被配置為監(jiān)聽(tīng)連接消息,并且當(dāng)接收到消息時(shí),其可以產(chǎn)生棧實(shí)例。遠(yuǎn)程呈現(xiàn)引擎406可以運(yùn)行會(huì)話的協(xié)議棧實(shí)例,并且由虛擬化平臺(tái)402渲染的3D圖形用戶界面(在以下段落中進(jìn)行更詳細(xì)的描述)可以被遠(yuǎn)程顯示子系統(tǒng)418接收到并且通過(guò)協(xié)議棧實(shí)例發(fā)送給客戶機(jī)。一般而言,協(xié)議棧實(shí)例可被配置成將用戶界面輸出路由到相關(guān)聯(lián)的客戶機(jī)、以及將從相關(guān)聯(lián)的客戶機(jī)接收到的用戶輸入路由到操作系統(tǒng)核心410。簡(jiǎn)言之,操作系統(tǒng)核心410可以被配置成管理屏幕輸出收集來(lái)自鍵盤、鼠標(biāo)和其它設(shè)備的輸入。用戶憑證(諸如用戶名/ 口令組合)可由遠(yuǎn)程呈現(xiàn)引擎406接收并被傳遞至?xí)捁芾砥?08。會(huì)話管理器408可以將憑證傳遞至登錄過(guò)程,登錄過(guò)程可以將憑證路由至認(rèn)證子系統(tǒng)424以進(jìn)行驗(yàn)證。認(rèn)證子系統(tǒng)似4可以確定用戶憑證是有效的并且可以啟動(dòng)虛擬桌面會(huì)話,也就是說(shuō)用戶可以登陸到客操作系統(tǒng)428。認(rèn)證子系統(tǒng)似4還可以生成系統(tǒng)令牌,系統(tǒng)令牌可以在每當(dāng)用戶嘗試執(zhí)行一進(jìn)程以確定用戶是否具有運(yùn)行該進(jìn)程或線程的安全憑證時(shí)使用。例如,當(dāng)進(jìn)程或線程嘗試獲得訪問(wèn)時(shí)(例如,打開(kāi)、關(guān)閉、刪除和/或修改例如文件、設(shè)置或應(yīng)用程序這樣的對(duì)象),線程或進(jìn)程可由安全子系統(tǒng)422來(lái)認(rèn)證。安全子系統(tǒng)422可以對(duì)照與對(duì)象相關(guān)聯(lián)的訪問(wèn)控制列表來(lái)檢查系統(tǒng)令牌,并且基于系統(tǒng)令牌中的信息與訪問(wèn)控制列表的比較來(lái)確定線程是否具有許可。如果安全子系統(tǒng)422確定線程被授權(quán),則允許該線程訪問(wèn)對(duì)象。繼續(xù)對(duì)圖4的描述,在一實(shí)施方式中,操作系統(tǒng)核心410可以包括圖形顯示界面 416(⑶I)和輸入子系統(tǒng)412。在一示例實(shí)施方式中,輸入子系統(tǒng)412可以被配置成經(jīng)由虛擬桌面會(huì)話的協(xié)議棧實(shí)例從客戶機(jī)接收用戶輸入,并將該輸入發(fā)送至操作系統(tǒng)核410。在一些實(shí)施方式中,用戶輸入可包括指示絕對(duì)和/或相對(duì)鼠標(biāo)運(yùn)動(dòng)命令、鼠標(biāo)坐標(biāo)、鼠標(biāo)點(diǎn)擊、 鍵盤信號(hào)、操縱桿運(yùn)動(dòng)信號(hào)等的信號(hào)。例如對(duì)圖標(biāo)的鼠標(biāo)雙擊之類的用戶輸入可被操作系統(tǒng)核410接收,并且輸入子系統(tǒng)412可被配置成確定圖標(biāo)位于與該雙擊相關(guān)聯(lián)的坐標(biāo)處。輸入子系統(tǒng)412隨后可被配置成向可執(zhí)行與該圖標(biāo)相關(guān)聯(lián)的應(yīng)用的進(jìn)程的運(yùn)行時(shí)子系統(tǒng)4 發(fā)送通知。轉(zhuǎn)到圖5,其例示了可被用于配置虛擬桌面服務(wù)器400以渲染虛擬機(jī)G14、414B、 和/或414C)的3D圖形,并對(duì)諸如3D GPU 504、504B、和/或504C之類的圖形處理單元上的虛擬機(jī)進(jìn)行負(fù)載平衡。在此例示的實(shí)施方式中,虛擬桌面服務(wù)器400進(jìn)而向諸如客戶機(jī) 520、520B、和/或520C之類的客戶機(jī)流傳送指示三維圖形用戶界面的圖像。簡(jiǎn)言之,每個(gè)客戶機(jī)可與運(yùn)行配置成進(jìn)行虛擬桌面會(huì)話的客操作系統(tǒng)的虛擬機(jī)G14、414B、和/或414C) 相關(guān)聯(lián)??蛻魴C(jī)520、520B和/或520C可包括具有類似于圖1中所示的那些組件的組件的計(jì)算機(jī)系統(tǒng)、運(yùn)動(dòng)設(shè)備、和/或瘦客戶機(jī)。例如,瘦客戶機(jī)可以具有商業(yè)硬件和單片式web瀏覽器,該web瀏覽器被配置為管理該硬件、用戶輸入和輸出并且連接到因特網(wǎng)。在此示例中,瘦客戶機(jī)還可包括例如顯示之類的用戶界面222以及諸如鼠標(biāo)之類的用戶輸入設(shè)備。虛擬桌面服務(wù)器400還可被配置成在其被啟動(dòng)時(shí)渲染3D圖形。例如,當(dāng)虛擬桌面服務(wù)器400運(yùn)行時(shí),諸如3D圖形服務(wù)管理器404之類的3D圖形服務(wù)管理器的實(shí)例可被啟動(dòng)。3D圖形服務(wù)管理器404(其在以下段落中進(jìn)行更詳細(xì)的描述)可在處理器上執(zhí)行,并且等待傳入虛擬桌面會(huì)話連接。簡(jiǎn)言之,3D圖形服務(wù)管理器404可被配置成通過(guò)確定將每個(gè)虛擬機(jī)指派到何處以及通過(guò)基于性能信息來(lái)移動(dòng)虛擬機(jī),來(lái)對(duì)圖形處理單元上的虛擬機(jī)進(jìn)行負(fù)載平衡。在接收到對(duì)啟動(dòng)虛擬機(jī)的3D服務(wù)的請(qǐng)求之前,3D圖形服務(wù)管理器404被配置成對(duì)系統(tǒng)中的每個(gè)圖形處理單元進(jìn)行詢問(wèn),以標(biāo)識(shí)其特征并將表示其特征的信息存儲(chǔ)到表中。 特征信息可在隨后被用于對(duì)圖形處理單元的使用進(jìn)行平衡。在示例性實(shí)施方式中,圖形處理單元的特征可包括一組能力,即硬件功能,諸如支持表面和紋理共享或支持3D圖形應(yīng)用程序接口(API)的最小版本的能力。另外,圖形處理單元的特征可包括圖形處理單元的硬件標(biāo)識(shí)符、屬性列表、以及3D圖形處理單元控制的圖形隨機(jī)存取存儲(chǔ)器(圖形RAM)的數(shù)量,即,嵌入在容納3D圖形處理單元的適配器內(nèi)的存儲(chǔ)器。例如,圖形隨機(jī)存取存儲(chǔ)器可被用于存儲(chǔ)屏幕圖像的位圖和Z緩沖器(其管理3D圖形中的深度坐標(biāo))、紋理、頂點(diǎn)緩沖器、 以及編譯著色器程序。在示例性實(shí)施方式中,圖形存儲(chǔ)器可以是高速或多端口存儲(chǔ)器,諸如視頻RAM、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器、或基于諸如DDR2和圖形DDR(⑶DR3、⑶DR4和/或⑶DR5) 之類的雙數(shù)據(jù)率(DDI )技術(shù)的隨機(jī)存取存儲(chǔ)器。當(dāng)接收到虛擬桌面會(huì)話連接;啟動(dòng)圖形渲染模塊(在以下段落中進(jìn)行更詳細(xì)的描述)以及向3D-GPU服務(wù)提供者512發(fā)送將3D組件加載到客操作系統(tǒng)428中的信號(hào)時(shí),可通知3D圖形服務(wù)管理器404。簡(jiǎn)言之,3D圖形服務(wù)管理器404可為每個(gè)虛擬機(jī)加載圖形渲染模塊的實(shí)例;確定圖形渲染模塊要在哪個(gè)GPU上運(yùn)行;以及向圖形渲染模塊傳遞所確定的圖形處理單元的設(shè)備標(biāo)識(shí)符。圖形渲染模塊可在隨后綁定到3D GPU,并代表其相關(guān)聯(lián)的虛擬機(jī)向它進(jìn)行渲染。在所例示的示例中,圖形渲染模塊506對(duì)應(yīng)于虛擬機(jī)414。用于創(chuàng)建虛擬機(jī)414的圖形用戶界面的定點(diǎn)數(shù)據(jù)、紋理等可以從虛擬機(jī)414被饋送到圖形渲染模塊 506,該圖形渲染模塊可被虛擬化平臺(tái)402作為生成圖形用戶界面的進(jìn)程來(lái)對(duì)待。由于大多數(shù)3D圖形處理單元被設(shè)計(jì)成每次對(duì)幾個(gè)進(jìn)程生成幾個(gè)圖形用戶界面,因此本領(lǐng)域技術(shù)人員可理解,在其中大量圖形渲染模塊正運(yùn)行的情形中,GPU可變得更容易過(guò)載并重置。繼續(xù)初始化過(guò)程,3D-GPU服務(wù)提供者512可導(dǎo)致3D圖形服務(wù)客戶機(jī)514在客操作系統(tǒng)4 中分散(spawn)。例如,虛擬機(jī)414中的虛擬主板的存儲(chǔ)器地址可具有對(duì)被映射到 IO設(shè)備的某些地址的截取集合。當(dāng)客操作系統(tǒng)4 啟動(dòng)時(shí),即插即用模塊可執(zhí)行并且可查詢映射至IO的存儲(chǔ)器地址。例如圖2的管理程序202之類的管理程序可截取讀取并用導(dǎo)致即插即用模塊加載3D圖形服務(wù)客戶機(jī)514的設(shè)備標(biāo)識(shí)符進(jìn)行響應(yīng)。3D圖形服務(wù)客戶機(jī) 514可通過(guò)將存儲(chǔ)器的一個(gè)或多個(gè)頁(yè)映射為共享的并將映射傳遞給3D-GPU服務(wù)提供者512 來(lái)建立至3D-GPU服務(wù)提供者512的通信信道。在存儲(chǔ)器的頁(yè)內(nèi),可建立消息-傳遞通信信道516。本質(zhì)上,消息-傳遞通信信道516是存儲(chǔ)器中3D GPU服務(wù)提供者/客戶機(jī)可對(duì)其寫入消息并從其讀取消息的共享區(qū)域。3D圖形服務(wù)客戶機(jī)514還可導(dǎo)致虛擬設(shè)備驅(qū)動(dòng)程序518分散。虛擬設(shè)備驅(qū)動(dòng)程序518還可在虛擬機(jī)514與虛擬化平臺(tái)402之間建立共享圖形孔徑526。在示例性實(shí)施方式中,虛擬機(jī)驅(qū)動(dòng)程序518可分配一組客存儲(chǔ)器頁(yè),并向3D圖形服務(wù)客戶機(jī)514發(fā)送包括連接請(qǐng)求和存儲(chǔ)器頁(yè)的地址的信號(hào)。圖形渲染模塊506可接收連接請(qǐng)求和存儲(chǔ)器頁(yè)的地址。圖形渲染模塊506可向管理程序發(fā)送指令該管理程序在該組存儲(chǔ)器頁(yè)中創(chuàng)建圖形孔徑 526的信號(hào)。管理程序可將這些頁(yè)映射至系統(tǒng)物理地址,并執(zhí)行存儲(chǔ)器的范圍內(nèi)的圖形孔徑526。在此示例中,虛擬設(shè)備驅(qū)動(dòng)程序518可被配置成將DMA緩沖器寫入客存儲(chǔ)器地址范圍。當(dāng)數(shù)據(jù)被寫入客存儲(chǔ)器地址范圍時(shí),圖形孔徑5 將DMA緩沖器路由至圖形渲染模塊 506。在示例性實(shí)施方式中,虛擬設(shè)備驅(qū)動(dòng)程序518對(duì)于客操作系統(tǒng)4 可表現(xiàn)為有3D 能力的圖形處理單元的設(shè)備驅(qū)動(dòng)程序,由此導(dǎo)致客操作系統(tǒng)4 將其自己配置成支持3D圖形,例如,通過(guò)加載應(yīng)用程序接口 5M(API)的實(shí)例。虛擬設(shè)備驅(qū)動(dòng)程序518被配置成與API 5 接口,API 5 使得3D應(yīng)用程序5 能產(chǎn)生3D圖形。3D應(yīng)用程序528——例如操作系統(tǒng)圖形用戶界面、應(yīng)用程序/視頻游戲的用戶界面等等——可向API 524發(fā)出指令,該API 5 可以是諸如Microsoft 的DirectX之類的API。簡(jiǎn)言之,3D圖形API 5 提供例如視頻游戲之類的圖形應(yīng)用程序與驅(qū)動(dòng)程序(在此情形中的虛擬設(shè)備驅(qū)動(dòng)程序518)之間的抽象層。一方面,API 5 提供與由虛擬設(shè)備驅(qū)動(dòng)程序518展示的圖形處理單元接口的低層接口,另一方面其提供可以由應(yīng)用程序調(diào)用的3D圖形命令庫(kù)。API 5 可以將3D圖形命令庫(kù)映射到由虛擬設(shè)備驅(qū)動(dòng)程序518展示的接口,由此使游戲開(kāi)發(fā)者不必理解每個(gè)圖形驅(qū)動(dòng)程序的特性。在操作中,API 5 可以生成例如基本幾何形狀之類的圖元,該圖元在計(jì)算機(jī)圖形中用作被表示成頂點(diǎn)和常數(shù)的其他形狀的構(gòu)建塊,并且API 524將這些定點(diǎn)存儲(chǔ)在多個(gè)直接存儲(chǔ)器存取(DMA)緩沖器中。當(dāng)API 5 寫入緩沖器時(shí),虛擬設(shè)備驅(qū)動(dòng)程序518可重新格式化存儲(chǔ)在DMA緩沖器中的數(shù)據(jù);將它們打包到一個(gè)或多個(gè)GPU令牌;以及經(jīng)由圖形孔徑5 將GPU令牌發(fā)送給圖形渲染模塊506。類似地,當(dāng)API 5 發(fā)出命令時(shí),其可被插入到DMA緩沖器中并在令牌中被傳送給圖形渲染模塊506。圖形渲染模塊506可接收令牌;提取DMA緩沖器;以及將它們存儲(chǔ)在與虛擬化平臺(tái)402相關(guān)聯(lián)的存儲(chǔ)器的頁(yè)中。在示例性實(shí)施方式中,圖形渲染模塊506可將DMA緩沖器中的命令和圖元翻譯成API構(gòu)造,該API構(gòu)造可被3D圖形驅(qū)動(dòng)程序510處理并向圖形內(nèi)核 508發(fā)出命令連同虛擬化平臺(tái)402中的DMA緩沖器的地址??杀慌渲贸烧{(diào)度虛擬桌面服務(wù)器400內(nèi)的圖形處理單元上的執(zhí)行的圖形內(nèi)核508 可接收指令和DMA緩沖器的地址,并確定何時(shí)向3D圖形驅(qū)動(dòng)程序510發(fā)出命令。當(dāng)來(lái)自各個(gè)DMA緩沖器的圖元將被渲染時(shí),圖形內(nèi)核508可向3D圖形驅(qū)動(dòng)程序510發(fā)送繪制命令, 該3D圖形驅(qū)動(dòng)程序510可在處理器上執(zhí)行并且可指令圖形處理單元504執(zhí)行命令以及處理DMA緩沖器中的數(shù)據(jù)。圖形處理單元504可以執(zhí)行和生成表示存儲(chǔ)器中的圖像幀的位圖,例如像素值陣列。圖形渲染模塊506可捕捉位圖并將該位圖傳遞給壓縮模塊,以及隨后經(jīng)由圖形孔徑526 傳遞給遠(yuǎn)程呈現(xiàn)引擎406。遠(yuǎn)程呈現(xiàn)引擎406可經(jīng)由一個(gè)或多個(gè)信息分組將位圖發(fā)送給客戶機(jī)520。在一些實(shí)例中,由一個(gè)或多個(gè)圖形渲染模塊發(fā)送的數(shù)據(jù)流可導(dǎo)致圖形處理單元被重置。例如,在圖形處理單元過(guò)載——即GPU必須渲染過(guò)多圖像——的情形中,其會(huì)超時(shí)且 GPU將被重置。這導(dǎo)致3D圖形驅(qū)動(dòng)程序510重置,其進(jìn)而導(dǎo)致圖形內(nèi)核508重置至此GPU 的連接,這導(dǎo)致終止綁定到GPU的任何圖形程序模塊。在示例性實(shí)施方式中,3D圖形服務(wù)管理器404可被配置成對(duì)虛擬桌面服務(wù)器400 內(nèi)的圖形處理單元上的負(fù)載進(jìn)行平衡,以減少重置發(fā)生的機(jī)會(huì)。例如,以及參考圖6,其示出了包括5個(gè)虛擬機(jī)G14-414F,其中虛擬機(jī)414在此實(shí)例中可被認(rèn)為是虛擬機(jī)414A)的虛擬桌面服務(wù)器400的另一高層框圖。每個(gè)虛擬機(jī)可具有在虛擬化平臺(tái)402(506-506F)中運(yùn)行的相關(guān)聯(lián)的渲染進(jìn)程。如附圖所示,每個(gè)圖形渲染模塊(506-506F)可被綁定,例如附連到圖形處理單元。例如,虛擬機(jī)414、414D和414E被綁定到3D GPU 504,虛擬機(jī)414B被綁定到3D GPU 504B,而虛擬機(jī)414C和414F被綁定到3D GPU 504C。在運(yùn)行時(shí)期間,每個(gè)虛擬機(jī)可被3D圖形服務(wù)管理器404移動(dòng),且所例示的示例中的虛線示出了將虛擬機(jī)414從 3D GPU 504 移動(dòng)到 3D GPU 504B。3D圖形服務(wù)管理器404可被配置成使用循環(huán)算法和/或動(dòng)態(tài)放置算法來(lái)平衡 GPU。例如,循環(huán)算法可被用來(lái)尋找圖形處理單元和用于確定是否指派該圖形處理單元以從虛擬機(jī)渲染圖形的信息。如果信息指示圖形處理單元過(guò)載,則循環(huán)算法可定位下一 GPU并執(zhí)行相同操作。另外,或替換地,3D圖形服務(wù)管理器404可被配置成使用該信息來(lái)選擇渲染來(lái)自虛擬機(jī)的圖形的圖形處理單元,而不連續(xù)地檢查每一個(gè)。在示例性實(shí)施方式中,用于向例如3D GPU 504之類的GPU指派虛擬機(jī)的信息可包括所估計(jì)的可為3D圖形處理單元所用的圖形存儲(chǔ)器的量。所估計(jì)的可用圖形存儲(chǔ)器的量可被用于預(yù)測(cè)GPU是否將超時(shí),以及連接是否將被重置。在此示例中,3D圖形服務(wù)管理器 404可被配置成使用所估計(jì)的可用圖形存儲(chǔ)器的量來(lái)設(shè)置閾值。當(dāng)3D圖形服務(wù)管理器404 接收到指派虛擬機(jī)的請(qǐng)求時(shí),3D圖形服務(wù)管理器404可估計(jì)虛擬機(jī)將嘗試使用的圖形存儲(chǔ)器的量或者用來(lái)至少足夠?yàn)樘摂M機(jī)渲染圖像所需的量,并將所估計(jì)的量與閾值(例如,所估計(jì)可為圖形處理單元所用的圖形存儲(chǔ)器的量)作比較,并且在所估計(jì)的被虛擬機(jī)使用的圖形存儲(chǔ)器的量小于閾值的情況下,向GPU指派圖像渲染進(jìn)程。在特定示例中,假定3D圖形處理單元504控制4千兆字節(jié)的緩沖器,3D圖形服務(wù)管理器404估計(jì)虛擬機(jī)414E將使用1千兆字節(jié)的存儲(chǔ)器,閾值被設(shè)置為所估計(jì)的由GPU控制的可用存儲(chǔ)器的量,所估計(jì)的被虛擬機(jī)414使用的圖形存儲(chǔ)器的量為1千兆字節(jié),而所估計(jì)的被虛擬機(jī)414D使用的圖形存儲(chǔ)器的量為512兆字節(jié)。在此示例中,3D圖形服務(wù)管理器 404可將所估計(jì)的用于虛擬機(jī)414E的量(1千兆字節(jié))與所估計(jì)的可用量(大致2. 5千兆字節(jié))作比較,并確定GPU可操作虛擬機(jī)。3D圖形服務(wù)管理器404可將虛擬機(jī)指派給GPU; 減去所估計(jì)的用于虛擬機(jī)414E的量,以獲得所估計(jì)的可用于GPU的量(大致1. 5千兆字節(jié)),并將值存儲(chǔ)在表中。在示例性實(shí)施方式中,閾值可被設(shè)置為所估計(jì)的由GPU控制的可用圖形存儲(chǔ)器的量。在另一實(shí)施方式中,閾值可通過(guò)隨時(shí)間監(jiān)視圖形處理單元并確定在圖形處理單元重置時(shí)有多少所估計(jì)的可用圖形存儲(chǔ)器可用來(lái)設(shè)置閾值。例如,可根據(jù)性能數(shù)據(jù)來(lái)計(jì)算圖形處理單元將被重置的概率,并將其與所估計(jì)的可用圖形存儲(chǔ)器進(jìn)行關(guān)聯(lián)。在示例實(shí)施方式中, 此所估計(jì)的可用圖形存儲(chǔ)器的量可被設(shè)置為閾值。在其他實(shí)施方式中,可將此所估計(jì)的可用圖形存儲(chǔ)器的量乘以標(biāo)量值,并且經(jīng)縮放的所估計(jì)的可用圖形存儲(chǔ)器的量可被用作閾值。例如,所估計(jì)的可用圖形存儲(chǔ)器的量的80%可被設(shè)置為閾值。在示范的實(shí)施方式中,3D圖形服務(wù)管理器404基于信息來(lái)估計(jì)虛擬機(jī)可使用的圖形存儲(chǔ)器的量,該信息包括但不局限于像素尺寸、色彩深度、用于虛擬機(jī)的顯示的數(shù)量、吞吐量、壓縮比、所估計(jì)的將為虛擬機(jī)渲染的表面的量、存儲(chǔ)生成頂點(diǎn)所需的圖元所需的存儲(chǔ)器的量、存儲(chǔ)應(yīng)用于頂點(diǎn)的紋理所需的存儲(chǔ)器、向?qū)ο髴?yīng)用選擇的抗鋸齒效果所需的存儲(chǔ)器等。響應(yīng)于接收到虛擬機(jī)啟動(dòng)的指示,3D圖形服務(wù)管理器404可被配置成估計(jì)虛擬機(jī)將使用的圖形存儲(chǔ)器的量。在此示例中,用于估計(jì)所使用的圖形存儲(chǔ)器的量的信息的一些或全部可被存儲(chǔ)在與虛擬機(jī)相關(guān)聯(lián)的配置文件中。在另一實(shí)施方式中,所估計(jì)的虛擬機(jī)在運(yùn)行時(shí)使用的圖形存儲(chǔ)器的量可被監(jiān)視,被3D圖形服務(wù)管理器404使用,并被存儲(chǔ)在配置文件中以供在后繼虛擬桌面會(huì)話期間使用。除了前述之外,在示例性實(shí)施方式中,其他信息可被用于向可用GPU指派虛擬機(jī)。 例如,已被指派給GPU的虛擬機(jī)的數(shù)量可被用于預(yù)測(cè)GPU是否過(guò)載??呻S時(shí)間監(jiān)視指派給 GPU的虛擬機(jī)的數(shù)量,并且可在圖形處理單元重置時(shí),記錄所綁定的虛擬機(jī)的數(shù)量。參看圖 6,3D圖形服務(wù)管理器404可包括表中反映以下內(nèi)容的值3D GPU 504附連3個(gè)虛擬機(jī)、3D GPU 504B附連1個(gè)虛擬機(jī)、而3D GPU 504C附連兩個(gè)虛擬機(jī)。如果3D圖形處理單元重置, 則3D圖形服務(wù)管理器404可根據(jù)表來(lái)確定在其崩潰時(shí)有多少虛擬機(jī)被附連??筛鶕?jù)隨時(shí)間捕捉的性能數(shù)據(jù)來(lái)計(jì)算不同類型的圖形處理單元將被重置的概率,并將其與所估計(jì)的附連的虛擬機(jī)的量進(jìn)行關(guān)聯(lián)。在其中3D圖形服務(wù)管理器404也使用所估計(jì)的圖形存儲(chǔ)器的量來(lái)選擇GPU的示例性實(shí)施方式中,所估計(jì)的可用圖形存儲(chǔ)器的量可具有比所附連的虛擬機(jī)的數(shù)量更大的權(quán)重。在相同或另一示例性實(shí)施方式中,3D圖形服務(wù)管理器404用來(lái)確定是否向GPU指派虛擬機(jī)的信息可包括描述圖形處理單元用來(lái)對(duì)命令作出響應(yīng)所花的平均時(shí)間長(zhǎng)度,即等待時(shí)間,可用來(lái)確定圖形處理單元是否有壓力。在一實(shí)施方式中,3D圖形服務(wù)管理器404可將平均等待時(shí)間存儲(chǔ)在表中,并且在崩潰之際,3D圖形服務(wù)管理器404可將命令的平均等待時(shí)間與閾值作比較。如果平均等待時(shí)間小于閾值,則3D圖形服務(wù)管理器404可被配置成向GPU指派虛擬機(jī)。閾值可以由管理員等設(shè)置并可以依賴于使用的圖形處理單元。在示例性實(shí)施方式中,可以執(zhí)行對(duì)不同類型的GPU加載遞增數(shù)量的虛擬機(jī)的實(shí)驗(yàn)。隨著更多虛擬機(jī)被添加時(shí), 等待時(shí)間可以被記錄并且可以通過(guò)將在一時(shí)間段上的重置的量與在等待時(shí)間較低時(shí)的相同時(shí)間段上的重置的量作比較來(lái)計(jì)算重置的概率。所監(jiān)視的與高重置概率相關(guān)聯(lián)的等待時(shí)間可被用于設(shè)置閾值。在示例實(shí)施方式中,所監(jiān)視的等待時(shí)間可被設(shè)置為閾值。在其他的示范實(shí)施方式中,所監(jiān)視的等待時(shí)間可被乘以標(biāo)量值,并且可以使用經(jīng)縮放的等待時(shí)間。例如,所監(jiān)視的等待時(shí)間的80%可以被設(shè)置為閾值。在示例性實(shí)施方式中,可以自圖形內(nèi)核508向GPU發(fā)出命令的時(shí)間起測(cè)量等待時(shí)間直至接收到確認(rèn)(“ACK”)。在接收到每個(gè)ACK之后,圖形內(nèi)核508可以將與請(qǐng)求相關(guān)聯(lián)的等待時(shí)間發(fā)送給3D圖形服務(wù)管理器404。3D圖形服務(wù)管理器404可以更新表中反映該 GPU的平均等待時(shí)間的值。在另一示例實(shí)施方式中,可自虛擬設(shè)備驅(qū)動(dòng)程序518開(kāi)始直接存儲(chǔ)器存取事務(wù)的時(shí)間起測(cè)量等待時(shí)間。例如,API 5 可向DMA緩沖器寫入圖元,其可被虛擬設(shè)備驅(qū)動(dòng)程序518捕捉并被發(fā)送到圖形渲染模塊506。API 5 可最終發(fā)出命令。當(dāng)虛擬設(shè)備驅(qū)動(dòng)程序 518接收命令時(shí),它可啟動(dòng)計(jì)時(shí)器。虛擬設(shè)備驅(qū)動(dòng)程序518可以將該命令發(fā)送給圖形渲染模塊506,圖形渲染模塊506進(jìn)而將向圖形內(nèi)核508發(fā)送命令。圖形內(nèi)核508可向3D圖形驅(qū)動(dòng)程序510發(fā)送命令,其可導(dǎo)致3D圖形處理單元504處理DMA緩沖器中的圖元。3D GPU 504可生成ACK,并且情況可被傳播回虛擬機(jī)驅(qū)動(dòng)程序518,且虛擬設(shè)備驅(qū)動(dòng)程序518可停止定時(shí)器。虛擬設(shè)備驅(qū)動(dòng)程序518隨后可以經(jīng)由消息-遞送通信信道516將等待時(shí)間發(fā)送給3D圖形服務(wù)管理器404。3D圖形服務(wù)管理器404可以更新表中反映虛擬機(jī)的平均等待時(shí)間的值。例如,虛擬設(shè)備驅(qū)動(dòng)程序518可向3D圖形服務(wù)客戶機(jī)514發(fā)送包括事務(wù)的等待時(shí)間的消息。3D GPU服務(wù)提供者512可接收該消息并將該消息發(fā)送給3D圖形服務(wù)管理器 404,后者可更新表。在此示例中,事務(wù)的等待時(shí)間可被用于確定由虛擬機(jī)414發(fā)出的DMA 事務(wù)的平均等待時(shí)間,這反映3D GPU 504的資源是否被過(guò)量使用。在示例性實(shí)施方式中,除了在虛擬機(jī)分散時(shí)對(duì)它們進(jìn)行負(fù)載平衡之外,響應(yīng)于當(dāng)前條件,3D圖形服務(wù)管理器404可被配置成將更多虛擬機(jī)從一個(gè)3DGPU移動(dòng)到另一個(gè)(通過(guò)重新綁定其相關(guān)聯(lián)圖形渲染模塊)。例如,圖6示出了被從3D GPU 504移動(dòng)到3D GPU 504B的圖形渲染模塊506。在此示例性實(shí)施方式中,當(dāng)上下文切換發(fā)生以運(yùn)行虛擬化平臺(tái) 402時(shí)、當(dāng)檢測(cè)到對(duì)啟動(dòng)虛擬機(jī)的請(qǐng)求時(shí)、和/或在預(yù)定時(shí)間量期滿且生成中斷之后,3D圖形服務(wù)管理器404可運(yùn)行。在此示例性實(shí)施方式中,3D圖形服務(wù)管理器404可被配置成確定任何GPU是否過(guò)載,例如,是否處于重置風(fēng)險(xiǎn),以及是否移動(dòng)虛擬機(jī)(在遷移操作可降低過(guò)載GPU的風(fēng)險(xiǎn)且將不會(huì)令人難以接受地增大導(dǎo)致其他GPU重置的風(fēng)險(xiǎn)的情形中)。例如,3D圖形服務(wù)管理器404可被配置成確定被綁定到每個(gè)3D GPU的虛擬機(jī)的數(shù)量、對(duì)于每個(gè)3D GPU可用的圖形存儲(chǔ)器的量、由綁定到每個(gè)3D GPU的每個(gè)虛擬機(jī)發(fā)起的DMA事務(wù)的平均等待時(shí)間、每個(gè)圖形渲染模塊使用3D GPU的百分比、與每個(gè)圖形渲染模塊相關(guān)聯(lián)的吞吐量、和/或圖形內(nèi)核命令的平均等待時(shí)間。在此信息指示3D GPU過(guò)載的情形中,3D圖形服務(wù)管理器404可被配置成表示哪個(gè)虛擬機(jī)處于最大壓力下。3D圖形服務(wù)管理器404可在隨后向另一圖形處理單元指派有壓力的虛擬機(jī)。該操作流程中的指派部分類似于以上所描述的指派過(guò)程。
在示例性實(shí)施方式中,3D圖形服務(wù)管理器404可通過(guò)向圖形渲染模塊(例如,圖形渲染模塊506)發(fā)送移動(dòng)命令連同新GPU的設(shè)備標(biāo)識(shí)符,來(lái)發(fā)起移動(dòng)操作。在此示例中,圖形渲染模塊506可接收命令并找到與新標(biāo)識(shí)符相關(guān)聯(lián)的GPU,例如,3D GPU 504B。在此示例中,圖形渲染模塊可被配置成復(fù)制任何內(nèi)核緩沖器;綁定到3D GPU 504B,以及拆卸至3D GPU 504的映射。在綁定操作完成之后,圖形渲染模塊可向3D圖形服務(wù)管理器404通知發(fā)生了移動(dòng),而3D圖形服務(wù)管理器404可更新其表以反映圖形渲染模塊506被附連到3DGPU 504B。 參看圖7,在示例性實(shí)施方式中,移動(dòng)操作可被用于將虛擬機(jī)遷移到不同的虛擬桌面服務(wù)器G00B-400D)。如附圖中所示的,每個(gè)虛擬桌面服務(wù)器G00-400D)可包括一組一個(gè)或多個(gè)圖形處理單元(704-704D)以及3D圖形服務(wù)管理器0O4-4O4D)的實(shí)例。還示出了可被配置成成控制數(shù)據(jù)中心700的管理系統(tǒng)702。管理系統(tǒng)702任選地可包括主3D圖形服務(wù)管理器(以虛線指示以標(biāo)示其被認(rèn)為是任選的),該主3D圖形服務(wù)管理器可控制數(shù)據(jù)中心700中的所有其他3D圖形服務(wù)管理器G04-404D)。標(biāo)識(shí)每個(gè)虛擬機(jī)的獨(dú)特信息可被用于影響遷移操作。例如,當(dāng)每個(gè)虛擬機(jī)被啟動(dòng)時(shí),在其中啟動(dòng)VM的服務(wù)器上運(yùn)行的3D圖形服務(wù)管理器(例如,3D圖形服務(wù)管理器404) 可創(chuàng)建數(shù)據(jù)中心內(nèi)的虛擬機(jī)的唯一標(biāo)識(shí)符。唯一標(biāo)識(shí)符可包括虛擬機(jī)在其上渲染的圖形處理單元的類型,所估計(jì)的其使用的圖形存儲(chǔ)器的量等。在示例實(shí)施方式中,如果虛擬機(jī)414 有壓力,且在服務(wù)器上沒(méi)有合適的GPU可用,則3D圖形服務(wù)管理器404可向數(shù)據(jù)中心內(nèi)的每個(gè)虛擬桌面服務(wù)器或者任選地向管理系統(tǒng)702發(fā)送唯一標(biāo)識(shí)符。在其中唯一標(biāo)識(shí)符被發(fā)送給每個(gè)虛擬桌面服務(wù)器的示例中,圖形服務(wù)管理器 (404-404D)可基于先前段落中描述的信息確定虛擬機(jī)是否可被指派給圖形處理單元。在圖形服務(wù)管理器(例如,圖形服務(wù)管理器404C)確定其可操作虛擬機(jī)414的情形中,虛擬桌面服務(wù)器400可被配置成將虛擬機(jī)414遷移到虛擬桌面服務(wù)器400C。在其中唯一標(biāo)識(shí)符被發(fā)送給主3D圖形服務(wù)管理器706的情形中,主3D圖形服務(wù)管理器706可被配置成包括來(lái)自數(shù)據(jù)中心700內(nèi)的每個(gè)3D圖形服務(wù)管理器G04-404D)的所有性能信息;并且主3D圖形服務(wù)管理器706可基于在先前段落中描述的信息來(lái)確定虛擬機(jī)是否可被指派給數(shù)據(jù)中心700內(nèi)的任何圖形處理單元。以下是描繪操作流程的一系列流程圖。為便于理解,流程圖被組織成使得初始流程圖通過(guò)總體“大圖”視點(diǎn)來(lái)演示各實(shí)現(xiàn),并且后續(xù)的流程圖提供以虛線示出的進(jìn)一步的附加物和/或細(xì)節(jié)。此外,本領(lǐng)域的技術(shù)人員可以理解,虛線所描繪的操作流程被認(rèn)為是任選的。參看圖8,其示出了用于對(duì)虛擬機(jī)之間的圖形處理器使用進(jìn)行平衡的操作流程,包括操作800、802、804和806。操作800指示操作流程的開(kāi)始,而操作802示出指派一組虛擬機(jī)在第一 3D圖形處理單元上渲染3D圖形。例如,并參考圖6,在示例性實(shí)施方式中,3D圖形服務(wù)管理器400可指派一組虛擬機(jī)在圖形處理單元上進(jìn)行渲染,例如,指派虛擬機(jī)414、 虛擬機(jī)414D、和虛擬機(jī)414E在3D圖形處理單元504上渲染3D圖形。在此特定示例中,每個(gè)虛擬機(jī)G14-414F)可與圖形渲染模塊(506、506D和506)相關(guān)聯(lián),這些圖形渲染模塊在虛擬化平臺(tái)402中執(zhí)行,例如在圖2的主機(jī)204內(nèi)執(zhí)行,這些圖形渲染模塊可經(jīng)由應(yīng)用程序接口調(diào)用來(lái)綁定到3D圖形處理單元504。在此示例中,圖形渲染模塊(506、506D和506)可被配置成收集包含圖元的DMA緩沖器以及表示命令的API結(jié)構(gòu);任選地,將命令翻譯成可被 3D圖形驅(qū)動(dòng)程序510處置的命令;以及將這些命令連同包含DMA緩沖器的存儲(chǔ)器的頁(yè)發(fā)給圖形內(nèi)核508。繼續(xù)圖8的描述,操作804示出至少基于第一 3D圖形處理單元用來(lái)對(duì)命令進(jìn)行響應(yīng)所花的時(shí)間量來(lái)確定第一 3D圖形處理單元被過(guò)度使用。例如,在示例性實(shí)施方式中,3D 圖形服務(wù)管理器404可在處理器上執(zhí)行,并確定3D圖形處理單元504被過(guò)度使用,例如,3D 圖形處理單元504不具有用于服務(wù)所有其請(qǐng)求的足夠的資源,并且可被重置,由此導(dǎo)致圖形渲染模塊(506、506D和506)終止。在此特定示例中,確定可至少基于圖形處理單元(例如3D GPU504)用來(lái)用ACK答復(fù)圖形內(nèi)核508所花的平均時(shí)間長(zhǎng)度。在此示例中,可用硬件用來(lái)響應(yīng)圖形內(nèi)核命令所花的等待時(shí)間來(lái)更新由3D圖形服務(wù)管理器404所控制的表。可將平均值與閾值等待時(shí)間值作比較,并且如果平均值大于閾值,則3D圖形服務(wù)管理器404 可被配置成確定3D GPU 504被過(guò)度使用。
繼續(xù)圖8的描述,操作806示出至少響應(yīng)于對(duì)第一 3D圖形處理單元被過(guò)度使用的判定來(lái)將第一虛擬機(jī)從該組虛擬機(jī)移至第二圖形處理單元。例如,并再次參看圖6,在示例性實(shí)施方式中,3D圖形服務(wù)管理器404可被配置成選擇第一虛擬機(jī)(例如,虛擬機(jī)414)來(lái)移至第二圖形處理單元(例如,3D GPTO04B)。在示例中,將虛擬機(jī)414移至3D GPU 504B涉及將圖形渲染模塊506從3D GPU 504移至3D GPU 504B。例如,3D圖形服務(wù)管理器404可將移動(dòng)命令連同3D GPU 405B的設(shè)備標(biāo)識(shí)符發(fā)送給圖形渲染模塊506。圖形渲染模塊506 可接收命令;復(fù)制內(nèi)部緩沖器;以及綁定至3D GPU 504B。在綁定操作完成之后,圖形渲染模塊506可拆卸至3D GPU 504的映射,并將完成信號(hào)發(fā)送給3D圖形服務(wù)管理器404,該3D 圖形服務(wù)管理器可更新表以反映虛擬機(jī)414被綁定到3D GPU 504B。進(jìn)一步,圖形渲染模塊 506可向3D GPU 504B發(fā)出渲染命令,且可由3D圖形服務(wù)管理器404監(jiān)視命令的平均等待時(shí)間?,F(xiàn)在回到圖9,其示出圖8的操作流程,包括附加操作/細(xì)化908-916。操作908 示出了響應(yīng)于確定所估計(jì)的由第二圖形處理單元控制的可用圖形存儲(chǔ)器的量大于閾值,將第一虛擬機(jī)移至第二圖形處理單元。例如,并參看圖6,在示例性實(shí)施方式中,3D圖形服務(wù)管理器404可被配置成被綁定至3D GPU 504 (例如,虛擬機(jī)414)的虛擬機(jī)來(lái)移動(dòng)。在此示例中,決定將虛擬機(jī)414移至3D GPU 504B可至少基于對(duì)所估計(jì)的可為3D GPU 504B所用的圖形存儲(chǔ)器的量大于閾值的判定,該閾值可基于所估計(jì)的用于渲染虛擬機(jī)414的圖形的圖形存儲(chǔ)器的量。在此情形中,3D圖形服務(wù)管理器404可被配置成響應(yīng)于對(duì)3D GPTO04過(guò)載的判定以及對(duì)3D GPU 504B可容納虛擬機(jī)414的判定來(lái)移動(dòng)虛擬機(jī)414。繼續(xù)圖9的描述,操作910示出基于由第一虛擬機(jī)發(fā)起的直接存儲(chǔ)器存取事務(wù)的平均等待時(shí)間確定第一 3D圖形處理單元被過(guò)度所用。在此示例中,3D圖形服務(wù)管理器404 可移動(dòng)虛擬機(jī)414,因?yàn)榕c虛擬機(jī)414相關(guān)聯(lián)的DMA事務(wù)的平均等待時(shí)間大于例如綁定至3D GPU 504的所有其他圖形渲染模塊(506D和506E)。在此示例中,3D圖形服務(wù)管理器404可被配置成首先確定由圖形內(nèi)核508發(fā)出的命令的平均等待時(shí)間,并在隨后所用DMA事務(wù)的平均等待時(shí)間來(lái)確定虛擬機(jī)414是與GPU相關(guān)聯(lián)的受壓力最重的虛擬機(jī)。轉(zhuǎn)到操作912,其示出了響應(yīng)于確定指派給第二圖形處理單元的第二虛擬機(jī)的直接存儲(chǔ)器存取事務(wù)的平均等待時(shí)間小于閾值來(lái)移動(dòng)第一虛擬機(jī)。在示例性實(shí)施方式中,3D 圖形服務(wù)管理器404可被配置成響應(yīng)于確定綁定到3D GPU504B的一個(gè)或多個(gè)虛擬機(jī)的DMA 事務(wù)的平均等待時(shí)間小于閾值來(lái)將虛擬機(jī)移至3D GPU 504B。例如,3D圖形服務(wù)管理器404 可檢查包括虛擬機(jī)414B的DMA事務(wù)的平均等待時(shí)間的表。3D圖形服務(wù)管理器404可將平均等待時(shí)間與閾值作比較,并確定平均等待時(shí)間小于閾值。這指示虛擬機(jī)414B內(nèi)的負(fù)載較低,且理論上指示3D GPU 504B上的負(fù)載較低。在此情形中,3D圖形服務(wù)管理器404可被配置成至少基于此確定移動(dòng)圖形渲染模塊506。轉(zhuǎn)到操作914,其示出了響應(yīng)于確定指派給第二圖形處理單元的虛擬機(jī)的數(shù)量小于閾值來(lái)移動(dòng)第一虛擬機(jī)。在示例性實(shí)施方式中,3D圖形服務(wù)管理器404可被配置成響應(yīng)于確定綁定到3D GPU 504B的虛擬機(jī)的數(shù)量小于閾值數(shù)量來(lái)將虛擬機(jī)414移至3D GPU 504B。在此示例中,3D圖形服務(wù)管理器404可配置成從其表中讀取指示當(dāng)前被綁定到3D GPU 504B的虛擬機(jī)的數(shù)量(其在所示示例中為1)的值并確定當(dāng)前所綁定的虛擬機(jī)的數(shù)量小于閾值數(shù)量(即基于性能和/或管理偏好的數(shù)量)。在此情形中,3D圖形服務(wù)管理器404
17可被配置成至少基于此確定移動(dòng)圖形渲染模塊506。轉(zhuǎn)到操作916,其示出了確定第一圖形處理單元和第二圖形處理單元的特征。例如,在一實(shí)施方式中,3D圖形服務(wù)管理器404可被配置成確定計(jì)算機(jī)系統(tǒng)中的每個(gè)3D圖形處理單元的特征。例如,并繼續(xù)先前的示例,3D圖形服務(wù)管理器404可被配置成確定3D圖形處理單元504、504B和504C的特征。在此示例中,這些特征可被用于確定圖形處理單元是否能夠?yàn)樘摂M機(jī)處理3D圖形。例如,3D圖形服務(wù)管理器404可被配置成進(jìn)行檢查以查看圖形卡是否支持共享表面和紋理,其是否至少支持例如DirectX 的特定版本,與圖形處理單元相關(guān)聯(lián)的圖形存儲(chǔ)器的量等等。在此示例中,該信息可被用于填充可被用來(lái)平衡虛擬機(jī)之間的圖形處理單元使用的表?,F(xiàn)在參看圖10,其示出了用于對(duì)虛擬機(jī)之間的圖形處理單元使用進(jìn)行平衡的操作流程,包括操作1000、1002、1004、1006、和1008。轉(zhuǎn)到操作1000,其開(kāi)始操作流程,而操作 1002示出了接收對(duì)將第一虛擬機(jī)指派給第一 3D圖形處理單元的請(qǐng)求。例如,并參看圖5, 在示例性實(shí)施方式中,3D圖形服務(wù)管理器404可執(zhí)行并接收對(duì)將第一虛擬機(jī)(例如,虛擬機(jī) 414)指派給3D圖形處理單元(例如,3D GPU 504)的指令。在此示例中,請(qǐng)求可以是指示諸如客戶機(jī)520之類的客戶機(jī)已請(qǐng)求虛擬桌面會(huì)話的信號(hào)。繼續(xù)圖10的描述,操作1004示出了估計(jì)用于為第一虛擬機(jī)渲染3D圖形的圖形存儲(chǔ)器的量。例如,在一實(shí)施方式中,3D圖形服務(wù)管理器404可估計(jì)虛擬機(jī)414可用來(lái)渲染 3D圖形的圖形存儲(chǔ)器的量,例如,可至少允許足夠?yàn)樘摂M機(jī)渲染圖形的圖形存儲(chǔ)器的量。例如,估計(jì)可基于從與虛擬機(jī)414相關(guān)聯(lián)的配置文件獲得的信息,其指示例如虛擬機(jī)414在其運(yùn)行的最后的時(shí)間期間所使用的圖形存儲(chǔ)器的平均量。在另一示例性實(shí)施方式中,所估計(jì)的為虛擬機(jī)渲染圖形所需的圖形存儲(chǔ)器的量可以是根據(jù)描述顯示圖像所需的最小存儲(chǔ)器量的信息來(lái)估計(jì)的。在另一示例實(shí)施方式中,所估計(jì)的圖形存儲(chǔ)器的量可以基于所估計(jì)的高速緩存圖元所需的存儲(chǔ)器的量等等。操作1006示出了響應(yīng)于確定與由被指派在第一圖形處理單元上渲染圖形的一組虛擬機(jī)所發(fā)出的直接存儲(chǔ)器存取事務(wù)相關(guān)聯(lián)的等待時(shí)間值小于第一閾值以及所估計(jì)的用于渲染3D圖形的圖形存儲(chǔ)器的量小于第二閾值,來(lái)從多個(gè)3D圖形處理單元選擇第一 3D圖形處理單元。例如,3D圖形服務(wù)管理器404可存儲(chǔ)指示被綁定到3D GPU 504的每個(gè)虛擬機(jī)的DMA事務(wù)的等待時(shí)間值的信息。例如,當(dāng)3D圖形服務(wù)管理器404接收到對(duì)將虛擬機(jī)414 指派給3D GPU的請(qǐng)求時(shí),虛擬機(jī)414D和414E可被綁定到3D GPU 504。在此示例中,3D圖形服務(wù)管理器404可從表獲得等待時(shí)間值,并將該等待時(shí)間值與閾值作比較。在此示例中, 3D圖形服務(wù)管理器404還可將所估計(jì)的用于渲染虛擬機(jī)414的3D圖形的圖形存儲(chǔ)器的量與閾值作比較。在虛擬機(jī)414D和414E的平均等待時(shí)間小于閾值且所估計(jì)的用于渲染虛擬機(jī)414的3D圖形的圖形存儲(chǔ)器的量小于第二閾值的情況下,3D圖形服務(wù)管理器404可選擇 3D GPU 504。在示例性實(shí)施方式中,第二閾值(即,與所估計(jì)的用于渲染3D圖形的圖形存儲(chǔ)器的量相關(guān)聯(lián)的閾值)可以基于由3D GPU 504控制的圖形存儲(chǔ)器的總量以及所估計(jì)的用于渲染虛擬機(jī)414D和414E的3D圖形的圖形存儲(chǔ)器的量。例如,當(dāng)虛擬機(jī)414D和414E被啟動(dòng)時(shí),3D圖形服務(wù)管理器404可能已計(jì)算了所估計(jì)的用于渲染虛擬機(jī)414D和414E的3D圖形的圖形存儲(chǔ)器的量,并將這些值存儲(chǔ)在表中。當(dāng)3D圖形服務(wù)管理器404為虛擬機(jī)414D和414E中的每一個(gè)選擇了 3D GPU 504時(shí),3D圖形服務(wù)管理器404可從所估計(jì)的由GPU 504 控制的可用圖形存儲(chǔ)器的量中減去其相關(guān)聯(lián)的所估計(jì)的用于渲染3D圖形的圖形存儲(chǔ)器的量,并將該值存儲(chǔ)在表中。此值隨后可被用作第二閾值,或者第二閾值可至少部分地基于此值。操作1008示出指派第一虛擬機(jī)在第一 3D圖形處理單元上渲染3D圖形。例如,并再次參看圖6,在示例性實(shí)施方式中,3D圖形服務(wù)管理器404可被配置成初始化圖形渲染模塊506并將向其發(fā)送綁定到3D圖形處理單元504的命令。圖形渲染模塊506可接收該命令并綁定到3D圖形處理單元504。在圖形渲染模塊504綁定到3D圖形處理單元504且在虛擬機(jī)414與圖形渲染模塊506之間建立通信信道之后,圖形渲染模塊506可接收頂點(diǎn)的 DMA緩沖器,并在3D處理單元504上渲染它們。轉(zhuǎn)到圖11,其示出圖11的操作流程,包括附加操作1110-1118。操作1110示出了至少根據(jù)標(biāo)識(shí)組中的每一個(gè)虛擬機(jī)的像素尺寸的信息估計(jì)用于為第一虛擬機(jī)渲染3D圖形的圖形存儲(chǔ)器的量。例如,在一實(shí)施方式中,用于為每個(gè)虛擬機(jī)渲染3D圖形的圖形存儲(chǔ)器的量可基于與虛擬機(jī)相關(guān)聯(lián)的像素尺寸。例如,當(dāng)虛擬機(jī)被初始化時(shí),可接收配置文件,該配置文件包括諸如虛擬機(jī)的所需顯示分辨率之類的信息。3D圖形服務(wù)管理器404可接收此信息并使用其來(lái)估計(jì)用于為此虛擬機(jī)渲染3D圖形的圖形存儲(chǔ)器的量。例如,像素尺寸描述可由監(jiān)視器描述的每個(gè)尺寸中的截然不同的像素的數(shù)量。由于監(jiān)視器是兩維表面,因此這些尺寸僅兩維被使用(高度和寬度)。在示例性實(shí)施方式中, 可將像素尺寸乘以深度并除以8。該結(jié)果描述可用于在所需顯示分辨率下渲染圖像的圖形存儲(chǔ)器的量。繼續(xù)圖11的描述,操作1112示出了至少根據(jù)標(biāo)識(shí)第一 3D圖形處理單元所用的壓縮比的信息估計(jì)用于為第一虛擬機(jī)渲染3D圖形的圖形存儲(chǔ)器的量。例如,在實(shí)施方式中, 壓縮比(即,經(jīng)壓縮的圖像與未經(jīng)壓縮的圖像的大小之間的比率)可被用于估計(jì)虛擬機(jī)將使用多少圖形存儲(chǔ)器來(lái)充分地渲染第一虛擬機(jī)的圖像。例如,3D圖形處理單元可被配置成使用經(jīng)壓縮的紋理來(lái)減小其大小。當(dāng)3D圖形服務(wù)管理器404詢問(wèn)硬件時(shí),其可確定紋理壓縮是否可被啟用且將達(dá)成什么樣的壓縮比。3D圖形服務(wù)管理器404可使用此信息來(lái)估計(jì)虛擬機(jī)將使用的圖形存儲(chǔ)器的量。參看操作1114,其描繪了至少根據(jù)標(biāo)識(shí)所估計(jì)的、將為第一虛擬機(jī)渲染的表面的數(shù)量的信息來(lái)估計(jì)用于為第一虛擬機(jī)渲染3D圖形的圖形存儲(chǔ)器的量。例如,在一實(shí)施方式中,所估計(jì)的虛擬機(jī)將嘗試渲染的表面的數(shù)量可被用來(lái)估計(jì)該虛擬機(jī)將使用來(lái)足夠?yàn)樘摂M機(jī)渲染3D圖形的圖形存儲(chǔ)器的量。轉(zhuǎn)到操作1116,其描繪了響應(yīng)于確定由圖形內(nèi)核發(fā)出的至少一個(gè)命令的等待時(shí)間小于第三閾值從多個(gè)3D圖形處理單元選擇第一 3D圖形處理單元。例如,并回顧圖6,在示例性實(shí)施方式中,3D圖形服務(wù)管理器404可在處理器上執(zhí)行,并且響應(yīng)于確定圖形處理單元(例如,3D GPU 504)用來(lái)用ACK對(duì)由圖形內(nèi)核508所發(fā)出的至少一個(gè)命令作出答復(fù)所花的時(shí)間小于閾值,確定指派虛擬機(jī)414在3D圖形處理單元504上渲染3D圖形。在此示例中,可用硬件用來(lái)響應(yīng)圖形內(nèi)核命令所花的等待時(shí)間來(lái)更新由3D圖形服務(wù)管理器404所控制的表,并且在一示例性實(shí)施方式中,可使用等待時(shí)間,或者可為3D GPTO04計(jì)算平均值。 在其中使用平均值的示例中,可將平均值與閾值等待時(shí)間值作比較,并且如果平均值大于閾值,則3D圖形服務(wù)管理器404可被配置成確定3D GPU 504被過(guò)度使用。現(xiàn)在參看操作1118,其示出了響應(yīng)于確定當(dāng)前指派給第一 3D圖形處理單元的虛擬機(jī)的數(shù)量小于第四閾值來(lái)從多個(gè)3D圖形處理單元選擇第一 3D圖形處理單元。3D圖形服務(wù)管理器404可被配置成響應(yīng)于確定綁定到3D圖形處理單元504的虛擬機(jī)的數(shù)據(jù)小于閾值數(shù)量來(lái)確定選擇3D圖形處理單元504來(lái)為虛擬機(jī)414渲染圖形。在此示例中,3D圖形服務(wù)管理器404可配置成從其表中讀取指示當(dāng)前被綁定到3D圖形處理單元504的虛擬機(jī)的數(shù)量(其在所示示例中為幻的值并確定當(dāng)前所綁定的虛擬機(jī)的數(shù)量小于閾值數(shù)量(即基于性能和/或管理偏好的數(shù)量)?,F(xiàn)在參考圖12,它示出了包括操作1200、1202、1204、1206、以及1208、的操作流程。操作1200開(kāi)始操作流程,而操作1202示出至少估計(jì)用于為虛擬機(jī)渲染圖形的圖形存儲(chǔ)器的量。例如,在一實(shí)施方式中,3D圖形服務(wù)管理器404可接收虛擬機(jī)(例如,虛擬機(jī)414) 正被初始的指示,且3D圖形服務(wù)管理器404可開(kāi)始操作流程以選擇要運(yùn)行的圖形處理單元 (例如,3D圖形處理單元504)。在此示例中,操作流程可包括估計(jì)將被用來(lái)充分地渲染虛擬機(jī)414的圖形的圖形存儲(chǔ)器的量。例如,所估計(jì)的圖形存儲(chǔ)器的量可被用作虛擬機(jī)在運(yùn)行時(shí)上有多存儲(chǔ)器密集的指示符。前述對(duì)所用圖形存儲(chǔ)器的量的估計(jì)可基于顯示圖像所需的最小存儲(chǔ)器量。在另一示例實(shí)施方式中,所估計(jì)的圖形存儲(chǔ)器的量可基于所估計(jì)的用于存儲(chǔ)生成頂點(diǎn)所需的圖元所必需的存儲(chǔ)器的量、應(yīng)用于這些頂點(diǎn)的紋理、這些頂點(diǎn)應(yīng)是什么顏色、用于將抗混疊技術(shù)應(yīng)用于對(duì)象的存儲(chǔ)器等等。在一示例中,此估計(jì)可以是靜態(tài)的,即,由管理員基于預(yù)期使用來(lái)設(shè)置,或者其可以是動(dòng)態(tài)的。例如,虛擬機(jī)414使用或嘗試使用的圖形存儲(chǔ)器的量可隨時(shí)間而被監(jiān)視,例如,跨虛擬桌面會(huì)話,且估計(jì)可被用于細(xì)化估計(jì)?,F(xiàn)在轉(zhuǎn)到操作1204,其描繪了將所估計(jì)的圖形存儲(chǔ)器的量與所估計(jì)的由多個(gè)3D 圖形處理單元控制的可用圖形存儲(chǔ)器的量進(jìn)行比較。例如,3D圖形服務(wù)管理器404可被配置成將所估計(jì)的將被虛擬機(jī)414使用的圖形存儲(chǔ)器的量與所估計(jì)的對(duì)于附連到虛擬桌面服務(wù)器400的每個(gè)圖形處理單元可用的圖形存儲(chǔ)器的量進(jìn)行比較。在此示例中,3D圖形服務(wù)管理器404可先前已獲得圖形卡(該圖形卡容納圖形處理單元)內(nèi)集成的圖形存儲(chǔ)器的量,并將該信息存儲(chǔ)在表中。另外,每次虛擬機(jī)被綁定到圖形處理單元,3D圖形服務(wù)管理器 404就可被配置成從總數(shù)量減去所估計(jì)虛擬機(jī)將使用的圖形存儲(chǔ)器頂點(diǎn)的量,并將此值存儲(chǔ)在表中。在此,3D圖形服務(wù)管理器404可將虛擬機(jī)414所需的圖形存儲(chǔ)器的量與所估計(jì)的3D GPU 504,3D GPU 504B和3D GPU 504C上的可用圖形存儲(chǔ)器的量進(jìn)行比較。繼續(xù)圖12的描述,操作1206示出了根據(jù)比較從多個(gè)3D圖形處理單元選擇3D圖形處理單元來(lái)為虛擬機(jī)渲染3D圖形。例如,3D圖形服務(wù)管理器404可至少基于比較的結(jié)果來(lái)選擇要綁定到虛擬機(jī)的GPU(例如,3D GPU 506)。例如,并繼續(xù)先前示例,3D圖形服務(wù)管理器404可至少部分地基于3D GPU 504被估計(jì)為具有足夠的圖形存儲(chǔ)器這個(gè)事實(shí)來(lái)確定 3D GPU 504可主存虛擬機(jī)414?,F(xiàn)在轉(zhuǎn)到操作1208,其示出了指派所選3D圖形處理單元來(lái)為虛擬機(jī)渲染3D圖形。 例如,并再次參看圖6,在示例性實(shí)施方式中,3D圖形服務(wù)管理器404可被配置成初始化圖形渲染模塊506并將向其發(fā)送綁定到3D圖形處理單元504的命令。圖形渲染模塊506可接收該命令并綁定到3D圖形處理單元504。
參照?qǐng)D13,其描繪了圖13的操作流程,包括附加操作1310-1322。操作1310示出了響應(yīng)于至少基于由虛擬機(jī)發(fā)起的直接存儲(chǔ)器存取圖形事務(wù)的平均等待時(shí)間確定3D圖形處理單元被過(guò)度使用來(lái)將虛擬機(jī)移至第二圖形處理單元。例如,并回顧圖6,在示例性實(shí)施方式中,3D圖形服務(wù)管理器404可在處理器上執(zhí)行,并確定3D圖形處理單元504被過(guò)度使用,例如,3D圖形處理單元504不具有用于服務(wù)所有其請(qǐng)求的足夠的資源,并且可被重置, 由此導(dǎo)致圖形渲染模塊(506、612和614)終止。在此特定示例中,確定可基于由虛擬機(jī)414 發(fā)起的DMA圖形事務(wù)的平均等待時(shí)間。在此示例中,可將虛擬機(jī)的平均等待時(shí)間與閾值作比較,并且3D圖形服務(wù)管理器404可被配置成至少基于此信息確定3D GPU 504的資源被過(guò)度使用。響應(yīng)于確定,3D圖形服務(wù)管理器404可被配置成將圖形渲染模塊506移至另一 GPU,諸如 3D GPU 504B 或 504C。繼續(xù)圖13的描述,操作1312示出響應(yīng)于至少基于由圖形內(nèi)核向3D圖形處理單元發(fā)出的圖形命令的平均等待時(shí)間確定3D圖形處理單元被過(guò)度使用,來(lái)將虛擬機(jī)移至第二圖形處理單元。例如,在示例性實(shí)施方式中,描述在接收到ACK之前由圖形內(nèi)核508發(fā)出命令所花的平均時(shí)間長(zhǎng)度的信息可被用來(lái)確定3D GPU是否被過(guò)度使用。在此示例中,可用關(guān)于圖形內(nèi)核命令的等待時(shí)間來(lái)更新由3D圖形服務(wù)管理器404所控制的表,并且可為3D GPU 504計(jì)算平均值??蓪⑵骄蹬c閾值等待時(shí)間值作比較,并且如果平均值大于閾值,則3D圖形服務(wù)管理器404可被配置成確定3D GPU 504被過(guò)度使用。響應(yīng)于確定,3D圖形服務(wù)管理器404可被配置成將圖形渲染模塊506移至另一 GPU,諸如3D GPU 504B或504C。轉(zhuǎn)到操作1314,其示出了確定當(dāng)前指派給所選3D圖形處理單元的虛擬機(jī)的數(shù)量小于閾值。3D圖形服務(wù)管理器404可被配置成響應(yīng)于確定綁定到3DGPU 504B的虛擬機(jī)的數(shù)量小于閾值來(lái)將虛擬機(jī)414移至3D GPU 504B。在此示例中,3D圖形服務(wù)管理器404可配置成從其表中讀取指示當(dāng)前被綁定到3DGPU 504B的虛擬機(jī)的數(shù)量(其在所示示例中為 1)的值并確定當(dāng)前所綁定的虛擬機(jī)的數(shù)量小于閾值數(shù)量(即基于性能和/或管理偏好的數(shù)量)。在此情形中,3D圖形服務(wù)管理器404可被配置成至少基于此確定移動(dòng)圖形渲染模塊 506。轉(zhuǎn)到操作1316,其示出了確定多個(gè)3D圖形處理單元中的每個(gè)3D圖形處理單元的硬件特征。例如,在一實(shí)施方式中,3D圖形服務(wù)管理器404可被配置成確定計(jì)算機(jī)系統(tǒng)中的每個(gè)3D圖形處理單元的特征。例如,并繼續(xù)先前的示例,3D圖形服務(wù)管理器404可被配置成確定3D圖形處理單元504和3D圖形處理單元B616的特征。在此示例中,這些特征可被用于確定圖形處理單元是否能夠?yàn)樘摂M機(jī)處理3D圖形。例如,3D圖形服務(wù)管理器404可被確定成進(jìn)行檢查以查看圖形卡是否支持共享表面和紋理,其是否至少支持例如DirectX 的特定版本,與圖形處理單元相關(guān)聯(lián)的圖形存儲(chǔ)器的量等等。在此示例中,該信息可被用于填充由3D圖形服務(wù)管理器404控制的、可被用來(lái)平衡虛擬機(jī)之間的圖形處理單元使用的表。參考操作1318,其示出了至少根據(jù)標(biāo)識(shí)虛擬機(jī)的像素尺寸的信息估計(jì)用于為虛擬機(jī)渲染3D圖形的圖形存儲(chǔ)器的量。例如,在一實(shí)施方式中,用于為每個(gè)虛擬機(jī)渲染3D圖形的圖形存儲(chǔ)器的量可基于與虛擬機(jī)相關(guān)聯(lián)的像素尺寸。例如,當(dāng)虛擬機(jī)被初始化時(shí),可接收配置文件,該配置文件包括諸如虛擬機(jī)的所需顯示分辨率之類的信息。3D圖形服務(wù)管理器 404可接收此信息并使用其來(lái)估計(jì)用于為此虛擬機(jī)渲染3D圖形的圖形存儲(chǔ)器的量。
轉(zhuǎn)到操作1320,其示出了至少根據(jù)標(biāo)識(shí)由所選3D圖形處理單元使用的壓縮比的信息估計(jì)用于為虛擬機(jī)渲染3D圖形的圖形存儲(chǔ)器的量。例如,在實(shí)施方式中,壓縮比(即, 經(jīng)壓縮的圖像與未經(jīng)壓縮的圖像的大小之間的比率)可被用于估計(jì)虛擬機(jī)將使用多少圖形存儲(chǔ)器來(lái)充分地渲染第一虛擬機(jī)的圖像。例如,第一 3D圖形處理單元可被配置成使用經(jīng)壓縮的紋理來(lái)減小其大小。當(dāng)3D圖形服務(wù)管理器404詢問(wèn)硬件時(shí),其可確定紋理壓縮是否可被啟用且將達(dá)成什么樣的壓縮比。3D圖形服務(wù)管理器404可使用此信息來(lái)估計(jì)虛擬機(jī)將使用的圖形存儲(chǔ)器的量。操作1322示出了至少根據(jù)標(biāo)識(shí)所估計(jì)的、將為第一虛擬機(jī)渲染的表面的數(shù)量的信息來(lái)估計(jì)用于為虛擬機(jī)渲染3D圖形的圖形存儲(chǔ)器的量。例如,在一實(shí)施方式中,所估計(jì)的虛擬機(jī)將嘗試渲染的表面的數(shù)量可被用來(lái)估計(jì)該虛擬機(jī)將使用來(lái)足夠?yàn)樘摂M機(jī)渲染3D 圖形的圖形存儲(chǔ)器的量。例如,表面是表示3D圖形中的對(duì)象的方式,并且被存儲(chǔ)在緩沖器中。前述的詳細(xì)描述通過(guò)示例和/或操作圖闡述了系統(tǒng)和/或進(jìn)程的各實(shí)施方式。在這樣的框圖和/或示例包含一個(gè)或多個(gè)功能和/或操作的范圍內(nèi),本領(lǐng)域技術(shù)人員將理解, 這樣的框圖,或示例內(nèi)的每一功能和/或操作可以分別地和/或共同地通過(guò)范圍廣泛的硬件、軟件、固件或幾乎其任何組合來(lái)實(shí)現(xiàn)。盡管示出和描述了此處所描述的本主題的特定方面,但是,對(duì)于本領(lǐng)域的技術(shù)人員顯而易見(jiàn)的是,基于此處的原理,在不偏離此處所描述的主題以及其廣泛的方面的情況下,可以作出更改和修改,因此,所附權(quán)利要求書將包含在它們的范圍內(nèi),所有這樣的更改和修改都將在此處所描述的主題的真正的精神和范圍內(nèi)。
權(quán)利要求
1.一種被配置成對(duì)虛擬機(jī)(414、414B和/或414C)之間的圖形處理器使用進(jìn)行平衡的計(jì)算機(jī)系統(tǒng)000),包括處理器(102);第一 3D圖形處理單元(504);第二 3D圖形處理單元(504B);以及存儲(chǔ)器(106和/或104),所述存儲(chǔ)器在所述計(jì)算機(jī)系統(tǒng)(400)操作時(shí)至少與所述處理器(10 通信,所述存儲(chǔ)器(106和/或104)在其上存儲(chǔ)有計(jì)算機(jī)可讀指令,所述計(jì)算機(jī)可讀指令在執(zhí)行時(shí)使得所述處理器(102)指派一組虛擬機(jī)(414、414B和/或414C)在第一 3D圖形處理單元(504)上渲染3D圖形;至少基于所述第一 3D圖形處理單元(504)用來(lái)對(duì)命令進(jìn)行響應(yīng)所花的時(shí)間量來(lái)確定所述第一 3D圖形處理單元(504)被過(guò)度使用;以及至少響應(yīng)于對(duì)所述第一 3D圖形處理單元(504)被過(guò)度使用的判定,將第一虛擬機(jī) (414)從該組虛擬機(jī)(414、414B和/或414C)移至第二圖形處理單元(504B)。
2.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于,在執(zhí)行時(shí)使得所述處理器將所述第一虛擬機(jī)移至所述第二圖形處理單元的所述計(jì)算機(jī)可讀指令還包括在執(zhí)行時(shí)使得所述處理器執(zhí)行以下操作的計(jì)算機(jī)可讀指令響應(yīng)于確定所估計(jì)的由所述第二圖形處理單元控制的可用圖形存儲(chǔ)器的量大于閾值, 將所述第一虛擬機(jī)移至所述第二圖形處理單元。
3.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于,在執(zhí)行時(shí)使得所述處理器確定所述第一 3D圖形處理單元被過(guò)度使用的所述計(jì)算機(jī)可讀指令還包括在執(zhí)行時(shí)使得所述處理器執(zhí)行以下操作的計(jì)算機(jī)可讀指令基于由所述第一虛擬機(jī)發(fā)起的直接存儲(chǔ)器存取事務(wù)的平均等待時(shí)間來(lái)確定所述第一 3D圖形處理單元被過(guò)度使用。
4.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于,在執(zhí)行時(shí)使得所述處理器將所述第一虛擬機(jī)移至所述第二圖形處理單元的所述計(jì)算機(jī)可讀指令還包括在執(zhí)行時(shí)使得所述處理器執(zhí)行以下操作的計(jì)算機(jī)可讀指令響應(yīng)于確定指派給所述第二圖形處理單元的第二虛擬機(jī)的直接存儲(chǔ)器存取事務(wù)的平均等待時(shí)間小于閾值來(lái)移動(dòng)所述第一虛擬機(jī)。
5.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于,在執(zhí)行時(shí)使得所述處理器將所述第一虛擬機(jī)移至所述第二圖形處理單元的所述計(jì)算機(jī)可讀指令還包括在執(zhí)行時(shí)使得所述處理器執(zhí)行以下操作的計(jì)算機(jī)可讀指令響應(yīng)于確定指派給所述第二圖形處理單元的虛擬機(jī)的數(shù)量小于閾值來(lái)移動(dòng)所述第一虛擬機(jī)。
6.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述計(jì)算機(jī)可讀指令還包括在執(zhí)行時(shí)使所述處理器執(zhí)行以下操作的計(jì)算機(jī)可讀指令確定所述第一圖形處理單元和所述第二圖形處理單元的特征。
7.一種包括用于對(duì)虛擬機(jī)G14、414B、414C、414D、414E、414F)之間的圖形處理單元使用進(jìn)行平衡的計(jì)算機(jī)可讀指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)(106和/或104),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括在由處理器執(zhí)行時(shí)使得所述處理器執(zhí)行以下操作的指令接收將第一虛擬機(jī)(414)指派給第一 3D圖形處理單元(504、504B、和/或504C)的請(qǐng)求;估計(jì)用于為所述第一虛擬機(jī)(414)渲染3D圖形的圖形存儲(chǔ)器的量;響應(yīng)于確定與由被指派在所述第一圖形處理單元(504)上渲染圖形的一組虛擬機(jī) (414D和414E)發(fā)出的直接存儲(chǔ)器存取事務(wù)相關(guān)聯(lián)的等待時(shí)間值小于第一閾值以及所估計(jì)的用于渲染3D圖形的圖形存儲(chǔ)器的量小于第二閾值,從多個(gè)3D圖形處理單元(504、504B、 和/或504C)選擇所述第一 3D圖形處理單元;指派所述第一虛擬機(jī)(414)在所述第一 3D圖形處理單元(504)上渲染3D圖形。
8.如權(quán)利要求7所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)在執(zhí)行時(shí)使得所述處理器至少根據(jù)標(biāo)識(shí)所述組中的每一個(gè)虛擬機(jī)的像素尺寸的信息估計(jì)用于為所述第一虛擬機(jī)渲染3D圖形的圖形存儲(chǔ)器的量。
9.如權(quán)利要求7所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)在執(zhí)行時(shí)使得所述處理器至少根據(jù)標(biāo)識(shí)由所述第一 3D圖形處理單元使用的壓縮比的信息估計(jì)用于為所述第一虛擬機(jī)渲染3D圖形的圖形存儲(chǔ)器的量。
10.如權(quán)利要求7所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)在執(zhí)行時(shí)使得所述處理器至少根據(jù)標(biāo)識(shí)所估計(jì)的、將為所述第一虛擬機(jī)渲染的表面的數(shù)量的信息來(lái)估計(jì)用于為所述第一虛擬機(jī)渲染3D圖形的圖形存儲(chǔ)器的量。
11.如權(quán)利要求7所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,在執(zhí)行時(shí)使得所述處理器選擇所述第一 3D圖形處理單元的所述計(jì)算機(jī)可讀存儲(chǔ)指令包括在執(zhí)行時(shí)使得所述處理器執(zhí)行以下操作的計(jì)算機(jī)可讀指令響應(yīng)于確定由圖形內(nèi)核發(fā)出的至少一個(gè)命令的等待時(shí)間小于第三閾值,從所述多個(gè)3D 圖形處理單元選擇所述第一 3D圖形處理單元。
12.如權(quán)利要求7所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,在執(zhí)行時(shí)使得所述處理器選擇所述第一 3D圖形處理單元的所述計(jì)算機(jī)可讀存儲(chǔ)指令包括在執(zhí)行時(shí)使得所述處理器執(zhí)行以下操作的計(jì)算機(jī)可讀指令響應(yīng)于確定當(dāng)前指派給所述第一 3D圖形處理單元的虛擬機(jī)的數(shù)量小于第四閾值,從所述多個(gè)3D圖形處理單元選擇所述第一 3D圖形處理單元。
13.如權(quán)利要求7所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)在執(zhí)行時(shí)使得所述處理器響應(yīng)于至少基于由所述第一虛擬機(jī)發(fā)起的直接存儲(chǔ)器存取圖形事務(wù)的平均等待時(shí)間確定所述第一 3D圖形處理單元被過(guò)度使用,將所述第一虛擬機(jī)移至第二圖形處理單元。
14.如權(quán)利要求7所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)在執(zhí)行時(shí)使得所述處理器響應(yīng)于至少基于由圖形內(nèi)核向所述第一 3D圖形處理單元發(fā)出的圖形命令的平均等待時(shí)間確定所述第一 3D圖形處理單元被過(guò)度使用,將所述第一虛擬機(jī)移至第二圖形處理單兀。
15.如權(quán)利要求7所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)在執(zhí)行時(shí)使得所述處理器確定多個(gè)3D圖形處理單元中的每個(gè)3D圖形處理單元的硬件特征。
全文摘要
本文描述了用于對(duì)啟用GPU的虛擬機(jī)進(jìn)行負(fù)載平衡的技術(shù)。本文公開(kāi)了用于對(duì)虛擬機(jī)之間的3D圖形處理單元使用進(jìn)行平衡的示例性技術(shù)。在一示例性實(shí)施方式中,虛擬化平臺(tái)可為虛擬機(jī)加載圖形渲染模塊的實(shí)例;選擇供圖形渲染模塊在其上運(yùn)行的GPU;以及將虛擬機(jī)配置成向所選CPU進(jìn)行渲染。除以上之外,在具體實(shí)施方式
、權(quán)利要求書和附圖中描述了其他方面。
文檔編號(hào)G06F9/455GK102402462SQ20111030833
公開(kāi)日2012年4月4日 申請(qǐng)日期2011年9月29日 優(yōu)先權(quán)日2010年9月30日
發(fā)明者B·S·波斯特, E·K-h·韓, P·查克拉博蒂, P·辛格, V·龐南潘, W·M·P·約翰斯頓 申請(qǐng)人:微軟公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1