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