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