吳蓬勃



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