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