專利名稱:用于測(cè)試圖形處理單元性能的流量產(chǎn)生器和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及流量產(chǎn)生器。更特定來說,本發(fā)明涉及用于測(cè)試圖形處理單元性能的流 量產(chǎn)生器。
背景技術(shù):
圖形處理單元(GPU)是用于個(gè)人計(jì)算機(jī)、工作站或游戲控制臺(tái)的專用圖形渲染裝 置。現(xiàn)代GPU在操縱和顯示計(jì)算機(jī)圖形方面是非常高效的,而且其高度并行的結(jié)構(gòu)使 得其針對(duì)一定范圍的復(fù)雜算法來說比通用CPU更高效。通常,GPU可安置在視頻卡頂 部,或者其可直接集成到母板中。
當(dāng)測(cè)試GPU的性能時(shí),布置一流量產(chǎn)生器和流量監(jiān)視器。流量產(chǎn)生器產(chǎn)生將由GPU 處理的數(shù)據(jù),且接著流量監(jiān)視器觀察流量,以便評(píng)估GPU的性能。由于現(xiàn)代GPU需要 處理具有不同格式的圖像數(shù)據(jù),因此對(duì)GPU的測(cè)試變得更復(fù)雜。
在高性能GPU的技術(shù)領(lǐng)域中,模擬發(fā)送一系列讀取和寫入請(qǐng)求的多個(gè)引擎("客戶 端")非常需要流量產(chǎn)生器。因此,必須在多個(gè)客戶端下測(cè)試GPU的存儲(chǔ)器系統(tǒng)的效率, 以查看設(shè)計(jì)是否可以滿足性能要求。舉例來說,HD視頻解碼流中的引擎包含SEC、 VLD、 MSPDEC、 MSPPP、顯示器和圖形引擎。然而,在設(shè)計(jì)階段的一開始,難以實(shí)施 如此多的真實(shí)客戶端。因此,需要一種能夠模仿多個(gè)不同引擎的流量產(chǎn)生器。 ,
發(fā)明內(nèi)容
本發(fā)明提供一種能夠模仿多個(gè)可改變引擎以測(cè)試圖形處理單元性能的通用流量產(chǎn) 生器。本發(fā)明還提供用于使用單個(gè)裝置模擬多個(gè)可改變引擎以測(cè)試圖形處理單元性能的 較簡(jiǎn)單方法。
根據(jù)本發(fā)明的一實(shí)施例,用于測(cè)試圖形處理單元性能的流量產(chǎn)生器包括至少一個(gè) 模擬引擎模塊,其用于產(chǎn)生至少一個(gè)讀取流和/或至少一個(gè)寫入流;以及輸出仲裁器, 其用于從包括所述至少一個(gè)讀取流和/或所述至少一個(gè)寫入流的群組中選擇將輸出的 流;其中所選擇的流經(jīng)布置以輸出到圖形處理單元的存儲(chǔ)器系統(tǒng)。
根據(jù)本發(fā)明的另一實(shí)施例,用于測(cè)試圖形處理單元性能的方法包括設(shè)置至少一個(gè) 模擬引擎模塊和輸出仲裁器的配置;由所述至少一個(gè)模擬引擎模塊產(chǎn)生至少一個(gè)讀取流 和/或至少一個(gè)寫入流;由所述輸出仲裁器從包括所述至少一個(gè)讀取流和/或所述至少一個(gè)寫入流的群組中選擇將輸出的流;將所選擇的流輸出到所述圖形處理單元的存儲(chǔ)器系 統(tǒng)。
本發(fā)明的用于測(cè)試圖形處理單元性能的流量產(chǎn)生器和方法能夠模擬許多可改變客 戶端的流量而不用逐個(gè)實(shí)際產(chǎn)生這些客戶端。通過修改由配置模塊控制的配置,本發(fā)明 的流量產(chǎn)生器變?yōu)橛糜谠诓煌h(huán)境下測(cè)試圖形處理單元性能的較靈活的工具。
為了使本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)更容易理解,下文詳細(xì)描述帶有圖式 的優(yōu)選實(shí)施例。
圖l展示本發(fā)明一優(yōu)選實(shí)施例的流量產(chǎn)生器100的框圖。 圖2展示劃分為256 ( 16x16)字節(jié)宏區(qū)塊的表面。
具體實(shí)施例方式
參看圖l,流量產(chǎn)生器100包含配置模塊12、多個(gè)模擬引擎模塊22、 24和26、讀 取緩沖器32、 36、 42和46、寫入緩沖器34、 38、 44和48、讀取流仲裁器52、寫入流 仲裁器54以及輸出仲裁器56。還如下揭示本發(fā)明中用于測(cè)試圖形處理單元性能的方法 的優(yōu)選實(shí)施例。模擬引擎模塊22、 24和26模擬多個(gè)引擎(或"客戶端"),其中每一引 擎產(chǎn)生讀取流和/或?qū)懭肓?。產(chǎn)生的讀取流分別被臨時(shí)推入讀取緩沖器32、 36和42中, 且所產(chǎn)生的寫入流分別被臨時(shí)推入寫入緩沖器34、 38和44中。所有讀取緩沖器32、 36和42均電連接到讀取流仲裁器52,讀取流仲裁器52以循環(huán)(round robin)方式或 隨機(jī)地每次選擇存儲(chǔ)在讀取緩沖器32、 36和42中的讀取流中的一者,并接著將選定的 讀取流輸出到讀取緩沖器46。當(dāng)采用循環(huán)方式時(shí),依次選擇存儲(chǔ)在不同緩沖器中的流。 舉例來說,如果讀取仲裁器52采用循環(huán)方式,那么其循序從讀取緩沖器32、讀取緩沖 器36、讀取緩沖器42中選擇和輸出讀取流,并接著再次回到讀取緩沖器32。如果讀取 仲裁器52采用隨機(jī)方式,那么無法預(yù)測(cè)選定的讀取流。類似地,所有寫入緩沖器34、 38和44均電連接到寫入流仲裁器54,寫入流仲裁器54以循環(huán)方式或隨機(jī)地每次選擇 存儲(chǔ)在寫入緩沖器34、 38和44中的寫入流中的一者,并接著將選定的寫入流輸出到寫 入緩沖器48。讀取仲裁器52和寫入仲裁器48所采用的選擇方式取決于配置模塊12所 設(shè)置的配置。從讀取仲裁器52輸出的讀取流臨時(shí)存儲(chǔ)在讀取緩沖器46中,且從寫入仲 裁器54輸出的寫入流臨時(shí)存儲(chǔ)在寫入緩沖器48中。輸出仲裁器56接著選擇讀取流和 寫入流中的一者,并將其輸出到待測(cè)試的圖形處理單元。以相同方式,輸出仲裁器56 所采用的選擇方式取決于配置模塊12所設(shè)置的配置。根據(jù)本發(fā)明的優(yōu)選實(shí)施例,配置模塊12能夠確定流量產(chǎn)生器的特征,例如所模擬 引擎的數(shù)目和類型。也就是說,所模擬引擎模塊的數(shù)目不限于本發(fā)明中的三個(gè)。
此外,配置模塊12能夠界定每一所產(chǎn)生流的特征,例如處理量和存取模式。因此, 流量產(chǎn)生器所模擬的引擎可具有不同的行為。舉例來說,配置模塊12可界定每一讀取 或?qū)懭胝?qǐng)求的地址和大小。如果確定了開始地址0x1000,那么配置模塊12可進(jìn)一步界 定存取模式,例如循序的或隨機(jī)的。關(guān)于循序模式,地址以相等間隔增加。舉例來說, 如果請(qǐng)求大小是32B,那么將存取的循序地址應(yīng)為0x1000、 0x1020、 0x1040、 0x1060...。 循序模式可用于模擬具有節(jié)曲面(pitch surface)的顯示器流量。對(duì)于隨機(jī)模式,在每 一表面的范圍內(nèi)隨機(jī)產(chǎn)生每一地址,例如,0x1300、 0x2200、 0xl800…。隨機(jī)模式可用 于模擬MSPDEC引擎中的運(yùn)動(dòng)補(bǔ)償流。對(duì)于某種其它流,可存在許多其它復(fù)雜的存取 模式。例如在視頻引擎中,將一種存取模式稱為"半循序的"。
如圖2所說明,將表面劃分為256 (16x16)字節(jié)宏區(qū)塊。對(duì)于具有N個(gè)宏區(qū)塊(圖 2中N=5)寬度的圖片,循序?qū)懭雲(yún)^(qū)塊0...N-1的第一個(gè)64字節(jié),接著循序?qū)懭雲(yún)^(qū)塊 0...N-1的第二個(gè)64字節(jié),以此類推。請(qǐng)注意,本發(fā)明的配置模塊12可在必要時(shí)采用 任何存取模式,以便模擬相關(guān)引擎。然而,由于存在許多種類的存取模式,因此在說明 書中將不描述每種存取模式。
在存取模式中,配置模塊12能夠界定每一個(gè)流的處理量,其將被確定何時(shí)發(fā)送請(qǐng) 求。以顯示器客戶端作為實(shí)例,對(duì)于最壞情況,每一行將具有2048個(gè)像素,每一像素 為4字節(jié),且監(jiān)視器應(yīng)每7.28微秒掃描一行。因此獲得以下處理量
7.28x1000
如果想要測(cè)試高處理量流量是否將超出我們的圖形處理單元能力之外,那么將增加 處理量。請(qǐng)注意,由于每一客戶端將由若干讀取或?qū)懭肓鹘M成,因此每一流在配置模塊 12中可能具有不同的存取模式和處理量參數(shù)。
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,配置模塊包括用于記錄數(shù)據(jù)流的上述特征和參數(shù)的節(jié)文 件(knobfile)。當(dāng)圖形處理單元的設(shè)計(jì)者希望測(cè)試圖形處理單元時(shí),設(shè)計(jì)者可通過編輯 節(jié)文件使用流量產(chǎn)生器來模擬不同種類的多個(gè)引擎,以便在預(yù)定環(huán)境下測(cè)試圖形處理單 元。如果設(shè)計(jì)者希望在另一環(huán)境(具有不同客戶端)下測(cè)試圖形處理單元,那么修改節(jié) 文件即可。節(jié)文件用于模擬復(fù)制引擎,例如從源表面到目的地表面復(fù)制數(shù)據(jù)的客戶端。節(jié)文件 含有以下針對(duì)讀取流的內(nèi)容
FermiPerfSim::COPYENGINE::readStreamNum 1 FermiPerfSim::COPYENGINE::readStreamName0 srcSurface FermiPerfSim::COPYENGINE::srcSurface::start—virt一address 0x10000 FermiPerfSim::COPYENGINE::srcSurface::surface—size—x 1600 FermiPerfSim::COPYENGINE::srcSurface::surface—size—y 1080 弁pitch, block, 16x16 MacroBlock
FermiPerfSim::COPYENGINE::srcSurface::surfaceJype 0 FermiPerfSim::COPYENGINE::srcSurface::burst_size0 32 弁throughput' MBytesPerSec
FermiPerfSim::COPYENGINE::srcSurface::throughput 200 弁access pattern, seq, ran, semi一seq…,seq for srcSurface FermiPerfSim::COPYENGINE::srcSurface::acc_pattem 0
在節(jié)文件中描述的以上內(nèi)容中,前兩行界定讀取流數(shù)目和讀取流名稱,接下來的五 行界定開始地址、表面大小和表面類型,且接下來的五行界定突發(fā)(burst)大小、處理 量和存取模式。以相同方式,用于復(fù)制引擎的寫入流可如下界定
FermiPerfSim::numTGs 1
FermiPerfSim::Hublmpl::clientNameO COPYENGINE FermiPerfSim::COPYENGINE::readStreamNum 1
# source surfscsrs
FermiPerfSim::COPYENGINE::readStreamName0 srcSurface FermiPerfSim::COPYENGINE::srcSurface::start_virt—address 0x10000 FermiPerfSim::COPYENGINE::srcSurface::surface—size一x 1600 FermiPerfSim::COPYENGINE::srcSurface::surface一size—y 1080#pitch, block, 16x16 MacroBlock
FermiPerfSim::COPYENGINE::srcSurface::surface—type 0FermiPerfSim::COP丫ENGINE::srcSurface::burst—sizeO 32射hroughput, MBytesPerSec
FermiPerfSim::COPYENGINE::srcSurface::throughput 200#access pattern, seq, ran, semi—seq…'seq for srcSurfaceFermiPerfSim::COPYENGINE::srcSurface::acc—pattern 0
在讀取節(jié)文件中描述的以上內(nèi)容之后,配置模塊12啟用流量產(chǎn)生器100以充當(dāng)復(fù)制引擎。在本發(fā)明的優(yōu)選實(shí)施例中,節(jié)文件是外部配置文件。因此,用戶可容易地修改節(jié)文件的內(nèi)容,以便使用流量產(chǎn)生器模擬不同的引擎。概括來說,為了使用流量產(chǎn)生器產(chǎn)生不同的引擎,用戶必須界定流量產(chǎn)生器具有多少引擎和多少流以及每一流特征為如何??赏ㄟ^分析客戶端的行為或來自先前產(chǎn)生碼片的結(jié)果來獲得對(duì)流量產(chǎn)生器的此界定。因此,流量產(chǎn)生器不僅僅模擬已具有的客戶端,還有那些在實(shí)施中的客戶端。當(dāng)用戶希望產(chǎn)生新客戶端時(shí),只是將相關(guān)內(nèi)容添加到描述此客戶端的流特征的節(jié)文件中。
如上所述,本發(fā)明的優(yōu)點(diǎn)是模擬許多客戶端的流量而不用逐個(gè)實(shí)際地產(chǎn)生這些客戶端。通過編輯節(jié)文件或存儲(chǔ)在配置模塊中的配置,本發(fā)明的流量產(chǎn)生器可模擬不同引擎,且因此變?yōu)橛糜跍y(cè)試圖形處理單元性能的較靈活的工具。
所屬領(lǐng)域的技術(shù)人員將了解,在不脫離本發(fā)明范圍或精神的情況下可對(duì)本發(fā)明的結(jié)構(gòu)做出各種修改和變化。鑒于上述內(nèi)容,希望本發(fā)明涵蓋對(duì)本發(fā)明的修改和變化,只要其處于所附權(quán)利要求書及其等效物的范圍內(nèi)。
權(quán)利要求
1.一種用于測(cè)試圖形處理單元的存儲(chǔ)器系統(tǒng)的性能的流量產(chǎn)生器,其包括至少一個(gè)模擬引擎模塊,其用于產(chǎn)生至少一個(gè)讀取流和/或至少一個(gè)寫入流;以及輸出仲裁器,其用于從所述至少一個(gè)讀取流和所述至少一個(gè)寫入流中選擇一流;其中將所選擇的流輸出到所述圖形處理單元。
2. 根據(jù)權(quán)利要求1所述的流量產(chǎn)生器,其進(jìn)一步包括至少一個(gè)第一讀取緩沖器,其電連接在所述至少一個(gè)模擬引擎模塊與所述讀取 流仲裁器之間,每一第一讀取緩沖器緩沖一個(gè)讀取流并將所述經(jīng)緩沖讀取流傳遞 到所述讀取流仲裁器。
3. 根據(jù)權(quán)利要求2所述的流量產(chǎn)生器,其進(jìn)一步包括至少一個(gè)第一寫入緩沖器,其電連接在所述至少一個(gè)模擬引擎模塊與所述寫入 流仲裁器之間,每一第一寫入緩沖器緩沖一寫入流并將所述經(jīng)緩沖寫入流傳遞到 所述寫入流仲裁器。
4. 根據(jù)權(quán)利要求3所述的流量產(chǎn)生器,其進(jìn)一步包括-讀取流仲裁器,其電連接在所述至少一個(gè)第一讀取緩沖器與所述輸出仲裁器之 間,用于從所述至少一個(gè)讀取流中選擇一讀取流并將所選擇的讀取流傳遞到所述 輸出仲裁器。
5. 根據(jù)權(quán)利要求4所述的流量產(chǎn)生器,其進(jìn)一步包括寫入流仲裁器,其電連接在所述至少一個(gè)第一寫入緩沖器與所述輸出仲裁器之 間,用于從所述至少一個(gè)寫入流中選擇一寫入流并將所選擇的寫入流傳遞到所述 輸出仲裁器。
6. 根據(jù)權(quán)利要求5所述的流量產(chǎn)生器,其進(jìn)一步包括第二讀取緩沖器,其電連接在所述讀取流仲裁器與所述輸出仲裁器之間,用于緩沖所述選定讀取流并將其傳遞到所述輸出仲裁器;以及第二寫入緩沖器,其電連接在所述寫入流仲裁器與所述輸出仲裁器之間,用于 緩沖所述選擇的寫入流并將其傳遞到所述輸出仲裁器。
7. 根據(jù)權(quán)利要求1所述的流量產(chǎn)生器,其進(jìn)一步包括配置模塊,其用于控制所述至少一個(gè)模擬引擎模塊的配置,并控制由所述模擬 引擎模塊產(chǎn)生的所述讀取流和/或?qū)懭肓鞯奶卣鳌?br>
8. 根據(jù)權(quán)利要求7所述的流量產(chǎn)生器,其中所述配置涉及每一模擬引擎模塊的數(shù)據(jù) 處理量、由每一模擬引擎模塊產(chǎn)生的讀取和/或?qū)懭肓鞯陌笮∫约按嫒∧J健?br>
9. 根據(jù)權(quán)利要求7所述的流量產(chǎn)生器,其中所述配置進(jìn)一步涉及所述輸出仲裁器、 所述讀取流仲裁器和所述寫入流仲裁器的選擇方式。
10. 根據(jù)權(quán)利要求7所述的流量產(chǎn)生器,其中所述配置模塊根據(jù)外部配置文件的內(nèi)容 來控制所述配置。
11. 一種用于測(cè)試圖形處理單元的性能的方法,其包括設(shè)置至少一個(gè)模擬引擎模塊和輸出仲裁器的配置;由所述至少一個(gè)模擬引擎模塊產(chǎn)生至少一個(gè)讀取流和/或至少一個(gè)寫入流; 由所述輸出仲裁器從包括所述至少一個(gè)讀取流和/或所述至少一個(gè)寫入流的群組 中選擇將輸出的流;將所選擇的流輸出到所述圖形處理單元。
12. 根據(jù)權(quán)利要求11所述的方法,其進(jìn)一步包括在產(chǎn)生每一讀取流之后,分別緩沖每一讀取流。
13. 根據(jù)權(quán)利要求12所述的方法,其進(jìn)一步包括在產(chǎn)生每一寫入流之后,至少一個(gè)第二寫入緩沖器分別緩沖每一寫入流。
14. 根據(jù)權(quán)利要求13所述的方法,其進(jìn)一步包括在緩沖所述至少一個(gè)讀取流之后,從所述至少一個(gè)讀取流中選擇一讀取流。
15. 根據(jù)權(quán)利要求14所述的方法,其進(jìn)一步包括在緩沖所述至少一個(gè)寫入流之后,從所述至少一個(gè)寫入流中選擇一寫入流。
16. 根據(jù)權(quán)利要求15所述的方法,其進(jìn)一步包括緩沖所選擇的讀取流并將其傳遞到所述輸出仲裁器。
17. 根據(jù)權(quán)利要求16所述的方法,其進(jìn)一步包括緩沖所選擇的寫入流并將其傳遞到所述輸出仲裁器。
18. 根據(jù)權(quán)利要求11所述的方法,其中布置所述至少一個(gè)模擬引擎模塊的所述配置以改變由所述至少一個(gè)模擬引擎模塊產(chǎn)生的所述讀取流和/或?qū)懭肓鞯奶卣鳌?br>
19. 根據(jù)權(quán)利要求18所述的方法,其中所述配置涉及每一模擬引擎模塊的數(shù)據(jù)處理量、由每一模擬引擎模塊產(chǎn)生的讀取或?qū)懭肓鞯陌笮∫约按嫒∧J健?br>
20. 根據(jù)權(quán)利要求18所述的方法,其中所述配置進(jìn)一步涉及選擇用于選擇所述讀取流 和/或?qū)懭肓鞯姆绞健?br>
全文摘要
本發(fā)明涉及一種流量產(chǎn)生器和一種用于測(cè)試圖形處理單元的存儲(chǔ)器系統(tǒng)的性能的方法。所述流量產(chǎn)生器包括至少一個(gè)模擬引擎模塊,其每一者用于產(chǎn)生至少一個(gè)讀取流和/或至少一個(gè)寫入流;以及輸出仲裁器,其用于從包括所述至少一個(gè)讀取流和/或所述至少一個(gè)寫入流的群組中選擇將輸出的流;其中所選擇的流經(jīng)布置以輸出到圖形處理單元的所述存儲(chǔ)器系統(tǒng)。
文檔編號(hào)G06F11/267GK101676878SQ20081021188
公開日2010年3月24日 申請(qǐng)日期2008年9月18日 優(yōu)先權(quán)日2008年9月18日
發(fā)明者克雷格·M·維騰布林克, 卡羅爾·梅內(nèi)塞斯, 朱春雷, 柯·余, 鈺 白, 蔣正偉 申請(qǐng)人:輝達(dá)公司