0
本文作者: 任然 | 2018-06-04 13:19 |
距離Arm公布代號Bifrost的次世代GPU架構并推出Mali G71核心已經(jīng)兩年了, 然而作為先鋒的Mali G71在麒麟960和Exynos 8895中的表現(xiàn)都不盡人意,其功耗之高明顯超出了預期。之后的Mali G72是一款更為合理的產(chǎn)品,它更接近Bifrost架構所承諾的能效目標,在麒麟970和Exynos 9810上實現(xiàn)了100%的能效提升。
今天,Arm公布了Mali G72的后續(xù)產(chǎn)品,也是Bifrost系列的最新產(chǎn)品:Mali G76,目標非常明確:提高單位功耗性能和單位面積性能,并盡可能地趕超競爭對手。Arm承諾,在臺積電7nm工藝的支撐下,使用Mali G76的下一代SoC性能可提高50%。
橫向來看,Mali G76重點改善了三個關鍵指標,首先是性能密度提高了30%,這意味著GPU面積不變,性能可提高30%;或者在性能相同時,可縮小約24%的GPU面積。其次,Mali G76的微架構效率提升了30%,這要歸功于架構內(nèi)功能塊的整合。最后,Arm為Mali G76添加了新的專用8位點積指令,使其機器學習推理性能提高了2.7倍。
對于Arm的GPU設計來說,Bifrost已經(jīng)是一個現(xiàn)代的圖形架構,3D圖形技術在過去的兩年中也沒有發(fā)生重大變革。Mali G76在圖形特性方面和Mali G72完全一樣,變化集中在圖形計算過程中。
與Mali G72相比,Mali G76在架構上的優(yōu)化幅度更大。雖然它仍是Bifrost架構,但GPU的工作方式發(fā)生了很大變化。無論在移動GPU還是桌面GPU領域,Mali G76都是單個圖形體系版本迭代中變化最大的之一。
前代Mali G71/G72的每個EU模塊中包含4組FMA和ADD/SF流水線并組成一個線程粒度,Arm將這種模塊結構稱為“Quad”。隨著技術和應用的發(fā)展以及移動GPU在VR和高畫質游戲領域的壓力不斷增加,Quad結構的運算效率已逐漸無法滿足需求。
根據(jù)Arm的數(shù)據(jù),Mali G76為了進一步提高架構的性能和面積效率,將GPU內(nèi)的基礎計算模塊的規(guī)模增加了一倍,單個EU內(nèi)擁有8組FMA和ADD/SF流水線。全新EU結構的面積并沒有大幅增加,相比前代只提升了22%,但性能卻得到了顯著提升。
這是一個非常有趣的變化,通常來說線程粒度的尺寸通常代表著硬件架構的典型特性。PC GPU的線程粒度已經(jīng)有許多年沒有變動過了,NVIDIA自2006年至今一直保持著32寬度,AMD則從2011年至今一直使用64寬度。
此前Bifrost架構所用的Quad結構,相比競爭對手架構的線程粒度(16~32寬度)要小很多。通常來講,線程粒度反映了架構在資源/面積密度和性能之間的平衡點,較大的線程粒度可節(jié)省控制邏輯單元數(shù)量(單個32寬度線程粒度只需1個控制邏輯單元,而8個4寬度線程粒度需要8個控制邏輯單元)。
但線程粒度越大,控制單元填充它就越困難。Arm的GPU哲學總體上注重的是盡量避免執(zhí)行停滯,通過使用更小的線程粒度降低線程發(fā)散的可能性。分割線程雖然并不難,但也會造成性能損失。
Arm在推出Bifrost架構時表示,他們采用了4寬度線程粒度,以減少因線程發(fā)散所造成的ALU(算術邏輯單元)閑置。這從理論上看是一種很好的策略,如果運算中有大量分支代碼,那么因線程發(fā)散而閑置的ALU就沒有了任何價值。
然而對于一個很小的線程粒度來說,控制邏輯單元與ALU的比率太高了,浪費了大量硬件規(guī)模。Mali G76換用8寬度線程粒度后,降低了控制邏輯單元與ALU的比率,在ALU吞吐量翻倍的情況下,EU模塊的規(guī)模只比之前4寬度線程粒度時增加了28%。
雖然Arm并沒有做出更明確的解釋,但雷鋒網(wǎng)認為此次改變其實反映出Arm此前4寬度線程粒度的設計有些一廂情愿了,實際游戲中幾乎用不到這么小的尺寸。更致密的Quad結構也有助于擴充架構規(guī)模,Arm可以在單位面積上塞入更多ALU以提升性能。
與此同時,為了匹配翻倍的Quad尺寸,Arm將相應的緩存和通道也增加了一倍。雖然Arm沒有正式披露Quad的寄存器堆棧大小,但他們已經(jīng)證實Mali G76的寄存器堆棧與Mali G72一樣,每通道有64個寄存器,因而寄存器堆棧的壓力并沒有變化。
在像素和紋理方面,Mali G76也使用了雙單元方案,每周期可以處理兩個像素或兩個紋理,ALU與像素和紋理單元的比例與之前保持一致。
在相同的時鐘速度下,Mali G76的浮點運算、紋理和像素吞吐量都增加了一倍,實際性能的提升幅度也應基本相仿。在某種意義上,Arm是將兩個Mali G72核心融合成了一個Mali G76核心,但Mali G76達到Mali G72翻倍的性能只需132%的芯片面積,理論上單位面積性能提升了50%。
雖然Arm大幅強化了Bifrost架構的圖形渲染性能,但這不是Mali G76核心的唯一改變,機器學習性能的提升也是此次的重頭戲。
Arm為Mali G76的ALU強化了int8格式的支持,這一數(shù)據(jù)格式是處理神經(jīng)網(wǎng)絡的關鍵操作,在機器學習推理非常重要,盡管8位整數(shù)的精度有限,但在很多情況下仍然足以進行基本推理。
雖然此前Mali G71/G72也可通過打包4個int8數(shù)據(jù)的方法進行計算,但Mali G76是第一個原生支持單周期處理int8的Mali核心。根據(jù)工作負載和機器學習框架的不同,Mali G76的機器學習性能相比Mali G71/G72提升了約2.7倍。
同時Arm研究發(fā)現(xiàn),影響GPU性能的另一個潛在瓶頸是回寫機制。如果GPU在一個多邊形回寫過程中停滯,則很可能會阻塞GPU的其他部分。Arm將Mali G76從有序回寫機制轉變?yōu)闊o序回寫機制,允許通過繞過那些回寫延遲來更靈活地回寫多邊形。
此外Arm還優(yōu)化了Mali G76塊緩沖,在某些情況下色彩緩沖被耗盡時,可臨時溢出到深度緩沖中。這樣可以減少對主內(nèi)存進行訪問的次數(shù),以盡可能保持GPU核心的本地流量。Mali G76的線程本地存儲機制也相應的針對寄存器溢出處理進行了優(yōu)化,GPU會將溢出的數(shù)據(jù)塊分組在一起以利于將來獲取。
Arm的GPU核心設計一向都是組團群P的思路,通過堆砌核心數(shù)量來抗衡高通Adreno的大核心無敵策略。
此前Mali G71/G72最多可支持堆砌32核心,但實際上沒有任何一家SoC廠商選擇過MP32的最大配置選項,最高也不過是三星Exynos 8895的Mali G71 MP20,其次是Exynos 9810的Mali G72 MP18,而華為的麒麟970使用了Mali G72 MP12,麒麟960則只有Mali G71 MP8。
出現(xiàn)這種現(xiàn)象的原因恰恰是Mali G71/G72的單位面積性能太差了。以Exynos 9810的18核Mali G72為例,其GPU總面積為24.53 mm2,是高通Adreno 630(10.69 mm2)的2.3倍、蘋果A11 GPU(15.28 mm2)的1.6倍,而性能卻還不如Adreno 630和蘋果A11 GPU。更遑論Exynos 8895上面積更大(32 mm2)性能更低的Mali G71 MP20。
三星Exynos 9810核心透視圖
與三星的狂堆核心數(shù)相比,麒麟970和960則只使用了中等數(shù)量的核心,然后通過拉高核心頻率來榨取性能。然而雷鋒網(wǎng)在上篇分析Cortex A76的文章中提到過,每種核心架構在某一工藝下,都有一個能耗比最佳的頻率區(qū)間,越過這個區(qū)間后,繼續(xù)拉高頻需要付出極大的功耗代價。
三星Exynos 9810和8895雖然GPU面積很大,但由于頻率只有560MHz左右,因此功耗表現(xiàn)尚可。而麒麟970的Mali G72 MP12為746MHz,功耗上升非常明顯,能耗比僅略高于使用Mali G71的Exynos 8895。麒麟960的Mali G71 MP8頻率甚至高達1037MHz,暴增的功耗使其能耗比還不如老舊Exynos 7420上的Mali T760 MP8。
考慮到實際使用中的情況,以及Mali G76核心規(guī)模的擴充,Arm決定將Mali G76的最大核心數(shù)量下調(diào)至20核心。通過將功能模塊和執(zhí)行引擎整合到更少的“內(nèi)核”中來提高內(nèi)核的性能密度,可顯著改善GPU的單位面積性能。據(jù)估計,Mali G76在曼哈頓3.1測試中,每mm2性能提升了39%,
Arm表示,Mali G76 MP12在7nm工藝下,相比Mali G72 MP18將會有50%的性能提升,功耗則保持一致。而相比驍龍845的Adreno 630,Mali G76 MP12在擁有12.8%性能優(yōu)勢的同時,功耗下降了22.8%。(注:Mali G76 MP12頻率不明)
總的來說,Mali G76的進步非常明顯——單位面積性能提高了30%,且功耗表現(xiàn)也有很大改善。然而雷鋒網(wǎng)認為,盡管Mali G76將大大提高Arm公版GPU的競爭力,但依然不足以借此一役趕超競爭對手。
在微架構優(yōu)化方面,Arm的確在整合核心和加強核心方面做出了正確的選擇。Arm公版GPU的多核心策略是一把雙刃劍,它雖然允許廠商根據(jù)自身需求配置核心數(shù)量,但多核心也會導致不可避免的性能和面積損耗。Arm雖然預測了Mali G76 MP12的表現(xiàn),但與高通Adreno 630和蘋果A11的GPU相比,12核依然太多了。
想想Mali G72 MP18與Adreno 630的對比,即便Mali G76的每平方毫米性能提升了39%,依然無法抵消高達2.3:1的面積比。用7nm的Mali G76 MP12打贏10nm的Adreno 630并不能說明什么,如果二者同為7nm工藝,不出意外Mali G76的能耗和面積依然會有明顯劣勢。
目前,雷鋒網(wǎng)非常關注Mali G76在實際芯片中能有怎樣的表現(xiàn),同時希望Arm在未來能將每個EU的計算資源再增加一倍,這很可能將再次帶來巨大的改進,進一步縮小與競爭對手的差距。
via:Anandtech
相關文章:
淺析ARM全新Cortex A76架構:2.4GHz便可干掉驍龍845
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉載。詳情見轉載須知。