本文所描述的實(shí)施例涉及對(duì)與其功能性相關(guān)聯(lián)的視頻適配器進(jìn)行對(duì)準(zhǔn)。更特別地,實(shí)施例涉及管理通用計(jì)算圖形處理單元(general-purpose computing on graphics processing unit,GPGPU)適配器的操作模式。
背景技術(shù):
圖形處理單元(GPU)是被設(shè)計(jì)為加速旨在用于對(duì)視覺顯示器的輸出的幀緩沖器中的圖像的創(chuàng)建的電子電路。在許多計(jì)算設(shè)備中找到并且使用GPU,包括但不限于個(gè)人計(jì)算機(jī)、游戲控制臺(tái)、移動(dòng)電話、工作站、嵌入式系統(tǒng)等。在個(gè)人計(jì)算機(jī)的情況下,GPU可以存在于視頻適配器上。視頻適配器(在本領(lǐng)域中還被稱為視頻卡、圖形卡、圖形板、圖形適配器等)是連接到個(gè)人計(jì)算機(jī)的主板并且與視覺顯示器對(duì)接以便將圖像饋送輸出給視覺顯示器的設(shè)備。
視頻適配器通過主板接口(例如,計(jì)算機(jī)總線)連接到主板。計(jì)算機(jī)總線的一個(gè)示例是外圍組件互連或者PCI。這樣的PCI包括常規(guī)PCI、PCI擴(kuò)展(PCI-X)和PCI Express(PCIe)。與更現(xiàn)代的PCIe(其使用串行的基于泳道的架構(gòu))相比較,PCI和PCI-X有時(shí)被稱為“并行PCI”。視頻適配器可以通過輸出接口連接到視覺顯示器。輸出接口的類型包括但不限于視頻圖形陣列(VGA)、高清晰度多媒體接口(HDMI)、顯示端口、數(shù)字視覺接口(DVI)、分離視頻(S-Video)、復(fù)合視頻和分量視頻。
技術(shù)實(shí)現(xiàn)要素:
本文所描述的方面包括一種用于控制GPGPU適配器的功能的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品。
根據(jù)一個(gè)方面,提供了一種用于管理GPGPU適配器的操作模式的系統(tǒng)。該系統(tǒng)包括計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)系統(tǒng)包括操作地耦合到存儲(chǔ)器的處理單元、用于輸出視頻數(shù)據(jù)的視頻設(shè)備和基本輸入/輸出系統(tǒng)(BIOS)。該系統(tǒng)還包括GPGPU適配器、視頻顯示器和與處理單元通信以控制GPGPU適配器的功能的工具。該工具包括輸入/輸出(I/O)接口。處理單元操作地耦合到I/O接口。GPGPU適配器和視覺顯示器與I/O接口通信,以及GPGPU適配器經(jīng)由通信總線與I/O接口通信。該工具還包括用于確定GPGPU適配器的存在的BIOS。更特別地,BIOS被配置為詢問GPGPU適配器,并且基于從詢問所收集的數(shù)據(jù),自動(dòng)地設(shè)置GPGPU適配器的操作模式。GPGPU適配器的模式包括第一模式和第二模式。詢問包括確定GPGPU適配器與視覺顯示器通信。響應(yīng)于確定GPGPU適配器與視覺顯示器通信,GPGPU適配器被設(shè)置到第一模式。如果適配器沒有與視覺顯示器通信,則GPGPU適配器自動(dòng)地被設(shè)置到第二模式。
根據(jù)另一方面,提供了一種用于管理GPGPU適配器的操作模式的方法。BIOS確定GPGPU適配器的存在。詢問GPGPU適配器以確定GPGPU適配器是否與視覺顯示器通信。響應(yīng)于詢問,自動(dòng)地設(shè)置GPGPU適配器的操作模式。GPGPU適配器的模式包括第一模式和第二模式。響應(yīng)于確定GPGPU適配器與視覺顯示器通信,GPGPU適配器被設(shè)置到第一模式。如果適配器沒有與視覺顯示器通信,則GPGPU適配器自動(dòng)地被設(shè)置到第二模式。
這些和其他特征和優(yōu)點(diǎn)將從結(jié)合附圖取得的所呈現(xiàn)的(一個(gè)或多個(gè))優(yōu)選的實(shí)施例的以下詳細(xì)描述而變得顯而易見。
附圖說明
本文所提到的附圖形成說明書的一部分。除非另外明確指示,否則附圖中所示的特征意味著僅圖示一些實(shí)施例而非所有實(shí)施例。
圖1描繪了根據(jù)實(shí)施例的圖示用于控制GPGPU適配器的功能的計(jì)算機(jī)系統(tǒng)。
圖2描繪了根據(jù)實(shí)施例的圖示用于控制GPGPU適配器的功能的過程的流程圖。
具體實(shí)施方式
將容易理解到,可以以各種各樣的不同配置來布置和設(shè)計(jì)如本文中的附圖所一般地描述和說明的實(shí)施例的組件。因此,如附圖中所呈現(xiàn)的系統(tǒng)和方法的實(shí)施例的以下詳細(xì)描述不旨在限制如所請(qǐng)求保護(hù)的實(shí)施例的范圍,而是僅表示可選的實(shí)施例。
參考圖1,提供了圖示用于控制GPGPU適配器的功能的示例性系統(tǒng)的框圖(100)。系統(tǒng)(100)包括計(jì)算機(jī)系統(tǒng)或者服務(wù)器(120),在本文中還被稱為主機(jī)。如所示,提供了與主機(jī)(120)通信的GPGPU適配器。在第一模式中,GPGPU適配器運(yùn)行以增強(qiáng)到視覺顯示器(190)的視頻輸出。
主機(jī)(120)的組件包括一個(gè)或多個(gè)處理器,諸如處理單元(110)、系統(tǒng)存儲(chǔ)器(128)和將包括系統(tǒng)存儲(chǔ)器(128)的各種系統(tǒng)組件耦合到處理單元(110)的總線(112)。如所示,處理單元(110)經(jīng)由總線(112)操作性地耦合到系統(tǒng)存儲(chǔ)器(128)。另外,處理單元(110)經(jīng)由與總線(112)并行的存儲(chǔ)器總線(114)操作性地耦合到系統(tǒng)存儲(chǔ)器。更特別地,總線(112)表示任何若干類型的總線架構(gòu)中的一個(gè)或多個(gè),包括存儲(chǔ)器總線或者存儲(chǔ)器控制器、外圍總線、加速圖形端口和處理器或者使用任何各種總線架構(gòu)的本地總線。以示例而非限制的方式,這樣的架構(gòu)包括工業(yè)標(biāo)準(zhǔn)架構(gòu)(ISA)總線、增強(qiáng)ISA(EISA)總線、微通道架構(gòu)(MCA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)本地總線和外圍組件互連(PCI)總線。主機(jī)(120)通常包括各種計(jì)算機(jī)系統(tǒng)可讀媒體。這樣的媒體可以是由主機(jī)(120)可訪問的任何可用的媒體,并且包括易失性介質(zhì)和非易失性介質(zhì)、和可移除介質(zhì)和不可移除介質(zhì)二者。
存儲(chǔ)器(128)被示出為一個(gè)或多個(gè)易失性或者持久性存儲(chǔ)器組件的分組或者集合。以示例的方式并且如圖1中所示,存儲(chǔ)器(128)可以包括隨機(jī)存取存儲(chǔ)器(RAM)(130)、高速緩存存儲(chǔ)器(132)、持久性存儲(chǔ)系統(tǒng)(134)和程序/實(shí)用程序(150)。在一個(gè)實(shí)施例中,持久性存儲(chǔ)系統(tǒng)(134)可以位于遠(yuǎn)離諸如遠(yuǎn)程數(shù)據(jù)中心的主機(jī)(120)。僅以示例的方式,持久性存儲(chǔ)系統(tǒng)(134)可以被提供用于讀取自和寫入到不可移除、非易失性磁性介質(zhì),通常被稱為“硬盤驅(qū)動(dòng)器”(未示出)。雖然未示出,但是可以提供用于讀取自和寫入到可移除、非易失性磁盤(例如,“軟盤”)的磁盤驅(qū)動(dòng)器和用于讀取自或者寫入到可移除、非易失性光盤(CD-ROM)的光盤驅(qū)動(dòng)器。在這樣的實(shí)例中,可以通過一個(gè)或多個(gè)數(shù)據(jù)媒體接口將這些設(shè)備中的每個(gè)設(shè)備連接到總線(112)。應(yīng)當(dāng)理解到,存儲(chǔ)器(128)的組件可以被布置為單獨(dú)的組件、實(shí)現(xiàn)在單個(gè)裝置中或者布置在其任何組合中。
程序/實(shí)用程序(150)在本文中被示出在嵌入存儲(chǔ)器(128)中。程序/實(shí)用程序(150)具有一個(gè)或多個(gè)所存儲(chǔ)的程序模塊(152)的集合。這樣的程序模塊(152)可以包括但不限于操作系統(tǒng)、一個(gè)或多個(gè)應(yīng)用程序、其他程序模塊和程序數(shù)據(jù)。操作系統(tǒng)、一個(gè)或多個(gè)應(yīng)用程序、其他程序模塊和程序數(shù)據(jù)或者其某種組合中的每一個(gè)可以包括聯(lián)網(wǎng)環(huán)境的實(shí)施方式。程序模塊(152)通常執(zhí)行本發(fā)明的實(shí)施例的功能和方法,如本文所描述的。
提供了與處理單元(110)通信的基本輸入/輸出系統(tǒng)(BIOS)固件(122),在下文中被稱為BIOS。BIOS是存儲(chǔ)在存儲(chǔ)器中的、使得計(jì)算機(jī)能夠開始操作系統(tǒng)并且與系統(tǒng)中的各種設(shè)備進(jìn)行通信的計(jì)算機(jī)指令集,這些設(shè)備包括但不限于鍵盤、視覺顯示器、持久性存儲(chǔ)裝置、(一個(gè)或多個(gè))串行通信、適配器等。在一個(gè)實(shí)施例中,BIOS(122)被存儲(chǔ)在與存儲(chǔ)器(128)通信的非易失性存儲(chǔ)器設(shè)備上以確保BIOS將總是可用的并且不受制于與磁盤故障相關(guān)聯(lián)的損害。這樣的非易失性存儲(chǔ)器設(shè)備的示例包括但不限于只讀存儲(chǔ)器(ROM)、可擦可編程只讀存儲(chǔ)器(EPROM)、閃速存儲(chǔ)器等。在一個(gè)實(shí)施例中,BIOS(122)是被嵌入在印刷電路板(PCB)或者與印刷電路板通信的微控制器。
如所示,主機(jī)(120)提供有一個(gè)或多個(gè)I/O接口,包括I/O接口(170)。如本領(lǐng)域中已知的,I/O接口(170)允許主機(jī)(120)與外部設(shè)備通信。如所示,I/O接口(170)操作性地耦合到處理單元(110),I/O接口(170)經(jīng)由通信總線(172)與GPGPU適配器(140)通信。I/O接口(170)還與視覺顯示器(190)通信。如圖1中所描繪的,通信總線(172)可以是PCIe總線。應(yīng)當(dāng)理解到,通信總線不限于PCIe總線,而是可以是任何類型的通信總線,其可以根據(jù)本文所描述的實(shí)施例在I/O接口(170)與GPGPU(140)傳送數(shù)據(jù)。各種類型的這樣的通信總線由本領(lǐng)域的普通技術(shù)人員已知的并且因此將不更詳細(xì)地討論。
視頻設(shè)備(168)被提供與處理單元(110)通信并且被配置為輸出視頻數(shù)據(jù)。在一個(gè)實(shí)施例中,視頻設(shè)備(168)是被設(shè)計(jì)為輸出視頻數(shù)據(jù)的專用集成電路(ASIC)。
如圖1中所示,視覺顯示器(190)與GPGPU適配器(140)和I/O接口(170)的第三終端二者通信。在一個(gè)實(shí)施例中,視覺顯示器(190)將擴(kuò)展顯示標(biāo)識(shí)數(shù)據(jù)(EDID)(192)提供給GPGPU適配器(140)。視覺顯示器(190)被配置為顯示來自GPGPU適配器(140)或視頻設(shè)備(168)的視頻數(shù)據(jù)輸出的圖形。通過GPGPU適配器(140)的操作模式來確定視頻數(shù)據(jù)輸出的源。更特別地,GPGPU適配器(140)包括操作的至少兩種模式,其包括第一模式和第二模式。第一模式在本文中被稱為圖形模式,并且第二模式在本文中被稱為計(jì)算模式。當(dāng)GPGPU適配器(140)操作在圖形模式中時(shí),視覺顯示器(190)從GPGPU適配器(140)接收視頻數(shù)據(jù)輸出,并且當(dāng)GPGPU適配器(140)操作在計(jì)算模式中時(shí),視覺顯示器(190)從視頻設(shè)備(168)接收視頻數(shù)據(jù)輸出。因此,視覺顯示器(190)根據(jù)GPGPU適配器(140)的操作模式,接收來自兩個(gè)不同源之一的視頻數(shù)據(jù)。
圖1中所描繪的系統(tǒng)(100)被配置為自動(dòng)地設(shè)置GPGPU適配器(140)的操作模式。下文參考圖2描述了由用于自動(dòng)地設(shè)置GPGPU適配器(140)的操作模式的系統(tǒng)(100)所實(shí)現(xiàn)的方法。
如圖1中所示,主機(jī)(120)還可以包括網(wǎng)絡(luò)適配器(160)。如所描繪的,網(wǎng)絡(luò)適配器(160)經(jīng)由總線(162)與主機(jī)(120)的其他組件通信。網(wǎng)絡(luò)適配器(160)允許主機(jī)(120)的組件與一個(gè)或多個(gè)網(wǎng)絡(luò)通信,包括但不限于局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、專用網(wǎng)絡(luò)(例如,內(nèi)聯(lián)網(wǎng))或者公共網(wǎng)絡(luò)(例如,因特網(wǎng))。網(wǎng)絡(luò)適配器的示例包括但不限于以太網(wǎng)卡、無線網(wǎng)絡(luò)適配器(例如,Wi-Fi適配器)等。經(jīng)由網(wǎng)絡(luò)適配器(160)傳送的數(shù)據(jù)以可以是例如電子、電磁、光學(xué)等的一個(gè)或多個(gè)信號(hào)的形式。經(jīng)由通信路徑(例如,信道)傳送數(shù)據(jù)。該通信路徑運(yùn)載信號(hào)并且可以使用接線或者電纜、光纖、電話線、蜂窩電話鏈路、射頻(RF)鏈路、任何其他通信信道或者前述任何組合實(shí)現(xiàn)。
應(yīng)當(dāng)理解,雖然未示出,但是可以結(jié)合主機(jī)(120)使用其他硬件和/或軟件組件。示例包括但不限于:微代碼、設(shè)備驅(qū)動(dòng)程序、冗余處理單元、外部磁盤驅(qū)動(dòng)器陣列、廉價(jià)磁盤冗余陣列(RAID)系統(tǒng)、磁帶驅(qū)動(dòng)器、數(shù)據(jù)歸檔存儲(chǔ)系統(tǒng)等。
已經(jīng)利用被提供為自動(dòng)地設(shè)置GPGPU適配器的操作模式的組件的形式的工具標(biāo)記圖1中上文所描述的系統(tǒng)(100)。工具可以實(shí)現(xiàn)在可編程硬件設(shè)備中,諸如現(xiàn)場(chǎng)可編程門陣列、可編程陣列邏輯、可編程邏輯設(shè)備等。工具還可以實(shí)現(xiàn)在用于由各種類型的處理器執(zhí)行的軟件中??蓤?zhí)行代碼的所標(biāo)識(shí)的功能單元可以例如包括計(jì)算機(jī)指令的一個(gè)或多個(gè)物理或者邏輯塊,其可以例如被組織為對(duì)象、過程、函數(shù)或者其他構(gòu)建。然而,工具的可執(zhí)行代碼不需要物理地定位在一起,但是可以包括存儲(chǔ)在不同位置中的不同指令,其在邏輯地結(jié)合在一起時(shí)包括工具并且實(shí)現(xiàn)工具的規(guī)定目的。
實(shí)際上,可執(zhí)行代碼可以是單個(gè)指令或者多個(gè)指令,并且可以甚至在若干不同的代碼段之上、在不同的應(yīng)用中間和跨越若干存儲(chǔ)器設(shè)備分布。類似地,操作數(shù)據(jù)可以在本文中在工具內(nèi)被標(biāo)識(shí)并且被說明并且可以以任何適合的形式實(shí)現(xiàn)和在任何適合類型的數(shù)據(jù)結(jié)構(gòu)內(nèi)組織。操作數(shù)據(jù)可以被收集為單個(gè)數(shù)據(jù)集,或者被分布在包括不同存儲(chǔ)設(shè)備之上的不同位置之上,并且可以作為電子信號(hào)至少部分存在于系統(tǒng)或者網(wǎng)絡(luò)上。
此外,在一個(gè)或多個(gè)實(shí)施例中,可以以任何適合的方式組合所描述的特征、結(jié)構(gòu)或者特點(diǎn)。在以下描述中,提供很多特定細(xì)節(jié)(諸如代理的示例)以提供實(shí)施例的透徹理解。然而,相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,可以在沒有特定細(xì)節(jié)中的一個(gè)或多個(gè)的情況下或者在其他方法、組件、材料等的情況下,實(shí)踐實(shí)施例。在其他實(shí)例中,未詳細(xì)示出或者描述眾所周知的結(jié)構(gòu)、材料或者操作以避免混淆實(shí)施例的方面。
現(xiàn)在參考圖2,描繪了圖示用于控制如圖1中所示和所描述的GPGPU適配器的功能的方法的流程圖(200)。通過計(jì)算機(jī)系統(tǒng)或者服務(wù)器(即,主機(jī))的BIOS確定GPGPU適配器的存在(202)。該方面可以包括掃描針通信總線以用于確定與通信總線通信的GPGPU適配器的存在。在一個(gè)實(shí)施例中,通信總線是PCIe總線。應(yīng)理解到,實(shí)施例不限于PCIe總線。相反,可以使用本領(lǐng)域的普通技術(shù)人員已知的其他類型的通信總線,其細(xì)節(jié)將不在本文中描述。
步驟(202)處的確定的肯定響應(yīng)跟隨有適配器的詢問,以確定適配器是否與視覺顯示器(204)通信。然而,當(dāng)BIOS沒有檢測(cè)到這樣的適配器時(shí),步驟(202)處的確定的否定響應(yīng)結(jié)束用于控制GPGPU適配器的功能的過程。步驟(204)處的確定的肯定響應(yīng)跟隨有BIOS讀取由視覺顯示器(208)所提供的擴(kuò)展顯示標(biāo)識(shí)數(shù)據(jù)(EDID)。在一個(gè)實(shí)施例中,EDID被編碼有與視覺顯示器的顯示能力相對(duì)應(yīng)的信息。在EDID內(nèi)所編碼的信息可以包括但不限于分辨率數(shù)據(jù)、掃描率和與視覺顯示器的能力相關(guān)聯(lián)的顯示器大小。
GPGPU適配器可以操作在多個(gè)模式中,包括第一模式和第二模式。在一個(gè)實(shí)施例中,GPGPU適配器的第一模式還被稱為用于以高分辨率輸出視頻數(shù)據(jù)以提供圖形的增強(qiáng)的觀看的圖形模式,并且GPGPU適配器的第二模式還被稱為用于加速數(shù)學(xué)運(yùn)算同時(shí)限制圖形的增強(qiáng)的觀看的計(jì)算模式。在圖形模式中,GPGPU適配器具有有限的計(jì)算能力。類似地,在計(jì)算模式中,GPGPU適配器具有有限的圖形能力。
GPGPU適配器被自動(dòng)地設(shè)置到操作模式,以及基于步驟(208)處讀取的結(jié)果進(jìn)行設(shè)置。在一個(gè)實(shí)施例中,將GPGPU適配器自動(dòng)地設(shè)置到操作模式包括:BIOS對(duì)GPGPU適配器自動(dòng)地重新初始化。更特別地,為了確保讀取已經(jīng)發(fā)生,在步驟(210)確定BIOS是否已經(jīng)讀取EDID信息。如所示,步驟(210)處的確定的肯定響應(yīng)跟隨有BIOS將GPGPU適配器的操作模式自動(dòng)地設(shè)置到圖形模式(212)。當(dāng)GPGPU適配器在圖形模式中時(shí),通過由視覺顯示器所提供的EDID信息來確定視頻數(shù)據(jù)輸出的分辨率。在一個(gè)實(shí)施例中,將GPGPU適配器設(shè)置到圖形模式使得BIOS禁能視頻ASIC。步驟(210)處的確定的否定響應(yīng)跟隨有BIOS將GPGPU適配器的操作模式設(shè)置到計(jì)算模式(214)。當(dāng)在計(jì)算模式中時(shí),GPGPU適配器利用其計(jì)算能力來加速數(shù)學(xué)運(yùn)算的性能。這樣的數(shù)學(xué)運(yùn)算包括例如算術(shù)計(jì)算。
跟隨步驟(214)或者跟隨步驟(204)處的確定的否定響應(yīng)導(dǎo)致GPGPU適配器將不在圖形模式中使用的假定。該假定基于未檢測(cè)GPGPU適配器或者BIOS不能夠讀取EDID信息的確定。在任一情況下,結(jié)果是與用于顯示圖形的視頻ASIC(206)相關(guān)聯(lián)的視頻數(shù)據(jù)的輸出。與視頻ASIC相關(guān)聯(lián)的視頻數(shù)據(jù)輸出的分辨率可以被視為主機(jī)的“默認(rèn)”分辨率。在一個(gè)實(shí)施例中,通過視頻ASIC的視頻數(shù)據(jù)輸出比圖形模式中通過的GPGPU適配器的視頻數(shù)據(jù)輸出更低的分辨率。
將理解到,雖然出于說明的目的在本文中已經(jīng)描述了特定實(shí)施例,但是在不脫離實(shí)施例的精神和范圍的情況下,可以做出各種修改。因此,本發(fā)明的保護(hù)范圍僅由所附權(quán)利要求和其等同方案限制。