張平
如今的移動SoC市場,除了高通、蘋果和三星之外,其他廠商在旗艦級產(chǎn)品上總是感覺差點意思,不是工藝有點問題,就是架構(gòu)不夠新。在Android移動設備市場中,三星Exynos大多用于自家產(chǎn)品上,各品牌旗艦產(chǎn)品可選的SoC只有高通驍龍—考慮到全球大量的智能手機品牌,這樣的不平衡遲早會出現(xiàn)變化。2021年11月初,谷歌發(fā)布了全新的Pixel 6系列手機,并搭載自研的Tensor系列SoC。那么,這款芯片的架構(gòu)、設計有什么值得關注的內(nèi)容呢?
對旗艦級移動設備來說,硬件配置中最核心的部分莫過于其使用的SoC。在目前的Android移動設備市場中,能夠?qū)ν馓峁┢炫灱塖oC的廠商實際上只有高通一家,因此市場上大量的旗艦手機、平板電腦在發(fā)布時都采用了完全一樣的高通旗艦芯片,比如2021年的旗艦級移動設備絕大部分都使用的是驍龍888系列。這樣的情況使得市場上的產(chǎn)品趨同現(xiàn)象逐漸明顯。為了改變這樣的情況,全球很多企業(yè)開始尋求新的發(fā)展和突破,尤其是上游芯片廠商或者垂直領域的巨頭,都在試圖進入頂級移動SoC市場。
谷歌作為垂直領域的巨頭,一直在芯片領域躍躍欲試。對谷歌來說,通過自研SoC,不但可以提供具有競爭力、差異化的產(chǎn)品,還可以進一步加高自己的技術(shù)壁壘,增強技術(shù)競爭優(yōu)勢,形成企業(yè)內(nèi)部循環(huán)系統(tǒng),甚至進一步降低成本,提高整體利潤率。有這么多好處,谷歌自然全力而為。2021年11月,谷歌全新的Pixel 6系列手機正式發(fā)布。這一次,人們發(fā)現(xiàn)谷歌放棄了之前一直選用的第三方SoC(主要是高通),轉(zhuǎn)而采用了全新的、加入了大量自研技術(shù)的TensorSoC。谷歌的新產(chǎn)品采用了一個數(shù)學名詞“張量”作為名稱,一方面顯示了自己產(chǎn)品的獨特性,另一方面讓人不得不聯(lián)想這款SoC和AI計算的關系。這樣的Tensor ,當然值得一看。
撲朔迷離:谷歌Tensor和三星Exynos 2100的關系
首先我們來研究一下Tensor的設計來源。眾所周知,谷歌雖然之前在芯片設計、量子芯片方面有不少技術(shù)積累,但是在移動SoC上還是業(yè)內(nèi)新手。對芯片行業(yè)來說,不同類型、需求的芯片其設計導向和所需要的知識產(chǎn)權(quán)差別巨大,一次就成功拿出旗艦級產(chǎn)品的可能性不是很高。因此,在Tensor上,谷歌選擇了業(yè)內(nèi)一家廠商作為合作伙伴(或者說和合作伙伴一起定制研發(fā)),那么這個合作伙伴是誰呢?
研發(fā)代號往往會泄露不少信息。Tensor在內(nèi)部被稱為GS101,GS的意思可能是“Google SoC”或“GoogleSilicon”,“101”應該是初代首款芯片的數(shù)字碼。這樣看起來倒也很正常。但是,這款產(chǎn)品還有另一個代號,芯片上標明其ID為“0x09845000”—我們知道,三星Exynos 2100的研發(fā)代號是S5P9845。一般來說,業(yè)內(nèi)兩款同期推出的芯片之間的研發(fā)代號基本相同的可能性是非常小的,各個廠商都有自己的命名方式和數(shù)字代碼,因此這個代號顯示出Tensor和Exynos2100之間可能的關系。
其實從2020年開始,三星就不斷地推廣自己的半定制芯片方案,和思科、谷歌等企業(yè)的合作新聞屢見報端。比如2020年8月的消息顯示三星獲得了一個谷歌定制芯片的訂單,不過并非移動SoC,而是傳感器產(chǎn)品,但是同時也有一些消息顯示三星正在不斷擴大自己的半定制業(yè)務版圖。一種猜測是,三星和谷歌在半定制芯片產(chǎn)業(yè)上存在更多的合作,三星深度參與了Tensor的設計過程。
如今隨著Tensor的發(fā)布,我們可以更為清晰地對比這兩款SoC之間的差別了。谷歌公布了Tensor的配置方案,我們使用Exynos 2100進行對比,來了解其中的差異。
從配置方案的對比可以看出,Tensor和Exynos 2100有很深的淵源。兩者的基本架構(gòu)相似度非常高,其中GPU的型號選擇、內(nèi)存方案、ISP、多媒體核心和Modem、工藝基本相同,在CPU核心、GPU性能、緩存配置以及AI核心方面則存在顯著差異。
另外,在表中未能呈現(xiàn)的內(nèi)容中,目前已知的是這兩款SoC在一些底層架構(gòu),比如時鐘管理架構(gòu)、電源管理架構(gòu)方面是完全一樣的,更上層的部分比如存儲控制器、PHYIP、結(jié)構(gòu)IP等,兩者也基本相似。在CPU集群方面,Exynos采用的是相干互聯(lián)方式,Tensor則采用了不同的CC I集群。內(nèi)存方面,Exynos單獨為部分IP單元設置了獨立的內(nèi)存總線,Tensor則不是很清楚如何處理這部分內(nèi)容。總的來說,在設計和宏觀架構(gòu)層面,Tensor更像是在三星給出的方案中進行了大量的自定義設計。用食物來比喻的話,谷歌使用了三星的廚房甚至廚師,但是更換了主要的菜品甚至口味。
CPU部分: 兩顆Cortex-X1的方案和“2+2+4”的獨特設計
要更進一步了解Tensor,讓我們先從CPU部分開始。
谷歌為Tensor選擇了目前業(yè)內(nèi)都不常見的一種方案,那就是“高性能核心+性能核心+節(jié)能核心”的“2+2+4”方案。一般來說,在進入Cortex-X1世代以后,像高通、三星等廠商往往會選擇“1+3+4”的方案,也就是1個頻率盡可能高的高性能核心來提高單線程性能,再搭配3個性能核心和4個節(jié)能核心來提高多線程性能,三星Exynos 2100采用的就是后者。Tensor的設計有點類似三星之前的Exynos 990或Exynos 9820,在這兩款SoC上,三星采用了“2+2+4”的方案,也就是一個自研的M5或者M4高性能核心,搭配Cortex-A76等高性能核心,再搭配4個Cortex-A55,這種方案僅限于ARM推出Cortex-X1之前。從這個角度來看,Tensor的CPU架構(gòu)設計是獨一無二的。這種設計的優(yōu)勢在于,在那些需要重度使用雙線程的場合下,Tensor可能會具有一定的性能優(yōu)勢。
在性能核心的架構(gòu)上,Tensor選擇的是Cortex-A76。相比目前的Cortex-A78而言,Cortex-A76實際上并不占優(yōu)。考慮到三星Exynos 990選擇了Cortex-A76,有一種可能是在Tensor選擇CPU架構(gòu)的時候,三星尚未準備好集成新的Cortex-A78,因此才使用了比較老的Cortex-A76。
在頻率方面,我們看到Tensor的高性能核心Cortex-X1頻率為2.8GHz,相比Exynos 2100的2.91GHz略低,也比驍龍888的2.86GHz略低,但幅度并不大。此外,Tensor的性能核心Cortex-A76和節(jié)能核心Cortex-A55的頻率比Exynos 2100都更低一些。因此在單線程、雙線程性能方面,Tensor的表現(xiàn)可能會更為優(yōu)異,更多線程性能方面則可能存在一定的劣勢。
Tensor的緩存設計是比較獨特的。對于高性能核心Cortex-X1而言,Tensor為其配備了1MB L2緩存,相比Exynos 2100容量翻倍。值得一提的是,驍龍888也采用了1MB緩存的設計。對移動SoC來說,緩存將占據(jù)大量的芯片面積,因此設計廠商需要非常謹慎地在面積、性能和功耗之間平衡。Tensor在這里使用了1MB的 L2緩存和2個高性能核心,顯然是非??粗?個線程以內(nèi)的性能運行情況。與此相反的是,Tensor的性能核心緩存容量減半且頻率較低,這意味著其性能表現(xiàn)不會特別出色。但是Tensor為節(jié)能核心配置了128KB L2緩存,而不是Exynos 2100的64KB,這使得SoC在大部分輕負載狀態(tài)下也具有較好的性能表現(xiàn)。另外,谷歌將整個集群的L3緩存和Cortex-A55放置在一個時鐘平面上,這樣的設計可能會在一定程度上影響延遲和功耗,相比之下,Exynos 2100則并沒有這樣做。
總的來說,Tensor的CPU部分在設計和規(guī)格上是有別于其他廠商的方案的,它采用了“2+2+4”的設計,在進入Cortex-X系列高性能核心時代后就已經(jīng)不多見了。尤其是Tensor的2個高頻率的高性能核心、大緩存方案搭配2個頻率較低、緩存容量較少的性能核心,可能是綜合考慮了性能和面積、成本等因素后才做出的調(diào)整。Tensor這種特別看中2個高性能核心的設計方案在其他的產(chǎn)品中從未出現(xiàn)過,屬于獨樹一幟的設計。
GPU部分:高頻率的Mali-G78 MP20
GPU部分也是Tensor的設計重點。在這里谷歌采用的是Mali-G78作為基礎架構(gòu)。Mali-G78是Mali GPU上一代性能最強的架構(gòu),MP20也就是20核心的設計方案也使得Tensor成為僅次于華為麒麟9000之后第二大Mali-G78 GPU。
需要注意的是,在GPU規(guī)模上,很多SoC設計時會在規(guī)模和頻率中二選一,也就是要么大規(guī)模,要么高頻率。但是在Tensor上,谷歌選擇了二者兼得。Tensor的GPU部分能夠在Shader模式下運行在848MHz,在Tiler或者L2模式下運行在高達996MHz。如此巨大的規(guī)模和如此高的頻率,意味著Tensor的GPU部分功耗和發(fā)熱可能會很驚人。
相比之下,Exynos 2100的GPU規(guī)模要小得多,三星同樣采用的是Mali-G78,但是僅僅采用了MP14的方案,運行頻率最高也僅為854MHz。Tensor的GPU規(guī)模要比Exynos 2100大42%,且頻率基本相同。這意味著在全速狀態(tài)下,僅僅是GPU部分的功耗,Tensor將顯著高于Exynos 2100。
Tensor的AI處理單元:edgeTPU
在CPU和GPU部分之后,則是Tensor的AI處理單元。在之前的內(nèi)容中,本文曾提到Tensor的“Tensor”是A I加速計算中常用到的數(shù)值格式,Tensor的命名也意味著谷歌希望這款SoC在AI性能方面有所超越。
谷歌在AI加速處理器上是有相當深厚的功底的,之前谷歌曾推出過數(shù)代TPU產(chǎn)品,并且已經(jīng)實際使用在設備中,取得了不錯的效果。在Tensor上,谷歌將集成的A I加速單元稱之為edgeTPU,這實際上是在暗示集成的A I加速單元的功能和技術(shù)來源,“edge”表示其用途和邊緣計算有關,所謂邊緣計算,是指在設備端和應用端的加速計算,它的性能往往不如超級計算機或者服務器那樣強大,但是由于更靠近終端,因此更為“邊緣”,這也是“edge”的來源。另外,Tensor的AI加速單元的技術(shù)顯然是之前TPU的簡化版本,谷歌將其做了適配移動SoC的一些簡化(或者優(yōu)化)。更早一些的信息顯示,2018年的時候,谷歌就展示了4Tops計算能力的TPU模塊,功耗為2W。在目前的Tensor上,谷歌沒有給出任何信息和功耗方面的內(nèi)容,但是一些數(shù)據(jù)顯示其最高可達5W??紤]到2018年的工藝和2021年的工藝存在顯著的落后,如果之前的消息可靠的話,那么Tensor的AI計算能力是相當值得期待的。
谷歌沒有給出edgeTPU太多的細節(jié)內(nèi)容,但是谷歌宣稱目前的版本已經(jīng)采用了最新的ML架構(gòu),并且針對目前的機器學習進行了充分的優(yōu)化,支持開辟新的用例。另外,edgeTPU似乎還包含了一個四核心Cortex-A32處理器模塊,這個模塊用于控制和操作edgeTPU—谷歌目前對這個信息并未予以證實。
Tensor的內(nèi)存、SLC、ISP和媒體單元
在其他的一些單元方面,比如內(nèi)存單元,Tensor的內(nèi)存單元和Exynos2100一樣,都采用了4通道LPDDR5的方案,總的峰值理論帶寬為51.2GB/s。
在這里需要額外提及的是Tensor的系統(tǒng)級緩存。目前系統(tǒng)級緩存正在成為SoC設計的一個非常重要的特征,大量性能取向的SoC都在末端集成了系統(tǒng)級緩存,比如蘋果,三星以及今天我們看到的Tensor。Tensor擁有8MB的SLC,容量數(shù)據(jù)和三星的Exynos 2100相同,但是在使用方面兩者可能存在顯著差異。谷歌宣稱他們將非常廣泛地在各大功能模塊中使用SLC來提高性能,包括谷歌的自定義模塊。另外,Tensor的SLC還可以進行分區(qū)操作以對應不同的需求,部分區(qū)域還可以專用于部分特定的功能模塊,這些功能模塊也能夠在特定的情況下獨占全部或者部分SLC。
另外則是Tensor的ISP,這也是Tensor和Exynos 2100的一個顯著差異。一般人們會認為ISP是一個整體的功能模塊,但實際上ISP是很多功能的組合,不同的功能會使用不同的處理管線。谷歌在這里做了一些特別的操作,他們將三星Exynos上使用的ISP進行了重新組合,并結(jié)合了谷歌的部分內(nèi)容,最終形成了在Tensor上使用的ISP。
這個新的ISP在圖像處理部分使用了大量在Exynos上已有的功能,包括像素相位檢測處理單元、對比度自動對焦處理單元、圖像縮放器、失真校正處理以及依賴視圖的紋理遮擋處理等。由于三星經(jīng)常使用后處理,因此這里缺乏了一些功能模塊。因此,谷歌添加了不少的功能模塊,包括自動曝光、自動白平衡、自動對焦以及定制的時間性降噪等,另外還擁有對齊和合并圖像的功能模塊。不僅如此,考慮到谷歌Pixel系列在計算攝影技術(shù)上的優(yōu)勢,ISP方面谷歌還應該加入了額外的功能(但是谷歌沒有太多信息披露)以滿足計算攝影算法的需求。
測試結(jié)果一覽:強悍但弱點明顯的產(chǎn)品
有關Tensor的性能,國外anandtech網(wǎng)站做了詳細的測試。在這一部分,本文引用他們的一些內(nèi)容進行解讀。
CPU方面,Tensor在大部分測試項目中的表現(xiàn)和Exynos 2100以及驍龍888表現(xiàn)相似,但是問題出現(xiàn)在有關內(nèi)存的延遲負載相關的測試上中,這部分結(jié)果顯示Tensor顯著落后于Exynos 2100和驍龍888,比如531.deepsjeng、557.xz_r等項目,并且由于效率較低,其最終性能功耗比表現(xiàn)也不是很樂觀。另外,在計算性能方面,Tensor的表現(xiàn)還是比較令人滿意的,甚至部分測試中Tensor體現(xiàn)了更為優(yōu)秀的性能功耗比。最終的總評成績顯示,Tensor比Exynos 2100稍許落后,大約落后驍龍888 12.2%。另外值得一提的是,Tensor在實際測試中出現(xiàn)高熱降頻的現(xiàn)象,測試人員將其在室溫11℃下測試時,性能要比室溫23℃測試時更高,尤其是在浮點計算測試中。
在這里有個重要的問題需要提及,那就是前文也說過的有關2個Cortex-A76核心,這兩個核心頻率低、緩存也比較小,雖然相比較老的Exynos 990其能耗比表現(xiàn)更為出色,但是和驍龍888的Co r tex-A78比較的話,性能差距高達46%,雖然從頻率、IPC方面來說這個差距是合理的,但實際上谷歌完全可以選擇頻率低一點但是顯然更先進的Cortex-A78來實現(xiàn)2個性能核心。因此在這里很難解釋為什么谷歌這樣做。對4個Cortex-A55節(jié)能核心來說,谷歌為其配置了更大的緩存,但是最終的效率表現(xiàn)卻不是那么出色,這里的問題和三星在Exynos上所發(fā)生的是一樣的,這也在很大程度上顯示了兩款SoC的關系。
GPU方面,由于Tensor的GPU規(guī)模更大,因此在測試中展示出了更強的性能,不過相比其46%的規(guī)模增加,性能增加的21%顯然不成比例。實際上出現(xiàn)這個情況的原因可能并不是谷歌的鍋,ARM的GPU目前設計實際上遇到了架構(gòu)的瓶頸,在規(guī)模進一步擴大后,邊際效應愈發(fā)明顯,導致性能提升并沒有想象中的那么令人滿意。實際上,ARM到現(xiàn)在也沒有很好地解決GPU規(guī)模和性能的問題。另外,Tensor的GPU由于規(guī)模較大,峰值功耗也是非??鋸埖?,甚至達到10W的水平,這使得GPU很快受到功率限制而降低性能。在這種情況下,整個G P U的持續(xù)性能表現(xiàn)甚至不會比Exynos 2100更好,并且GPU部分在持續(xù)運行中似乎受到了3W功耗墻的限制,性能輸出就顯得更低了。對這個問題,一種解釋是谷歌可能更強于將這個SoC應用在計算市場,而不是在游戲市場中。
最后再來看看有關Tensor的edgeTPU部分。從實際測試來看,在經(jīng)過谷歌的優(yōu)化后,Tensor在機器學習相關測試方面取得了相對很不錯的成績。比如在圖像分類、對象檢測和圖像分割測試中,Tensor都能完勝Exynos 2100,在語言相關測試中,Tensor則能夠以數(shù)倍性能優(yōu)勢大勝包括驍龍888在內(nèi)的所有SoC—這是谷歌在Pixel 6系列手機銷售時的宣傳重點,也就是實施轉(zhuǎn)錄語言和實時翻譯。在GeekBench ML測試中,Tensor也僅次于蘋果A15,領先于其他一眾SoC??偠灾?,Tensor的edgeTPU在很大程度上是相當成功的,它也體現(xiàn)了谷歌在設計Tensor和Piexl 6系列手機時的初衷,那就是更為優(yōu)秀的AI計算能力。
小結(jié)
最后我們來總結(jié)一下這款Tensor的相關特性。在他的CPU部分,谷歌采用了非常獨特的“2+2+4”的方案,目前看起來其整體性能尚可但是存在一些問題,比如內(nèi)存性能較差、性能核心和節(jié)能核心表現(xiàn)不佳等。GPU方面這款SoC擁有非常大的規(guī)模,不過性能提升幅度和規(guī)模不成正比,并且和CPU部分一樣,都很難長期運行在最高頻率下,因此整體性能輸出存在一些問題。Tensor的亮點在于其AI計算部分使用的edgeTPU,整體性能表現(xiàn)不錯,尤其在語言類測試中以數(shù)倍優(yōu)勢力壓所有競爭對手的產(chǎn)品(包括蘋果),這可能也是谷歌針對Tensor的最重要需求,從這個角度來說,Tensor很好地完成了這個工作。
Tensor在很大程度上算是一款水準之上的移動SoC產(chǎn)品,但是它的缺點也暴露出谷歌在移動SoC上還缺乏經(jīng)驗,尤其是需要功耗控制的場合,高通、蘋果等廠商表現(xiàn)得更為駕輕就熟,能夠很好地在面積、性能和功耗之間平衡,谷歌目前做得還不夠好,可能未來下一代Tensor將表現(xiàn)得更為出色吧。