● shader靈活度測試:矩陣乘法
矩陣乘法是線性代數(shù)的基本構成之一,它是各種通用計算以及shader處理過程中非常常見的數(shù)學操作方式,矩陣乘法的過程可以將許多非常復雜的模型轉換成相對簡單的表現(xiàn)形式,因此被廣泛應用在了光柵化(坐標變換)、光照(亮度直方操作)、陰影邊緣平滑(針對像素塊的切比雪夫不等式群)等幾乎所有圖形處理過程中�?梢哉f只要進行圖形處理過程,GPU就必定會進行大量的矩陣乘法操作。
矩陣乘法可以被解離成大量的存在一階或者多階弱關聯(lián)度的行列式運算,并行化的處理這些行列式,同時為操作過程提供合理的緩沖空間來釋放臨時結果勢必會極大地加快矩陣乘法操作的效率,進而加快整個圖形過程的進度。因此,對于矩陣乘法效率的測試,不僅可以讓我們獲得構架并行度以及緩沖資源情況的信息,更能在趨勢上反映GPU執(zhí)行shader尤其是靈活shader的執(zhí)行效率。所以,無論是之前已經進行過的HD7970/7950效能測試還是本次的GCN體系對比測試,我們都將矩陣乘法測試作為構架延展測試的第一個項目,通過它將Tahiti以及Pitcairn構架的ALU團簇部分剝離出來進行專門的性能測試。
矩陣乘法需要構架擁有良好的線程仲裁分配機制以及充足的緩沖體系,而這正是Tahiti構架與Pitcairn,甚至是Tahiti構架內部最核心的差異。Tahiti與Pitcairn同樣擁有2組并行的ACE引擎,同樣的2組ACE引擎在HD7970上需要應對32組CU共計2048個Vector ALU的需求,HD7950的運算單元規(guī)模比HD7970縮減了12.5%,所以同樣的2組ACE引擎在一級線程隊列仲裁及管理壓力方面也要低于HD7970。HD7870及HD7850的ACE引擎與HD7900并無區(qū)別,但同樣的2組ACE引擎在Pitcairn中只需要管理20/16組CU,合計1280/1024個Vector ALU。不難看出,HD7800的CU可以輕松的獲得比HD7900更加充盈的線程塊供給,這對于提升單元復用率有著極大的貢獻。
測試結果支撐了我們的分析,盡管Pitcairn的運算規(guī)模只有Tahiti的62.5%,但HD7800卻取得了超越HD7900的矩陣乘法性能,同時并完全沒有表現(xiàn)出HD7900資源匱乏從而重度依賴驅動優(yōu)化所導致的矩陣操作性能起伏問題。而在Tahiti構架內部,HD7950亦表現(xiàn)出了優(yōu)于HD7970的性能增長趨勢。