吳蓬勃
摘要:本文針對(duì)GPU顯示中的幀率、三角形生成數(shù)量和像素填充率、顯存帶寬關(guān)鍵技術(shù)指標(biāo),采用非常成熟的OpenGL圖形開(kāi)發(fā)工具,進(jìn)行測(cè)試方法研究,該方法具有通用的特點(diǎn),能夠?yàn)镚PU的選型提供測(cè)試指標(biāo)支撐。
關(guān)鍵詞:像素;GPU
中圖分類(lèi)號(hào): TP18? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)08-0218-03
GPU(Graphics processing unit) 又稱(chēng)圖形處理器, 作為處理圖形的運(yùn)算器,主要面向二維、三維圖形的幾何變換、渲染、紋理映射、視頻流編碼與解碼等所涉及的計(jì)算,用于處理和繪制各種圖畫(huà)。具有非常成熟的OpenGL 和DirectX. GPU編程庫(kù)接口,應(yīng)用于例如視頻編解碼、天氣預(yù)報(bào)和通用計(jì)算等很多領(lǐng)域。相關(guān)的顯示性能指標(biāo)主要包括有:FPS即幀率、三角形生成數(shù)量和像素填充率。本文介紹了一種基于OpenGL的開(kāi)放式圖形庫(kù)進(jìn)行轉(zhuǎn)動(dòng)的3D齒輪和矩形條繪制進(jìn)行幀速率測(cè)試、三角形生成數(shù)量和像素填充率測(cè)試的方法,對(duì)于GPU的性能測(cè)評(píng)、推薦使用具有很重要的意義。
1 相關(guān)顯示性能指標(biāo)
1.1 幀率
幀率即FPS:指的是每秒鐘傳輸?shù)膸瑪?shù)。代表圖形處理器每秒鐘能夠更新的幀數(shù),是GPU重要的性能指標(biāo)之一,間接反映GPU的主頻,高的幀率可以得到更流暢、更逼真的動(dòng)畫(huà)。
1.2 三角形生成率
三角形生成率即每秒鐘可以生成的三角形數(shù)量,由于3D圖像的繪制是通過(guò)三角形建立3D模型,然后再著色處理的,其組成的三角形數(shù)量直接影響到重現(xiàn)后物體外觀的逼真性。GPU性能優(yōu)異的主要指標(biāo)之一是“每秒鐘可以生成個(gè)三角形數(shù)量的個(gè)數(shù)”。每秒生成三角形的數(shù)量越多,越能在保障顯示幀率的前提下為物體模型建立更多的三角形,3D模型的分辨率越高。
1.3 顯存帶寬
顯存帶寬是顯卡圖形顯示性能和速度的重要指標(biāo)之一,高顯存帶寬會(huì)帶來(lái)高分辨率的顯示、高色彩逼真度和更流暢的3D圖形畫(huà)面。在實(shí)際情況下,目前顯示芯片的性能高,其處理能力很強(qiáng),只有大帶寬才能保障足夠的數(shù)據(jù)輸入和輸出。
顯存帶寬跟顯卡的顯存速度和顯存架構(gòu)有關(guān),是目前決定顯卡圖形顯示性能和速度的重要因素之一,在工作頻率一定的情況下,顯存位寬的大小決定了顯存帶寬的大小。
2 總體測(cè)試思路介紹
OpenGL是美國(guó)SGL公司為其圖形工作站開(kāi)發(fā)的、獨(dú)立于窗口操作系統(tǒng)和硬件環(huán)境的圖形開(kāi)發(fā)環(huán)境。是一個(gè)便于調(diào)用、功能強(qiáng)大的底層3D圖形函數(shù)庫(kù)。適用于從普通PC機(jī)到大型圖形工作站等各種計(jì)算機(jī),已成為占據(jù)主導(dǎo)地位的跨平臺(tái)專(zhuān)業(yè)3D圖形應(yīng)用開(kāi)發(fā)包,成為行業(yè)標(biāo)準(zhǔn)。
與GPU幀速顯示有關(guān)的因素有顯存帶寬、操作系統(tǒng)等,本方法是只是針對(duì)同一種配置下的應(yīng)用進(jìn)行測(cè)試評(píng)估。
采用基于OpenGL的開(kāi)放式圖形庫(kù)進(jìn)行單位三角形繪制,利用函數(shù)繪制一個(gè)長(zhǎng)矩形條,矩形條按每次22.5°(360/16)旋轉(zhuǎn);同時(shí)用單位三角形去填充長(zhǎng)矩形條,求得長(zhǎng)矩形條旋轉(zhuǎn)一周后(此時(shí)三角形也填充完畢)所需時(shí)間,從而獲得單位時(shí)間填充的三角形生成數(shù)量。
通過(guò)OpenGL繪制標(biāo)準(zhǔn)圖形,計(jì)算一定時(shí)間內(nèi)繪制標(biāo)準(zhǔn)圖形的次數(shù),計(jì)算每秒鐘繪制的次數(shù)即為幀率,多次計(jì)算求得算術(shù)平均值作為最終結(jié)果。通過(guò)計(jì)算單位時(shí)間內(nèi)繪制的標(biāo)準(zhǔn)三角形的數(shù)量作為三角形生成率。同時(shí)通過(guò)測(cè)試單位時(shí)間內(nèi)GPU與顯存之間的數(shù)據(jù)傳輸速率,即為顯存帶寬。
最后通過(guò)對(duì)測(cè)試獲得所得的幀率、三角形生成率、顯存帶寬分?jǐn)?shù),依據(jù)應(yīng)用需求側(cè)重點(diǎn)確定相應(yīng)的加權(quán)系數(shù),進(jìn)行相應(yīng)加權(quán)求和獲得最終的GPU性能得分,進(jìn)行綜合測(cè)評(píng)。
3 測(cè)試方法
3.1齒輪的繪制
利用opengl的函數(shù)通過(guò)輸入齒輪的Inner_radius(內(nèi)部半徑大?。uter_radius(外部半徑大?。idth(寬度)、teeth(齒輪大小)、deepth(齒輪高度)分別畫(huà)該齒輪的正面,畫(huà)齒的前側(cè),畫(huà)齒的背面,畫(huà)齒的外側(cè),最后繪制齒的內(nèi)部結(jié)構(gòu),從而完成整個(gè)齒輪的繪制。
初始化此輪的內(nèi)外半徑寬度、齒數(shù)和齒輪的深度,并初始化齒輪的陰影模式和法線,完成各個(gè)面的繪制。檢查開(kāi)始畫(huà)的齒數(shù)、通過(guò)opengl庫(kù)函數(shù)循環(huán)的畫(huà)出齒輪。
3.2幀速率測(cè)試
圖形處理單元作為處理圖形的運(yùn)算器主要作用在于處理和繪制各種圖畫(huà)。而幀率作為測(cè)試GPU性能的一個(gè)重要指標(biāo),代表圖形處理器處理場(chǎng)時(shí)每秒鐘能夠更新的次數(shù)。
本策略通過(guò)繪制轉(zhuǎn)動(dòng)的齒輪,每次繪制齒輪算一幀,計(jì)算5S時(shí)間內(nèi)繪制的幀數(shù),從而求得幀率,通過(guò)多次計(jì)算求得算術(shù)平均值作為最終結(jié)果。通過(guò)不斷的調(diào)用opengl函數(shù)來(lái)畫(huà)齒輪,并且利用計(jì)時(shí)器每五秒計(jì)算一次幀率。
當(dāng)然,與GPU幀速顯示有關(guān)的因素還有顯存帶寬、操作系統(tǒng)等,本方法是只是針對(duì)同一種配置下的應(yīng)用進(jìn)行測(cè)試評(píng)估。
3.3 三角形生成數(shù)量
三角形生成數(shù)量測(cè)試GPU每秒鐘可生成多少萬(wàn)個(gè)三角形,或每秒可處理多少三角形。
利用函數(shù)繪制一個(gè)長(zhǎng)矩形條,矩形條按每次22.5°(360/16)旋轉(zhuǎn);同時(shí)用單位三角形去填充長(zhǎng)矩形條,求得長(zhǎng)矩形條旋轉(zhuǎn)一周后(此時(shí)三角形也填充完畢)所需時(shí)間,從而獲得單位時(shí)間填充的三角形生成數(shù)量,并根據(jù)三角形的大小進(jìn)行像素填充率計(jì)算測(cè)試,算法流程圖如圖4。
3.4 顯存帶寬
顯存帶寬指GPU與顯存間數(shù)據(jù)傳輸?shù)乃俾?,以MB/sec為單位。通過(guò)GPU與顯卡緩存之間的讀寫(xiě),獲取讀寫(xiě)速度。
顯存帶寬與顯卡的顯存位寬、顯存架構(gòu)和顯存速度有關(guān),顯存位寬是指一個(gè)時(shí)鐘周期內(nèi)傳送數(shù)據(jù)顯示數(shù)據(jù)的位數(shù),位數(shù)越多,傳輸效率就越高。在工作頻率一定時(shí),顯存位寬的大小與顯存帶寬的大小有直接的關(guān)系。足夠大的顯存帶寬才能帶來(lái)更高分辨率、更逼真(32位)和更流暢(高刷新速度)的3D畫(huà)面。在實(shí)際情況下,如果一塊圖形芯片處理能力強(qiáng)大, 但由于顯存帶寬不高時(shí), 將會(huì)極大地影響其顯示性能, 顯存將限制其無(wú)法達(dá)到預(yù)定的處理能力。目前顯示類(lèi)芯片的顯示性能很高,處理能力也比較強(qiáng),在此基礎(chǔ)上,只有獲得較大的顯存帶寬才能保障其有足夠的數(shù)據(jù)輸入和輸出。隨著多媒體、3D顯示渲染等對(duì)硬件技術(shù)指標(biāo)越來(lái)越高的要求,相對(duì)于GPU,較低的顯存帶寬已經(jīng)成為制約顯卡性能的瓶頸。
該測(cè)試函數(shù)通過(guò)進(jìn)行顯卡地址數(shù)據(jù)的讀、寫(xiě),根據(jù)讀取的數(shù)據(jù)來(lái)計(jì)算單位時(shí)間內(nèi)顯存的讀寫(xiě)帶寬。其讀寫(xiě)顯存帶寬測(cè)試流程方法分別如圖6所示。
4 結(jié)論
該方法具有簡(jiǎn)單、通用、有效易行的特點(diǎn),當(dāng)然,與GPU幀速顯示有關(guān)的因素還有顯存帶寬、操作系統(tǒng)等,本方法是只是針對(duì)同一種配置下的應(yīng)用進(jìn)行測(cè)試評(píng)估,能夠?yàn)镚PU的選型提供測(cè)試指標(biāo)支撐,實(shí)用價(jià)值高。
參考文獻(xiàn):
[1] 符鶴,謝永芳.基于國(guó)產(chǎn)化圖形芯片JM5400的座艙顯示系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程與科學(xué),2016,38(10):2083-2090.
[2] 鄭顧平,李海涵.基于GPU的三維體繪制研究[J].電腦迷,2016(9):103.
[3] 丁科,譚營(yíng).GPU通用計(jì)算及其在計(jì)算智能領(lǐng)域的應(yīng)用[J].智能系統(tǒng)學(xué)報(bào),2015,10(1):1-11.
[4] 張春燕,譚建龍,劉燕兵,等.基于GPU的精確串匹配算法綜述[J].計(jì)算機(jī)應(yīng)用研究,2016,33(7):1921-1928,1935.
【通聯(lián)編輯:唐一東】