張平
對于像ARM這樣能影響整個(gè)行業(yè)發(fā)展方向的上游企業(yè),其一年一度的技術(shù)更新《微型計(jì)算機(jī)》都會(huì)持續(xù)關(guān)注,并進(jìn)行詳細(xì)的報(bào)道。在上一期,我們?yōu)樽x者帶來了CPU端Cortex-A78和Cortex-X1架構(gòu)的詳細(xì)介紹。在本期,讓我們將視線轉(zhuǎn)向GPU和AI計(jì)算,來看看ARMMali-G78和Ethos-N78這兩個(gè)全新核心有哪些新進(jìn)化。
ARMMali-G78:基于Valhall架構(gòu)的改進(jìn)
去年MC曾經(jīng)介紹過ARM當(dāng)時(shí)最新的Mali-G77GPU以及其使用的、全新研發(fā)的Valhall架構(gòu)。這個(gè)新架構(gòu)有著ARM近幾年在GPU設(shè)計(jì)上最大的改進(jìn),它改善了之前ARM在移動(dòng)GPU架構(gòu)上的缺陷,整體設(shè)計(jì)更接近桌面處理器產(chǎn)品,而且它能夠更好地適應(yīng)如今移動(dòng)設(shè)備日益增長的工作負(fù)載。本刊之前的文章曾詳細(xì)介紹過Valhall架構(gòu)的內(nèi)容。簡單來說,Valhall架構(gòu)的變化主要有新的ISA和計(jì)算核心設(shè)計(jì),其中包括采用了16寬度的波前陣列,在指令調(diào)度和編譯性能上進(jìn)行了改進(jìn),加強(qiáng)了紋理性能和幾何性能的新ISA,新的緩存設(shè)計(jì),新的執(zhí)行核心尤其是FMA設(shè)計(jì)等。性能上,Valhall在可比條件下相比前代產(chǎn)品Mali-G76,其能效比提升30%,面積密度提升30%,機(jī)器學(xué)習(xí)性能提升60%。綜合性能增加40%。
在可擴(kuò)展性方面,ARM宣稱Valhall架構(gòu)最大可以擴(kuò)展至32核心,但是最終我們看到Mali-G77最多只能擴(kuò)展至16核心。在之后面世的終端處理器產(chǎn)品上,三星在Exynos990中采用了MP11的方案,聯(lián)發(fā)科天璣1000則采用的是MP9的方案。鑒于此,ARM在Mali-G78上進(jìn)一步擴(kuò)充核心數(shù)量最大可配置24核心,也就是MP24。當(dāng)然,更多的核心雖然對性能提升有幫助,但是依舊要考慮面積、成本、功耗等問題,廠商也不一定會(huì)在終端產(chǎn)品上使用這么多的GPU核心。但是在性能提升的硬指標(biāo)上,ARM計(jì)劃將Mali-G78的性能在Mali-G77的基礎(chǔ)上提高25%,其中包括對Valhall架構(gòu)和工藝節(jié)點(diǎn)進(jìn)一步改進(jìn)。
一般來說,這樣的性能增長幅度對一個(gè)全新IP來說是合乎常理的,但其數(shù)據(jù)往往強(qiáng)烈依賴于制程工藝的改進(jìn),并且隨著工藝提升,頻率、晶體管密度等關(guān)鍵數(shù)據(jù)都會(huì)有比較明顯的改善,因此廠商在宣傳中往往會(huì)跳過工藝不談,只強(qiáng)調(diào)效能。但是在這次的性能提升中,ARM直接給出了在相同工藝下,Mali-G78相比Mali-G77在性能、能耗比等方面的變化情況,其中包括性能密度提升15%、能耗比提升10%以及機(jī)器學(xué)習(xí)能力提升15%。這一成績對于一個(gè)幾乎沒有大幅度改進(jìn)的架構(gòu)來說,在性能、能耗比等方面的提升是非常令人驚訝的。這樣一來,我們就多了一些好奇,究竟ARM采用了怎樣的“魔法”,使得Mali-G78能夠在工藝不變的情況下,在各個(gè)方面都能帶來如此幅度的提升呢?
Mali-G78的“魔法之變”
對本文的讀者來說,如果你沒有讀過之前本刊介紹Valhall架構(gòu)的文章,那么我們建議大家先回頭去閱讀一下那篇文章,這樣有助于你更好地理解Mali-G78在設(shè)計(jì)上的變革之處。
在Mali-G78上,最顯而易見的變化在于ARM將它的GPU規(guī)模擴(kuò)展到了24核心。在最近的幾代Mali架構(gòu)中,ARM一直在努力擴(kuò)大GPU中所包含的核心數(shù)量,從而得到具備更大規(guī)模以及擁有更高性能的產(chǎn)品。另外,ARM也在試圖為GPU內(nèi)核整合更大的功能區(qū)塊,以實(shí)現(xiàn)核心性能的演進(jìn),而不是僅僅簡單地增加更多的內(nèi)核。
在之前發(fā)布Mali-G77的時(shí)候,ARM增大了Mali-G77的內(nèi)核,其功能幾乎等于2個(gè)Mali-G76內(nèi)核。隨之而來的就是諸如三星Exynos990和聯(lián)發(fā)科天璣1000這樣分別擁有11個(gè)GPU和9個(gè)GPU內(nèi)核的處理器產(chǎn)品。和過去類似定位的SoC相比,它們的數(shù)量有所減少。但是和其他移動(dòng)GPU微架構(gòu)相比,比如高通目前使用的2個(gè)核心的Adreno或者蘋果使用4個(gè)核心的GPU設(shè)計(jì),ARM的相關(guān)GPU核心依舊偏小。較小的核心更為靈活,用戶可以自行選擇擴(kuò)展的規(guī)模。但是隨之而來的問題就是,由于每個(gè)小核心都擁有完備的功能,因此重復(fù)功能較多,大量的晶體管都使用在了重復(fù)功能上。相對而言,相比較大的內(nèi)核,較小核心的功率效率較低。
因此,目前看起來行業(yè)內(nèi)的趨勢是使用較大的核心和“較小”的擴(kuò)展。但是在Mali-G78上,它的擴(kuò)展能力變得更強(qiáng)了,它可以擴(kuò)展至24個(gè)內(nèi)核的設(shè)計(jì)似乎是在倒退。實(shí)際上有一種合理的憂慮是Mali-G77或者Valhall架構(gòu)所代表的核心依舊太小了,因此ARM必須進(jìn)一步增加核心數(shù)量來提高性能。
在配置方面,ARM放棄了4MBL2緩存作為可選項(xiàng)。盡管ARM宣稱這項(xiàng)功能依舊會(huì)得到保留,但是從未有廠商選擇在自家產(chǎn)品上應(yīng)用該方案。迄今為止,所有應(yīng)用MaliGPU的SoC都選擇的是2MBL2緩存。
在執(zhí)行核心方面,Mali-G78和Mali-G77基本相同。Mali-G77的特點(diǎn)在于將多個(gè)執(zhí)行引擎合并為一個(gè)更寬的單元,正如前文所提到的,增加了SIMD執(zhí)行通道寬度和波前陣列寬度。從它整體的渲染核心架構(gòu)圖可以看到,Mali-G78和之前的產(chǎn)品相比并沒有太大變化,其中比較顯著的改動(dòng)在于單執(zhí)行引擎和4倍的紋理單元,在每個(gè)時(shí)鐘周期中,紋理過濾功能最多支持4個(gè)像素,渲染輸出功能支持2個(gè)像素。
Mali-G78的最大變化來自于全局結(jié)構(gòu),現(xiàn)在新的架構(gòu)下GPU從之前的全局頻域更改成2級體系結(jié)構(gòu),包括上級的共享GPU塊之間頻率和下層渲染核心之間頻域的解耦。換句話來說,ARM在Mali-G78上引入了異步時(shí)鐘域,允許渲染核心和GPU其他部分以不同的頻率運(yùn)行。值得一提的是,Mali-G78的異步時(shí)鐘域是雙向的,也就是渲染核心頻率相比GPU其他部分的頻率可以更高或者更低,這樣可以在必要的時(shí)候提高性能或者節(jié)約功耗,這也是ARM宣稱Mali-G78能夠帶來大幅度性能和能耗比方面改善的核心原因。
從技術(shù)的角度來看,進(jìn)行異步時(shí)鐘域更改主要是為了解決在不同工作負(fù)載下,幾何吞吐量和內(nèi)存吞吐量之間的平衡問題。ARM的GPU架構(gòu)一直以來都存在一個(gè)“痼疾”,那就是要讓GPU在屏幕上顯示更多的多邊形的話,當(dāng)前架構(gòu)除了提高工作頻率之外就沒有其他更好的方法了?,F(xiàn)有架構(gòu)的幾何引擎和圖塊(tiler)引擎依舊只能在每個(gè)時(shí)鐘周期處理一個(gè)三角形,并且該指標(biāo)在GPU中被設(shè)定為固定且不可擴(kuò)展。
近年來,其他廠商的移動(dòng)GPU架構(gòu)出現(xiàn)了一些新變化,諸如《堡壘之夜》和《PUBG》這樣從桌面游戲衍生而來的移動(dòng)游戲已經(jīng)在智能手機(jī)中掀起了熱潮。這些新游戲的特點(diǎn)是比傳統(tǒng)的移動(dòng)游戲占據(jù)更多幾何空間,這剛好擊中了MaliGPU的軟肋,使得MaliGPU和相關(guān)移動(dòng)SoC變得難以適應(yīng)新游戲的發(fā)展方向。
為此,ARM才引入了不同的頻率域,這能夠在一定程度上解決現(xiàn)有架構(gòu)幾何資源不足的問題。如果用戶能夠在圖塊引擎、幾何引擎以及GPU核心頻率之間使用不同的頻率,那么就有可能在一定程度上解決幾何吞吐量(并不能在數(shù)據(jù)寬度上伸縮)和計(jì)算、紋理以及渲染引擎之間的吞吐量不平衡的問題。
此外,這種異步時(shí)鐘域還允許GPU運(yùn)行在兩個(gè)域也就是兩個(gè)不同的電壓下,較慢的域能夠在較低的頻率和電壓下工作,從而獲得不錯(cuò)的功率效率,并且這樣的設(shè)計(jì)在理論上不會(huì)影響性能。問題在于,異步時(shí)鐘域會(huì)使得終端SoC廠商采用附加電壓域或者附加電源軌的方式實(shí)現(xiàn),這都會(huì)增加芯片的成本,因此還需要結(jié)合性能提升幅度來綜合衡量。
目前這種異步時(shí)鐘域的設(shè)計(jì)方式,在一定程度上解決了ValhallGPU架構(gòu)幾何資源不足的問題。不過這個(gè)方案更像是一個(gè)“臨時(shí)補(bǔ)丁”,因?yàn)锳RM在GPU上的根本問題依舊是Valhall架構(gòu)一個(gè)時(shí)鐘周期只能支持幾何引擎和圖塊(tiler)引擎處理一個(gè)三角形,這樣就算加入了異步時(shí)鐘域,也存在著頻率限制和功耗等問題,畢竟頻率不可能無限制提升。在臺式設(shè)備上,類似問題大約在十年前也曾出現(xiàn)過,最終解決方案是轉(zhuǎn)向多幾何引擎,在移動(dòng)設(shè)備上這樣的轉(zhuǎn)向也肯定會(huì)出現(xiàn),只是時(shí)間問題而已。
在計(jì)算能力方面,Mali-G78徹底重寫了FMA架構(gòu),據(jù)說這個(gè)變化是ARMGPU小組和CPU小組共同努力的結(jié)果。新的FMA架構(gòu)能夠使得能耗降低30%,改進(jìn)的關(guān)鍵點(diǎn)在于使得FP32和FP16存在計(jì)算路徑的物理隔離,這確實(shí)需要耗費(fèi)更多的晶體管和面積來實(shí)現(xiàn),但是帶來的是更少的實(shí)際晶體管開關(guān)占用時(shí)間以及相應(yīng)的能耗比提升。根據(jù)ARM的計(jì)算,在Mali-G77上僅僅FMA單元就占用了整個(gè)GPU動(dòng)態(tài)切換能耗的19%,這部分能耗降低30%意味著帶來了整個(gè)GPU能源效率大約5%~6%的提升,這是非常驚人的變化。
Mali-G78最后一個(gè)改進(jìn)亮點(diǎn)在于對圖塊(tiler)機(jī)制的改進(jìn),使其性能可以根據(jù)內(nèi)核數(shù)量的增減進(jìn)行合理的縮放。緩存方面,內(nèi)核緩存設(shè)計(jì)改善了緩存維護(hù)算法,并通過更好的依賴性跟蹤設(shè)計(jì)提高了性能,從而使得內(nèi)核可以更為智能的處理緩存數(shù)據(jù),避免不必要的數(shù)據(jù)移動(dòng),降低了GPU內(nèi)部的能耗、增加了帶寬,從而提高了整體性能表現(xiàn)。
小改進(jìn)但可期待的性能
這一部分依舊是慣例的性能改進(jìn)情況展示。ARM帶來了一些Mali-G78性能改進(jìn)方面的內(nèi)容,我們一起來看一下。
由于Mali-G78加入了異步頻率域,因此在幾何性能和渲染性能方面都有不錯(cuò)的提升。對于這一點(diǎn),ARM專門進(jìn)行了對比測試,數(shù)據(jù)顯示在開啟異步頻率域后,基準(zhǔn)性能能夠提升8%,某些游戲表現(xiàn)將提高14%。從數(shù)據(jù)上看這個(gè)進(jìn)步并不大,但是要知道SoC廠商只需額外增加一個(gè)PLL或者分頻器就能獲得這樣的性能提升,算起來還是劃算的。
在和Mali-G77的比較中,ARM給出的是數(shù)據(jù)可比條件下,Mali-G78的能耗降低了10%,這可能是來自于內(nèi)核、FMA改進(jìn)等綜合影響。在異步功能方面,ARM宣稱這能夠帶來6%~13%的能耗降低,具體數(shù)據(jù)則取決于工作負(fù)載。實(shí)際上這是一個(gè)比較籠統(tǒng)的估計(jì),因?yàn)橐獙?shí)現(xiàn)這樣的數(shù)據(jù),需要SoC廠商為GPU添加第二個(gè)電壓軌道以最大限度地利用異步頻率域的優(yōu)勢。但是這里又出現(xiàn)一個(gè)問題,那就是實(shí)際上SoC廠商可以考慮增加一個(gè)額外的內(nèi)核并將其設(shè)定為較低的頻率,而不是設(shè)定一個(gè)額外的PMIC軌道以及相應(yīng)的電感、電容等。對于旗艦SoC來說,采用ARM的推薦設(shè)計(jì)并添加第二條電壓軌是可以期待的,但是對中低端定位的GPU來說,可能成本上并不是很劃得來。
總的來看,目前Mali-G78的改進(jìn)比較小,因此最終的性能提升也不算很大,并且其性能的提升和改變需要額外的配合,這對廠商來說可能存在成本和收益的衡量,再加上如果在售價(jià)方面比較貴的話,可能會(huì)影響廠商選擇Mali-G78的積極性。在這里,ARM需要謹(jǐn)慎地平衡Mali-G78的價(jià)格和性能,并且參考市場上包括imaginationA系列的售價(jià)和相關(guān)性能情況等因素。另外,考慮到IP和實(shí)際產(chǎn)品之間存在大約半年左右的時(shí)差,因此我們真正看到Mali-G78的產(chǎn)品上市可能還需要等待一段時(shí)間了。
核心最大數(shù)量為6個(gè)的Mali-G68
ARM在本次發(fā)布會(huì)上還一并發(fā)布了Mali-G68,從產(chǎn)品型號來看,Mali-G68像Mali-G78的上一代產(chǎn)品。但實(shí)際上這兩款產(chǎn)品采用了完全相同的內(nèi)核。但是,Mali-G68的擴(kuò)展數(shù)量被限制為最大6個(gè)核心。也就是說大家都是一樣的核心“Valhall”的改進(jìn)版本,但是采用MP6以及以下的配置時(shí),只能被稱之為Mali-G68MP6,但是如果使用7個(gè)或者更多的內(nèi)核,就可以被稱為Mali-G78家族。
這樣的命名方式無疑帶來了市場的混淆。ARM希望中低端SoC在使用較少的核心配置時(shí),不會(huì)使用Mali-G78的名稱并對其產(chǎn)生市場和定位上的影響,但是采用Mali-G68的這樣的命名方式,會(huì)讓人迷惑這是否是上一代產(chǎn)品。我們知道英偉達(dá)和AMD在同代架構(gòu)GPU上的區(qū)分命名方式是采用從大到小的數(shù)字,但是其根本問題在于總有一些數(shù)據(jù)看起來是不變的,比如GeForceRTX2060和RTX2080,架構(gòu)一樣,特性類似,但是產(chǎn)品命名方面通過RTX、20代次等做到了很好的區(qū)分,并且也不會(huì)混淆之前的“10”代次產(chǎn)品,ARM在這里可能需要借鑒一下。
當(dāng)然,這并不是ARM第一次這樣做。在之前Mali-G57架構(gòu)和衍生SoC上,ARM就使用過這一“套路”。實(shí)際上Mali-G57和高端的Mali-G77來自完全一樣的核心架構(gòu),聯(lián)發(fā)科天璣800采用了Mail-G57MP4的方案,采用了4個(gè)GPU核心,因此只能被稱之為Mali-G57。這顯然帶來了品牌和技術(shù)上的一些混淆。
本文將Mali-G68單獨(dú)放在一段中講述,正是為了特別提到有關(guān)GPU產(chǎn)品命名的問題。雖然消費(fèi)者在很大程度上并不會(huì)關(guān)心到底使用的是什么GPU、CPU,但是起碼不要帶來產(chǎn)品型號和技術(shù)代次上的混淆。
ARM Ethos-N78:更大、更強(qiáng)的AI加速核心
在過去幾年,由于移動(dòng)計(jì)算市場對AI計(jì)算需求增加,SoC廠商對相關(guān)知識產(chǎn)權(quán)和核心架構(gòu)設(shè)計(jì)的需求也在逐漸增多,比如高通、華為、聯(lián)發(fā)科等廠商都在自己的SoC中加入了AI加速核心設(shè)計(jì),各家在核心名稱和實(shí)現(xiàn)方式上有所不同,但總的來說,都是為了加速手機(jī)端的AI計(jì)算。
在這種情況下,ARM也提出了自己的機(jī)器學(xué)習(xí)加速核心的發(fā)展計(jì)劃。第一代產(chǎn)品被稱為“ProjectTrillium”,最終商品名稱為Ethos,首個(gè)產(chǎn)品型號是Ethos-N77。本刊也在之前的文章中介紹過有關(guān)Ethos-N77的內(nèi)容。這款產(chǎn)品發(fā)布時(shí)間距離現(xiàn)在已經(jīng)有一年多了,因此ARM推出了第二代機(jī)器學(xué)習(xí)架構(gòu)和相關(guān)產(chǎn)品,也就是今天被稱為“Scylla”的架構(gòu)以及Ethos-N78NPU。
在Ethos-N78的性能展示環(huán)節(jié)。ARM宣稱它的規(guī)模大大超過了Ethos-N77,能夠提供最高10TOPS的計(jì)算吞吐量和超過之前產(chǎn)品2倍的峰值性能,其他數(shù)據(jù)還包括25%能耗比提升、40%的存儲器帶寬提升和超過90種獨(dú)特的配置方案。
在技術(shù)改進(jìn)方面,Ethos-N78使用了全新的壓縮技術(shù),包括NPU內(nèi)部的計(jì)算數(shù)據(jù)壓縮和外部的帶寬的壓縮,比如Ethos-N78通過優(yōu)化設(shè)計(jì)和數(shù)據(jù)壓縮帶來了外部存儲器40%的帶寬提升。新的數(shù)據(jù)壓縮和數(shù)據(jù)處理可以顯著提高計(jì)算效率、降低系統(tǒng)帶寬占用等,使得平均工作負(fù)載也降低了40%,并最終帶來了更高的能耗比和更出色的功率表現(xiàn)。
在配置上,Ethos-N78能夠在4種不同的配置間選擇,并對應(yīng)了不同的MAC單元,這四種配置分別是1TOPS、2TOPS、5TOPS和10TOPS,分別包含了512、1024、2048和4096個(gè)MAC單元。這里有一個(gè)比較有趣的現(xiàn)象,那就是隨著配置規(guī)模的提升,Ethos-N78的面積效率也會(huì)增加,這是由于唯一的固定共享功能的模塊面積比例隨著配置規(guī)模提升、計(jì)算單元面積大增而相對縮小所致。換句話來說那就是對廠商而言,更大規(guī)模的Ethos-N78會(huì)更有利于實(shí)現(xiàn)更高的每平毫米性能或者每單位價(jià)格性能。
由于更出色的性能密度,25%的能耗比提升,以及翻倍的峰值計(jì)算能力,最終我們可能看到在使用Ethos-N78后,終端SoC的計(jì)算能力得到巨大提升。對于這一點(diǎn),ARM給出了相當(dāng)樂觀的估計(jì)。具體到產(chǎn)品上來說,由于推出時(shí)間較晚,目前使用Ethos-N77的相關(guān)產(chǎn)品還沒有上市,因此暫時(shí)無法評估Ethos架構(gòu)的實(shí)際應(yīng)用情況。不過ARM對這一點(diǎn)倒是很坦然,他們認(rèn)為,在AI計(jì)算上,沒有什么比軟件更重要,優(yōu)秀的軟件設(shè)計(jì)才能充分發(fā)揮AI硬件的性能,ARM在軟件上投入了大量資源且取得了明顯的競爭優(yōu)勢,已經(jīng)吸引了一些合作伙伴開始使用Ethos相關(guān)產(chǎn)品。具體到Ethos-N78的話,可能到2021年才會(huì)有產(chǎn)品面世了。
除了Ethos-N78這樣應(yīng)用在高端移動(dòng)SoC上的大規(guī)模NPU產(chǎn)品外,根據(jù)ARM推動(dòng)的“ARMEnablesAIEverywhere,OnAnyDevice”計(jì)劃,ARM還在今年2月份推出了新的超小型AI加速核心Ethos-U55。相比Ethos-N78起步就是512個(gè)MAC單元而言,Ethos-U55的規(guī)模要小得多,只有32個(gè)MAC到256個(gè)MAC,并且它需要和Cortex-M系列處理器配合使用。在技術(shù)方面,ARM并沒有給出Ethos-U55更多的細(xì)節(jié)信息,只是宣稱其使用了一種非常精簡的設(shè)計(jì),側(cè)重于面積與能耗比的表現(xiàn),同時(shí)具有較小的內(nèi)存占用,另外還加入了N系列上的一些基本功能。在應(yīng)用范圍上,Ethos-U55將搭配Cortex-M系列處理器,專門面向超低功耗、超小核心等終端對象,比如智能耳機(jī)、智能家居等。在搭配了Ethos-U55系列的AI加速核心之后,這類產(chǎn)品有望獲得基礎(chǔ)的AI計(jì)算能力,從而在一定程度上擴(kuò)展它們的適用范圍,或是增強(qiáng)其使用體驗(yàn)。
寫在最后
在2020年,ARM的升級重點(diǎn)似乎放在了CPU端,從產(chǎn)品技術(shù)角度來看,Cortex-X1的變革力度無疑是最大的,Cortex-A78的重點(diǎn)則和Mali-G78一樣,都是改進(jìn)和優(yōu)化。尤其是GPU,考慮到去年ARM才推出了全新的GPU架構(gòu),今年只做小改進(jìn)也是合理的。NPU方面目前尚未有廠商采用,并且相關(guān)產(chǎn)品和市場發(fā)展階段應(yīng)該還處在早期,ARM依舊有大量時(shí)間對其進(jìn)行深入研發(fā)和定制??偟膩砜?,今年應(yīng)該可以被看做是ARM產(chǎn)品發(fā)展的“小年”,ARM將重點(diǎn)都放在了架構(gòu)的優(yōu)化和改進(jìn)上,這也為廠商進(jìn)一步調(diào)校產(chǎn)品、帶來更好的使用體驗(yàn)留下了充足的空間。