在過(guò)去的幾年里,蘋果的芯片設(shè)計(jì)團(tuán)隊(duì)一直處于架構(gòu)設(shè)計(jì)和制造工藝的前沿。蘋果A12是該公司又一次跨越代際的飛躍,因?yàn)樗?hào)稱是首款商用7nm芯片。
在談?wù)摴に嚬?jié)點(diǎn)時(shí),一般而言,數(shù)字越小,晶體管就越小。雖然最近節(jié)點(diǎn)的名稱與實(shí)際物理尺寸之間的關(guān)聯(lián)早已失去了意義,但它仍代表密度的飛躍,因此,供應(yīng)商能夠在相同的芯片空間中封裝更多的晶體管。
感謝TechInsights公開(kāi)分享了蘋果A12芯片的圖片,我們隨后發(fā)布了裸片照片的首篇分析評(píng)論:
蘋果A12芯片裸片照片(來(lái)源:TechInsights )
本文中,我再次回顧了A12芯片,我寫(xiě)下了我自己定義的關(guān)于裸片照片的標(biāo)簽和解釋。新的A12芯片主要遵循蘋果的SoC布局結(jié)構(gòu)(同過(guò)去大多數(shù)裸片相比旋轉(zhuǎn)了90度)。
在右側(cè),我們看到了GPU復(fù)合體,中間是四個(gè)GPU內(nèi)核和共享的邏輯部分。CPU復(fù)合體位于底部,中間靠左側(cè)有兩個(gè)Vortex大CPU內(nèi)核,由大型L2緩存分隔開(kāi),緊挨著4個(gè)小CPU核心和它們各自的L2緩存。
中間的4個(gè)SRAM大組塊是系統(tǒng)緩存的一部分,這是SoC范圍的緩存層,位于內(nèi)存控制器和內(nèi)部系統(tǒng)互連以及區(qū)塊內(nèi)存子系統(tǒng)之間。蘋果將這個(gè)區(qū)塊用作節(jié)能功能:由于DRAM的內(nèi)存事務(wù)在能源使用方面非常昂貴,因此在片上進(jìn)行緩存會(huì)節(jié)省很多功率,而且由于數(shù)據(jù)的局部性,性能可能會(huì)有所提升,由此會(huì)帶來(lái)額外的好處。
到目前為止,蘋果A12的系統(tǒng)緩存出現(xiàn)了自蘋果A7推出以來(lái)最大的變化。布局上的巨大變化也表明了區(qū)塊功能的巨大變化,因?yàn)楝F(xiàn)在我們清楚地看到區(qū)塊被分成明顯的4個(gè)部分。在先前的蘋果SoC中,例如A11和A10,系統(tǒng)緩存看起來(lái)更像一個(gè)邏輯區(qū)塊,看起來(lái)似乎是兩個(gè)部分。區(qū)塊中部分的加倍可能會(huì)表明這個(gè)區(qū)塊的內(nèi)存性能發(fā)生了很大的變化,在后文中,我會(huì)進(jìn)行更詳細(xì)的分析。
最后一個(gè)關(guān)于A12的重要介紹是神經(jīng)網(wǎng)絡(luò)加速器IP的重大改進(jìn)。蘋果聲稱已經(jīng)從A11的雙核設(shè)計(jì)轉(zhuǎn)變?yōu)樾碌?核設(shè)計(jì)。在演講中,很重要的一點(diǎn)是,蘋果從來(lái)沒(méi)有提到這是內(nèi)部設(shè)計(jì),營(yíng)銷材料總是急著介紹SoC的其他IP區(qū)塊。
據(jù)傳去年的設(shè)計(jì)是CEVA IP,但是我們從未得到完全的確認(rèn),因?yàn)樘O果不希望它被人們所知。A12是8核設(shè)計(jì),性能提升了4倍,但實(shí)際的性能提升接近8倍,從A11的600GigaOP增加到A12的5TeraOP。在裸片照片中,我們看到8個(gè)MAC引擎圍繞著一個(gè)大型中央緩存,頂部可能有共享的邏輯部分,負(fù)責(zé)固定功能和完全連接的層處理。
縱觀從A11到A12的不同區(qū)塊大小的變化,我們看到了臺(tái)積電新7nm工藝節(jié)點(diǎn)的優(yōu)點(diǎn)。值得注意的是,幾乎所有的IP區(qū)塊都經(jīng)歷了變化,所以用A11 vs A12的比較來(lái)確定新工藝節(jié)點(diǎn)的密度提高了多少并不是有效的方法。盡管如此,我們將單個(gè)GPU核心作為可能的候選(因?yàn)槲覀兛吹降慕Y(jié)構(gòu)基本相同),觀察發(fā)現(xiàn),與A11相比,A12尺寸減小了37%。顯而易見(jiàn)的是,新節(jié)點(diǎn)使蘋果能夠添加一個(gè)額外的GPU核心,然而在絕對(duì)值上,A12中的GPU仍然較小。
更大的CPU和大規(guī)模緩存層次結(jié)構(gòu)
來(lái)源:TechInsights的蘋果A12裸片照片,ChipRebel的蘋果A11裸片照片
接下來(lái)是CPU復(fù)合體,尤其是新的大CPU核心,我們現(xiàn)在看到的可能是蘋果幾代芯片在CPU布局上最大的變化。特別是,我們看到新的Vortex CPU中的L1數(shù)據(jù)緩存增加了一倍,從64KB增加到128KB。在前端,我們還看到了雙倍的SRAM區(qū)塊,我將其歸因于L1指令緩存,我現(xiàn)在相信它也一定翻倍到了128KB。有趣的是,即使在幾年之后的今天,我們?nèi)匀粵](méi)有真正弄清楚A10在前端區(qū)塊中引入了什么:在這里,我們看到了一個(gè)新的非常大的緩存區(qū)塊,其具體功能尚不清楚。
多年來(lái)的一個(gè)大問(wèn)題是,蘋果的緩存層次結(jié)構(gòu)到底是什么樣的。查看不同測(cè)試深度下的內(nèi)存延遲行為,我們可以看到不同測(cè)試深度下的不同跳躍。我沒(méi)有標(biāo)注延遲數(shù)值,因?yàn)樯院笪覀儗⒃诖藞D的非對(duì)數(shù)版本中再次看到它們。
在大核心方面,我們清楚地看到L1$從64KB跳躍到128KB,我認(rèn)為這里的增長(zhǎng)毫無(wú)疑問(wèn)。然而,進(jìn)入L2緩存,我們?cè)谘舆t方面看到了一些奇怪的特性。很明顯,在3MB的范圍內(nèi),延遲增加,直到6MB左右。值得注意的是,只有在完全隨機(jī)模式下訪問(wèn)時(shí),才會(huì)出現(xiàn)3MB左右延遲緩慢增加的特性,在較小的訪問(wèn)窗口中,延遲始終平坦,直到6MB。
我們暫時(shí)不再考慮這個(gè)問(wèn)題,轉(zhuǎn)而進(jìn)入系統(tǒng)緩存服務(wù)的6MB以上區(qū)域。一開(kāi)始很難弄清楚,因?yàn)檎w低延遲會(huì)造成偏移,但總體而言,在我們達(dá)到DRAM延遲之前,延遲曲線會(huì)進(jìn)一步增加4MB左右。這與我們?cè)诼闫蠈?shí)際看到的是一致的:新的系統(tǒng)緩存不僅使其區(qū)塊中劃分的部分加倍,而且容量也從4MB增加到8MB,翻了一倍。
我們接下來(lái)分析小核心,事情變得有點(diǎn)復(fù)雜。乍一看,你會(huì)相信A11的小核心L2被限制在512KB,而A12則高達(dá)1.5MB,然而我認(rèn)為我們正在被緩存的電源管理策略所欺騙??纯碅11 Mistral核心延遲,我們可以看到768KB和1MB處的明顯跳躍。A12核心在2MB處也可以看到類似的跳躍。
此時(shí),我們最好是回到裸片照片,做一些像素計(jì)算,從而得出下表:
大核心L2在A11和A12之間沒(méi)有任何結(jié)構(gòu)上的變化,二者都有128個(gè)SRAM macros instances ,分成兩個(gè)組塊。這里的問(wèn)題仍然是,如果L2確實(shí)只有6MB,那么這意味著每SRAM區(qū)塊有48KB。
在查看小核心時(shí),我們看到它們使用相同的SRAM macros。A12的小核心L2已從16個(gè)instance增加到32個(gè),這意味著這里一定有加倍。然而,正如我們所看到的,L2的實(shí)測(cè)延遲深度至少增加了三倍,其他的事情肯定也在發(fā)生。我們測(cè)得的數(shù)據(jù)絕不代表硬件中的內(nèi)容,實(shí)際上,我們可以通過(guò)以更特殊的方式運(yùn)行延遲測(cè)試來(lái)確認(rèn)這一點(diǎn),這使得電源管理認(rèn)為它只是一些小的工作負(fù)載。在A12中,Tempest核心似乎只有512KB可用。
結(jié)論是,蘋果在每個(gè)bank的間隔尺度上使用了部分緩存電源關(guān)閉。在A12上,每個(gè)小核心的L2 bank是512KB,而在A11上是256KB。而且,這更讓我堅(jiān)信A12上有2MB, A11上有1MB,只是測(cè)試可能無(wú)法滿足訪問(wèn)完整緩存的策略要求。
反過(guò)來(lái),因?yàn)檫@會(huì)確認(rèn)每個(gè)SRAM instance是64KB,我們可以回過(guò)頭來(lái)做一些關(guān)于大核心L2的假設(shè)。請(qǐng)?jiān)倏匆淮?,你?huì)認(rèn)為它停留在了6MB,但仔細(xì)看,特別是A12,在8MB時(shí)特性發(fā)生了變化。同樣,內(nèi)核可能有8MB的物理緩存,一旦我們接近完整緩存,訪問(wèn)行為就會(huì)發(fā)生明顯的變化。
這里的要點(diǎn)是,蘋果的緩存非常龐大,A12在這方面進(jìn)一步擴(kuò)展,將系統(tǒng)緩存大小加倍。在實(shí)踐中,我們?cè)诖笮虲PU內(nèi)核上有大約16MB的可用緩存層次結(jié)構(gòu)——這個(gè)龐大的數(shù)量只會(huì)讓SoC競(jìng)爭(zhēng)者的內(nèi)存和緩存子系統(tǒng)相形見(jiàn)絀。
進(jìn)化的GPU
在GPU方面,我們對(duì)A12有很大的期望,不僅在性能方面,而且在架構(gòu)方面。去年,Imagination發(fā)布了一份新聞稿,聲稱蘋果已經(jīng)通知他們,公司計(jì)劃在15至24個(gè)月內(nèi)不再在新產(chǎn)品中使用其IP。這最終導(dǎo)致股票價(jià)格暴跌,隨后公司被出售給一家股權(quán)公司。
因此,盡管蘋果聲稱A11 GPU是內(nèi)部設(shè)計(jì),但它仍然看起來(lái)像Imagination衍生設(shè)計(jì),因?yàn)樗膮^(qū)塊設(shè)計(jì)與之前的Rogue非常相似——最大的區(qū)別在于,現(xiàn)在所謂的核心是比先前的兩個(gè)核心更大的結(jié)構(gòu)。事實(shí)上,它仍然是一個(gè)TBDR(基于圖塊的延遲渲染),IMG擁有許多專利,但一個(gè)重要的事實(shí)是,蘋果仍然非常公開(kāi)和支持PVRTC(PowerVR紋理壓縮,一種專有格式),這意味著GPU仍然可能與IMG的IP相關(guān)聯(lián)。此處,我們可能仍然會(huì)認(rèn)為是架構(gòu)許可設(shè)計(jì),而不是我們通常所說(shuō)的“清白”設(shè)計(jì)。
來(lái)源:TechInsights的蘋果A12裸片照片,ChipRebel的蘋果A11裸片照片
我們?cè)賮?lái)看A12 GPU,模型命名為G11P,我們看到與去年的A11 GPU有一些非常明顯的相似之處。各個(gè)功能區(qū)塊似乎在很大程度上位于相同的位置,并以類似的方式構(gòu)造。
我認(rèn)為蘋果A12 GPU最大的進(jìn)步是支持內(nèi)存壓縮。在發(fā)布會(huì)上聽(tīng)到這個(gè)消息,我非常驚訝,因?yàn)檫@同時(shí)也意味著兩件事:先前的蘋果SoC和GPU顯然沒(méi)有內(nèi)存壓縮,而現(xiàn)在僅此一點(diǎn)就足以顯著提升新GPU的性能。
所謂內(nèi)存壓縮,特別是指從GPU到主內(nèi)存的透明幀緩沖區(qū)壓縮。在桌面領(lǐng)域,像英偉達(dá)和AMD這樣的廠商擁有這一功能已經(jīng)很多年了,即使在內(nèi)存帶寬沒(méi)有增加的情況下,它也能提高GPU的性能。智能手機(jī)GPU同樣需要內(nèi)存壓縮,這不僅是因?yàn)橐苿?dòng)SoC上的帶寬有限,而且最重要的是因?yàn)榕c高帶寬要求相關(guān)的功耗降低。ARM的AFBC一直是移動(dòng)領(lǐng)域最公開(kāi)談?wù)摰臋C(jī)制,但高通甚至Imagination等其他廠商都有自己的實(shí)現(xiàn)機(jī)制。
蘋果似乎很晚才通過(guò)A12引入了這一功能,但這也意味著A12將受益于效率和性能的巨大的代際提升,考慮到蘋果宣稱將大幅增加新GPU,這一舉措意義重大。
A12 Vortex CPU巡禮
在談到Vortex微架構(gòu)時(shí),我們首先需要討論的是我們?cè)谔O果新SoC上看到的頻率。在過(guò)去幾代中,Apple一直在穩(wěn)步提高其大核心的頻率,同時(shí)也提升了微架構(gòu)的IPC。我對(duì)A12和A11的頻率特性進(jìn)行了快速測(cè)試,得出了下表:
A11和A12的最大頻率實(shí)際上是單線程boost時(shí)鐘—— A11的Monsoon核心為2380MHz,A12的新Vortex核心為2500MHz。在ST的應(yīng)用中,這只有5%的頻率提升。當(dāng)添加第二個(gè)大線程時(shí),A11和A12時(shí)鐘分別降至2325MHz和2380MHz。當(dāng)我們同時(shí)在小內(nèi)核上運(yùn)行線程時(shí),兩個(gè)SoC之間的情況發(fā)生了分歧:A11進(jìn)一步降至2083MHz,而A12繼續(xù)保持在2380MHz,直到達(dá)到熱極限并最終停止工作。
在小核心方面,相對(duì)于之前的Mistral,新的Tempest核心實(shí)際上更加保守。當(dāng)系統(tǒng)只在A11上運(yùn)行一個(gè)小核心時(shí),最大頻率提升到1694MHz。這種特性現(xiàn)在在A12上消失了,最大頻率是1587MHz。當(dāng)4個(gè)小內(nèi)核滿載時(shí),頻率進(jìn)一步降低至1538MHz。
大大改進(jìn)的內(nèi)存延遲
正如前文所述,很顯然,蘋果在A12的緩存層次結(jié)構(gòu)和內(nèi)存子系統(tǒng)方面投入了大量工作?;氐骄€性延遲圖,我們可以看到,對(duì)于大核心和小核心的完全隨機(jī)延遲有以下特性:
與Monsoon內(nèi)核相比,Vortex內(nèi)核的頻率僅提升了5%,但絕對(duì)L2內(nèi)存延遲從11.5ns降至8.8ns,提升了29%。這意味著新的Vortex內(nèi)核的L2緩存現(xiàn)在可以在更少的周期內(nèi)完成操作。在Tempest方面,L2周期延遲似乎保持不變,但在L2分區(qū)和電源管理方面又發(fā)生了很大的變化,允許訪問(wèn)更大的物理L2組塊。
我只在小于64MB的范圍內(nèi)進(jìn)行了深度測(cè)試,很明顯,在測(cè)試數(shù)據(jù)集中,延遲曲線還沒(méi)有變平緩,但可以看出DRAM的延遲已經(jīng)有所改善。當(dāng)小內(nèi)核處于活躍狀態(tài)時(shí),內(nèi)存控制器的DVFS頻率的最大值會(huì)提高,這可以解釋為什么Tempest內(nèi)核的DRAM訪問(wèn)存在較大的差異——當(dāng)大內(nèi)核上有大線程運(yùn)行時(shí),它們的性能會(huì)更好。
A12的系統(tǒng)緩存在其特性上發(fā)生了巨大的變化。雖然緩存層次結(jié)構(gòu)的這一部分帶寬與A11相比有所減少,但延遲得到了很大改善。這里的一個(gè)重要影響可以歸結(jié)為L(zhǎng)2預(yù)取器,我也看到了系統(tǒng)緩存端有預(yù)取器的可能:延遲性能和流預(yù)取器的數(shù)量都提升了。
指令吞吐量和延遲
為了比較Vortex的后端特性,我們測(cè)試了指令吞吐量。后端性能由執(zhí)行單元的數(shù)量決定,延遲由設(shè)計(jì)質(zhì)量決定。
Vortex核心與先前的Monsoon(A11)看起來(lái)非常相似,除了我們貌似找到了新的除法單元,因?yàn)閳?zhí)行延遲在整數(shù)和FP方面都減少了2個(gè)周期。在FP方面,除法吞吐量翻了一番。
從核心中部和后端來(lái)看,Monsoon(A11)是一個(gè)重要的微架構(gòu)更新。正是在這里,蘋果將Hurricane(A10)的微架構(gòu)從6-wide解碼改為7-wide解碼。后端最重要的變化是添加了兩個(gè)整數(shù)ALU單元,從4個(gè)單元增加到了6個(gè)。
Monsoon(A11)和Vortex(A12)是寬度極大的機(jī)器——具有6個(gè)整數(shù)執(zhí)行流水線,其中有兩個(gè)復(fù)雜單元、兩個(gè)負(fù)載單元和存儲(chǔ)單元、兩個(gè)分支端口、三個(gè)FP/矢量流水線,這給出了估計(jì)的13個(gè)執(zhí)行端口,遠(yuǎn)遠(yuǎn)超過(guò)ARM即將推出的Cortex A76,也比三星的M3寬度更大。事實(shí)上,假設(shè)我們沒(méi)有看到非典型的共享端口情況,蘋果的微架構(gòu)在寬度方面似乎遠(yuǎn)遠(yuǎn)超過(guò)其他任何東西,包括桌面CPU。
SPEC2006性能:達(dá)到桌面水平
我們?cè)?a href="http://ttokpm.com/tags/ios/" target="_blank">iOS設(shè)備上嘗試SPEC已經(jīng)有一段時(shí)間了——由于各種原因,在過(guò)去的幾年里我們無(wú)法繼續(xù)嘗試SPEC。我知道,很多人都希望我們能從我們離開(kāi)的地方重新開(kāi)始,我很高興告訴大家,我花了一些時(shí)間讓SPEC2006重新投入使用。
SPEC2006是一個(gè)重要的行業(yè)標(biāo)準(zhǔn)檢查基準(zhǔn)測(cè)試,與其他工作負(fù)載的區(qū)別在于,它所處理的數(shù)據(jù)集更大,更復(fù)雜。雖然GeekBench 4已經(jīng)成為了流行的行業(yè)基準(zhǔn)測(cè)試——我對(duì)實(shí)現(xiàn)完全跨平臺(tái)基準(zhǔn)測(cè)試的努力表示贊賞——但是我們必須考慮到,工作負(fù)載的程序大小和數(shù)據(jù)大小仍然是相對(duì)重要的。因此,SPEC2006作為基準(zhǔn)測(cè)試更好,它充分展示了給定的微架構(gòu)的更多細(xì)節(jié),特別是在內(nèi)存子系統(tǒng)性能方面。
以下SPEC數(shù)據(jù)是估算值,因?yàn)樗鼈兾唇?jīng)SPEC提交和正式驗(yàn)證?;鶞?zhǔn)測(cè)試庫(kù)的編譯設(shè)置如下:
Android:工具鏈:NDK r16 LLVM編譯器;Flags:-Ofast, -mcpu=cortex-A53
iOS: 工具鏈:Xcode 10; Flags:-Ofast
在iOS上,429.mcf是一個(gè)問(wèn)題,因?yàn)閮?nèi)核內(nèi)存分配器通常拒絕分配程序需要的單獨(dú)的大型1.8GB組塊(即使是新的4GB iPhone)。我修改了基準(zhǔn)測(cè)試,只使用了一半的arc,從而將內(nèi)存占用減少到大約1GB。我在幾個(gè)平臺(tái)上測(cè)量了運(yùn)行時(shí)間的減少,還對(duì)iOS評(píng)分應(yīng)用了類似的比例因子,我估計(jì)評(píng)分的準(zhǔn)確率為+-5%。其余工作負(fù)載用手動(dòng)驗(yàn)證,并驗(yàn)證是否正確執(zhí)行。
性能測(cè)量是在人造環(huán)境中運(yùn)行的(即:用臺(tái)式風(fēng)扇冷卻手機(jī)),我們保證,在完成全套運(yùn)行所需的1-2小時(shí)內(nèi),熱量不會(huì)成為問(wèn)題。
在數(shù)據(jù)展示方面,我參考了今年早期的文章,例如我們?cè)贕alaxy S9評(píng)論中對(duì)Snapdragon 845和Exynos 9810的評(píng)估。
在衡量性能和效率時(shí),重要的是要考慮三個(gè)指標(biāo):顯然,基準(zhǔn)測(cè)試的性能和運(yùn)行時(shí)間表示在右側(cè)軸上,從右側(cè)開(kāi)始增長(zhǎng)。數(shù)據(jù)越大,SoC/CPU的性能就越好。標(biāo)簽代表SPECspeed分?jǐn)?shù)。
在左側(cè)軸上,條形圖表示給定工作負(fù)載的能量使用情況。條越長(zhǎng),意味著平臺(tái)使用的能量越多。條越短,代表平臺(tái)更節(jié)能,意味著使用的能量越少。標(biāo)簽代表平均功率(用瓦特表示),它是熱約束器件中考慮的重要次要指標(biāo),以及總能量(用焦耳表示),這是主要的效率指標(biāo)。
數(shù)據(jù)按照?qǐng)D例中的順序排列,不同顏色代表不同的SoC供應(yīng)商以及不同的代際。我列出了蘋果A12、A11、Exynos 9810(2.7和2.3GHz)、Exynos 8895、Snapdragon 845和Snapdragon 835的數(shù)據(jù)。這讓我們概述了過(guò)去兩年來(lái)所有相關(guān)的CPU微架構(gòu)。
我們從SPECint2006工作負(fù)載開(kāi)始:
在大多數(shù)工作負(fù)載下,A12的時(shí)鐘頻率比A11高5%,但我們必須記住,我們無(wú)法真正鎖定iOS設(shè)備上的頻率,所以這只是基準(zhǔn)測(cè)試期間運(yùn)行時(shí)時(shí)鐘的一個(gè)假設(shè)。在SPECint2006中,A12的表現(xiàn)平均比A11好24%。
最小的增長(zhǎng)見(jiàn)于456.hmmer和464.h264ref——它們是整套測(cè)試中兩個(gè)執(zhí)行最多的瓶頸測(cè)試。由于A12在這方面似乎并沒(méi)有什么大的變化,小幅增長(zhǎng)主要?dú)w因于更高的頻率以及緩存層次結(jié)構(gòu)的改進(jìn)。
445.gobmk的改進(jìn)非常大,達(dá)到了27%——這里的工作負(fù)載特征是存儲(chǔ)地址事件中的瓶頸以及分支錯(cuò)誤預(yù)測(cè)。我確實(shí)測(cè)量到A12在處理緩存線路的存儲(chǔ)方式方面有一些重大變化,因?yàn)榉种ьA(yù)測(cè)精度沒(méi)有顯著變化。
403.gcc的一部分、429.mcf、471.omnetpp、473.Astar和483.xalancbmk對(duì)內(nèi)存子系統(tǒng)很敏感,此時(shí)A12的性能從30%提高到42%,令人震驚。很明顯,新的緩存層次結(jié)構(gòu)和內(nèi)存子系統(tǒng)在這方面取得了很大的成效,因?yàn)樘O果實(shí)現(xiàn)了最近幾代芯片最主要的性能飛躍之一。
在衡量功率效率時(shí),我們發(fā)現(xiàn),總體而言A12提高了12%,但我們必須記住,我們說(shuō)的是最高性能時(shí)的能耗降低12%。A12展示出性能提高了24%,兩個(gè)SoC的性能/功耗曲線已經(jīng)大不相同。
在性能提升幅度最大的基準(zhǔn)測(cè)試中(即前面提到的內(nèi)存限制工作負(fù)載),我們看到功耗顯著上升。因此,盡管7nm工藝承諾增加功率,但蘋果選擇花費(fèi)的能量比新工藝節(jié)點(diǎn)節(jié)省的能量更多,因此SPECint2006的平均功率從A11的3.36W上升到A12的3.64W。
接下來(lái),我們轉(zhuǎn)到SPECfp2006,探討C和C++基準(zhǔn)測(cè)試,因?yàn)槲覀冊(cè)赬Code中沒(méi)有Fortran編譯器,而且要讓它在Android上工作非常復(fù)雜,因?yàn)樗皇荖DK的一部分,NDK有一個(gè)不推薦使用的GCC版本。
SPECfp2006有更多的內(nèi)存密集型測(cè)試,在7個(gè)測(cè)試中,只有444.namd,447.dealII和453.povray在內(nèi)存子系統(tǒng)達(dá)不到標(biāo)準(zhǔn)時(shí)看不到主要的性能回歸。
當(dāng)然,這主要有利于A12,因?yàn)镾PECfp的平均增長(zhǎng)為28%。433.milc從中脫穎而出,性能提升了75%。該基準(zhǔn)測(cè)試的特點(diǎn)是指令存儲(chǔ)受限,這又一次展示了Vortex的強(qiáng)大,我看到了很大的改進(jìn)。同樣的分析適用于450.soplex,出色的緩存層次結(jié)構(gòu)和內(nèi)存存儲(chǔ)性能的組合提高了42%的性能。
470.lbm對(duì)于蘋果CPU是一個(gè)有趣的工作負(fù)載,與ARM和三星的核心相比,它展示出了多因素性能優(yōu)勢(shì)。奇怪的是,高通的Snapdragon 820 Kryo CPU的表現(xiàn)仍然優(yōu)于最近的Android SoC。470.lbm的特點(diǎn)是最熱的代碼中有很大的循環(huán)。微架構(gòu)可以通過(guò)具有(更大的)指令循環(huán)緩沖區(qū)來(lái)優(yōu)化這樣的工作負(fù)載,在循環(huán)迭代中,核心將繞過(guò)解碼階段并從緩沖區(qū)獲取指令。蘋果的微架構(gòu)似乎有某種這樣的機(jī)制。另一種解釋是蘋果內(nèi)核的矢量執(zhí)行性能——Lbm的熱循環(huán)大量使用SIMD,而蘋果的3倍執(zhí)行吞吐量?jī)?yōu)勢(shì)也可能是性能的重要貢獻(xiàn)者。
與SPECint類似,性能躍升幅度最大的SPECfp工作負(fù)載的功耗也有所增加。433.milc的功耗從2.7W提高到4.2W,性能同時(shí)提高了75%。
總體而言,功耗從3.65W躍升至4.27W。所有測(cè)試中的整體能效都有所增加,但482.sphinx3除外,其功率增加達(dá)到A12所有SPEC工作負(fù)載的最大值5.35W。在SPECfp2006中,A12的總能耗比A11低10%。
我沒(méi)有時(shí)間回去測(cè)量A10和A9的功率,但它們對(duì)于SPEC而言一般為3W左右。我運(yùn)行了性能基準(zhǔn)測(cè)試,以下是A9到A12以及最新的Android SoC的綜合性能概述,適用于正在研究比較過(guò)去幾代蘋果的人士。
總體而言,新的A12 Vortex內(nèi)核以及SoC內(nèi)存子系統(tǒng)的架構(gòu)改進(jìn)為蘋果的新芯片提供了比蘋果的營(yíng)銷材料提到的更大的性能優(yōu)勢(shì)。與最好的Android SoC相比,無(wú)論是在性能上還是在功率效率上,蘋果的優(yōu)勢(shì)都非常明顯。蘋果的SoC比最近所有的Android SoC具有更高的能效,并且有將近兩倍的性能優(yōu)勢(shì)。如果我們將能源使用正?;?,蘋果的性能效率將領(lǐng)先3倍,對(duì)此我不會(huì)感到驚訝。
這也讓我們對(duì)今年發(fā)布的三星M3核心有了一個(gè)很好的了解,只有當(dāng)總能量在可控范圍內(nèi)時(shí),高能耗才能帶來(lái)更高的性能。在這里,Exynos 9810的能耗是去年A11的兩倍——性能赤字為55%。
與此同時(shí),ARM的Cortex A76預(yù)定在幾周內(nèi)進(jìn)入麒麟980,作為華為Mate 20的一部分。我保證我們會(huì)為新的旗艦產(chǎn)品進(jìn)行適當(dāng)?shù)臏y(cè)試,并將其添加到目前的SoC性能和效率圖表中。
令人驚訝的是,蘋果的A11和A12與目前的臺(tái)式機(jī)CPU已經(jīng)相當(dāng)接近。我還沒(méi)有機(jī)會(huì)用更具有可比性的方式運(yùn)行程序,但從我們的網(wǎng)站編輯Johan De Gelas在今年夏天早些時(shí)候提供的最新數(shù)據(jù)來(lái)看,我們看到A12在單線程性能方面優(yōu)于中等速度的Skylake CPU。當(dāng)然,我們要考慮到編譯器因素和各種頻率問(wèn)題,但我們現(xiàn)在討論的仍然是非常小的差距,直到蘋果的移動(dòng)SoC在ST性能方面優(yōu)于最快的桌面CPU。在接下來(lái)的幾個(gè)月里,在這個(gè)話題上得到更準(zhǔn)確的數(shù)據(jù)將是一件有趣的事情。
系統(tǒng)性能
雖然綜合測(cè)試性能是一回事,并且希望我們能夠很好地使用SPEC,但實(shí)際使用情況下的交互性能表現(xiàn)不同,而且軟件在測(cè)試性能方面可以發(fā)揮重要作用。
我必須承認(rèn),我們的iOS系統(tǒng)性能測(cè)試套件看起來(lái)非常糟糕:我們只剩下了web瀏覽器測(cè)試,因?yàn)閕OS缺乏有意義的替代品,比如在Android的PCMark測(cè)試工具。
Speedometer 2.0是最新的行業(yè)標(biāo)準(zhǔn)JavaScript基準(zhǔn)測(cè)試,可測(cè)試最常見(jiàn)和最現(xiàn)代的JS框架性能。
A12與A11相比性能大幅躍升了31%,再次指出蘋果廣告中的性能數(shù)據(jù)遠(yuǎn)遠(yuǎn)低于新款芯片。
我們還看到iOS 12在上一代設(shè)備上的小幅提升。這不僅得益于iOS調(diào)度器處理負(fù)載的方式發(fā)生了變化,還得益于蘋果使用的每個(gè)不斷發(fā)展的JS引擎的進(jìn)一步改進(jìn)。
WebXPRT 3也是一種瀏覽器測(cè)試,但是它的工作負(fù)載更加廣泛和多樣化,包含了大量的處理測(cè)試。在這里,iPhone XS比iPhone X顯示出11%的優(yōu)勢(shì),比Speedometer 2.0測(cè)試的優(yōu)勢(shì)稍小。
此前的設(shè)備也看到了穩(wěn)定的性能提升,iPhone X的得分從134分上升到147分,即10%。與iPhone 7的A10相比有33%的大幅提升,我們稍后會(huì)詳細(xì)介紹。
iOS12調(diào)度器加載斜坡分析
蘋果公司承諾iOS12系統(tǒng)將會(huì)有顯著的性能提升,這要?dú)w功于他們的新調(diào)度器計(jì)算單個(gè)任務(wù)負(fù)載的方式。操作系統(tǒng)的內(nèi)核調(diào)度器跟蹤線程的執(zhí)行時(shí)間,并將其聚合為一個(gè)利用率指標(biāo),然后由DVFS機(jī)制等使用。決定這種負(fù)載如何隨時(shí)間變化的算法通常是一個(gè)簡(jiǎn)單的軟件決策——它可以根據(jù)供應(yīng)商認(rèn)為合適的方式進(jìn)行調(diào)整和設(shè)計(jì)。
因?yàn)閕OS的內(nèi)核是閉源的,所以我們無(wú)法真正看到變化是什么,但我們可以測(cè)量它們的效果。一個(gè)相對(duì)簡(jiǎn)單的方法是跟蹤工作負(fù)載中從空閑到最高性能的頻率。在iOS12系統(tǒng)升級(jí)前后,我在iphone 6到X(和XS)上進(jìn)行了這個(gè)測(cè)試。
我們從帶有A8芯片組的iPhone 6開(kāi)始,我在iOS11上得到了一些奇怪的結(jié)果,因?yàn)閺目臻e到最高性能的上升特性非常不尋常。我重復(fù)了幾次,但結(jié)果還是一樣。A8的CPU在空閑時(shí)為400MHz,并在此停留了110ms,直到它躍至600MHz,然后又停留了10ms,進(jìn)入最高性能時(shí)的1400MHz。
iOS12系統(tǒng)展示了一種更階梯式的特性,更早的時(shí)候就開(kāi)始上升,并在90ms后達(dá)到最高性能。
iPhone 6S在iOS11上有明顯不同的上升特性,而A9芯片的DVFS非常慢。在這里,CPU總共需要435ms才能達(dá)到其最大頻率。隨著iOS12的更新,這個(gè)時(shí)間大幅縮減到80ms,大大提高了在更短的交互工作負(fù)載下的性能。
我很驚訝地看到調(diào)度器以前的速度之慢,這正是目前三星Exynos芯片組以及其他不優(yōu)化調(diào)度器的Android SoC的問(wèn)題。雖然硬件性能可能存在,但它并沒(méi)有在短時(shí)間交互工作負(fù)載中表現(xiàn)出來(lái),因?yàn)檎{(diào)度器負(fù)載跟蹤算法太慢了。
A10與A9有類似的缺點(diǎn),達(dá)到最高性能的時(shí)間超過(guò)400ms。在iOS12系統(tǒng)中,iPhone 7將這個(gè)速度減半,約為210ms。與A9相比,A10在這方面更為保守,這很奇怪,但這可能與小核心有關(guān)。
在這張圖中,我們還可以看到小核心Zephyr的頻率,它們從400MHz開(kāi)始,在1100MHz達(dá)到峰值。圖中的頻率回落到758MHz,因?yàn)榇藭r(shí)有一個(gè)核心切換到大核心,然后它們的頻率繼續(xù)上升,直到達(dá)到最高性能。
在蘋果A11上,我沒(méi)有看到任何重大變化,實(shí)際上任何差異都可能是測(cè)量不同固件之間的隨機(jī)噪聲。在iOS11和iOS12中,A11在大約105ms內(nèi)上升到全頻。請(qǐng)注意,此圖中的x軸比之前的圖短很多。
最后,在iPhone XS的A12芯片組上,我們無(wú)法測(cè)量任何預(yù)更新和更新后的特性,因?yàn)閕Phone XS自帶了iOS12。此時(shí),我們?cè)俅慰吹剿?08ms后達(dá)到了最高性能,我們看到了從Tempest核心轉(zhuǎn)向Vortex核心的趨勢(shì)。
總之,我希望這是iOS12給舊設(shè)備帶來(lái)的性能差異的最好和清晰的展示。
就iPhone XS而言,我對(duì)它的性能沒(méi)有任何質(zhì)疑,它的速度很快。我不得不承認(rèn)我仍然是Android用戶,并且我的手機(jī)完全關(guān)閉動(dòng)畫(huà),因?yàn)槲野l(fā)現(xiàn)這會(huì)阻礙設(shè)備的速度。iOS無(wú)法完全關(guān)閉動(dòng)畫(huà),雖然這只是我的主觀個(gè)人觀點(diǎn),但我發(fā)現(xiàn)它們嚴(yán)重妨礙了手機(jī)的真實(shí)性能。在非交互式工作負(fù)載中,iPhone XS只是在沒(méi)有任何問(wèn)題或異常的情況下完成了測(cè)試。
GPU性能
A12的GPU的性能提升是演講的最大亮點(diǎn)之一,與A11的GPU相比,性能提升了50%。蘋果通過(guò)“簡(jiǎn)單地”在A11的三個(gè)GPU上添加第四個(gè)GPU核心,以及在GPU上引入內(nèi)存壓縮實(shí)現(xiàn)了這一目標(biāo)。我認(rèn)為,內(nèi)存壓縮是最有助于提高GPU的微架構(gòu)性能的因素,因?yàn)樗鼘?shí)際上是巨大的一次性轉(zhuǎn)變,無(wú)可否認(rèn),蘋果花了很長(zhǎng)時(shí)間才完成。
在進(jìn)入基準(zhǔn)測(cè)試之前,我想提一點(diǎn),最新的蘋果 GPU的峰值性能和峰值功耗是一個(gè)問(wèn)題。我們已經(jīng)看到,蘋果從一段時(shí)間內(nèi)的持續(xù)性能提升轉(zhuǎn)變?yōu)閺腟oC的峰值性能下降到實(shí)際性能下降的最糟糕的“罪犯”之一。這是有原因的,但我很快就會(huì)講到。
3DMark物理測(cè)試主要是一個(gè)CPU限制測(cè)試,它也強(qiáng)調(diào)整體平臺(tái)功率限制,而GPU也正在工作。我們看到,iPhone XS和A12相比于去年的iPhone取得了很大的進(jìn)步。這是一個(gè)在過(guò)去對(duì)蘋果CPU而言特別有問(wèn)題的測(cè)試,然而這個(gè)微架構(gòu)的小問(wèn)題似乎在A11和Monsoon核心中得到了解決。Vortex核心以及總是在提高的SoC功率效率進(jìn)一步提高了性能,最終在這項(xiàng)特定測(cè)試中匹配了ARM的核心。
在3DMark測(cè)試的圖形部分,iPhone XS的持續(xù)性能比去年的iPhone X提高了41%。在這個(gè)特殊的測(cè)試中,OnePlus 6更慷慨大方的熱敏元件仍然讓Snapdragon 845比新芯片表現(xiàn)更好。
在峰值性能方面,我在3DMark中遇到了一些大問(wèn)題:我完全無(wú)法在iPhone XS或XS Max保持涼爽的情況下完成一次運(yùn)行。如果設(shè)備足夠涼爽,GPU會(huì)提高到非常高的性能,甚至?xí)罎?。我一直可以一遍遍地重現(xiàn)這一現(xiàn)象。我嘗試在測(cè)試中測(cè)量功率,平臺(tái)的瞬時(shí)平均功率為7-8瓦。對(duì)于高于8的數(shù)值,我懷疑這種測(cè)量方法沒(méi)能記錄下來(lái)。GPU崩潰意味著在運(yùn)行過(guò)程中,電源輸出無(wú)法提供必要的瞬態(tài)電流,我們將看到電壓下降,引起GPU崩潰。
在幾次嘗試中多次重復(fù)測(cè)試時(shí),我加熱SoC,直到它決定以較低的GPU頻率啟動(dòng),這便可以成功完成測(cè)試。
GFXBench測(cè)試
Kishonti最近發(fā)布了新的GFXBench 5 Aztec Ruins測(cè)試,它為我們的測(cè)試套件帶來(lái)了更新、更現(xiàn)代、更復(fù)雜的工作負(fù)載。在理想的情況下,我們將測(cè)試真正的游戲,但這在移動(dòng)設(shè)備上令人難以置信,因?yàn)榛旧蠜](méi)有哪款游戲內(nèi)置基準(zhǔn)測(cè)試模式。有一些工具可以收集fps值,但這里最大的問(wèn)題是手動(dòng)玩游戲時(shí)工作負(fù)載的可重復(fù)性,這也是當(dāng)今許多在線游戲的一個(gè)大問(wèn)題。
我仍然認(rèn)為,人造基準(zhǔn)測(cè)試在這里有一個(gè)非常穩(wěn)固的位置,只要你理解基準(zhǔn)測(cè)試的特性。Kishonti的GFXBench多年來(lái)一直是行業(yè)標(biāo)準(zhǔn),而新的Aztec測(cè)試給了我們不同的工作量。新的測(cè)試著色更濃,利用更復(fù)雜的效果來(lái)強(qiáng)調(diào)GPU的運(yùn)算能力。盡管上表中的數(shù)據(jù)是在Mali G72 GPU上收集的,但它仍能夠提供對(duì)其他架構(gòu)的總體預(yù)期。新的測(cè)試由于其更大的紋理,因此也非常需要帶寬。
一般而言,游戲與基準(zhǔn)測(cè)試的關(guān)聯(lián)具體取決于各種圖形工作負(fù)載的百分比、是否有較大的填充或粗重的紋理、是否具有復(fù)雜的幾何形狀、或僅僅是著色效果越來(lái)越復(fù)雜,這就需要GPU的運(yùn)算能力。
普通模式的Aztec Ruins是一項(xiàng)要求不高的新測(cè)試,新的蘋果A12手機(jī)展示出了極高的峰值性能,比去年的iPhone高出51%。
在持續(xù)表現(xiàn)方面,數(shù)字在幾分鐘后迅速下降,并在隨后進(jìn)一步穩(wěn)定下來(lái)。此時(shí),iPhone XS的性能比iPhone X高出61%。蘋果A12也能夠在持續(xù)表現(xiàn)上以45%的優(yōu)勢(shì)擊敗目前的領(lǐng)導(dǎo)者OnePlus 6中的Snapdragon 845。
在Aztec Ruins的高級(jí)模式中,我們看到了一個(gè)驚人相似的性能排名。iPhone XS的峰值性能又一次非常出色,但重要的是持續(xù)的分?jǐn)?shù)。此時(shí),iPhone XS性能比iPhone X高61%。OnePlus 6的Snapdragon 845的性能差值在這里降低到31%,比普通模式略低一點(diǎn),我們可能在微架構(gòu)的某些方面遇到一些瓶頸。
GPU功率
蘋果設(shè)備的平臺(tái)和GPU功能一直是我想要發(fā)布的東西,但實(shí)現(xiàn)起來(lái)很復(fù)雜。我得到了新iPhone XS的合理數(shù)據(jù),但是舊的SoC數(shù)據(jù)仍然需要等待機(jī)會(huì)。
我沒(méi)有時(shí)間在各種設(shè)備上測(cè)試Aztec Ruins,所以我們?nèi)匀灰蕾囉跇?biāo)準(zhǔn)的Manhattan 3.1和T-Rex。首先,我們先列出測(cè)試結(jié)果:
同樣,在Manhattan 3.1中,新款iPhone XS的性能比iPhone X高出75%。這里的改進(jìn)不僅僅是因?yàn)镚PU的微架構(gòu)的改進(jìn)、擁有一個(gè)額外的核心,以及SoC新工藝節(jié)點(diǎn),還因?yàn)樾碌膬?nèi)存壓縮減少了外部DRAM的能耗,它在帶寬繁重的3D工作負(fù)載中可占系統(tǒng)功耗的20-30%。DRAM上的功率節(jié)省意味著GPU和SoC可以使用更多的能量,從而提高了性能。
這里的功率數(shù)字是系統(tǒng)的有效功率,表示總設(shè)備功率減去給定工作負(fù)載情況下的空閑功率(其中包括屏幕功率)。
在峰值性能下,當(dāng)設(shè)備在22°C環(huán)境溫度下冷卻時(shí),蘋果A12的GPU會(huì)非常耗電,功率達(dá)到6W。這并不是GPU的平均峰值,因?yàn)槲蚁惹疤岬竭^(guò)3DMark達(dá)到7.5W左右(在崩潰之前)。
即使在這個(gè)高功率數(shù)字下,A12的效率也超過(guò)了其他所有SoC。雖然這頗為有趣,但強(qiáng)調(diào)蘋果的節(jié)流特性是非常重要的。在僅僅3分鐘或3個(gè)基準(zhǔn)測(cè)試運(yùn)行后,手機(jī)將節(jié)流約25%,達(dá)到我在效率表中所說(shuō)的“溫暖”狀態(tài)。功率達(dá)到合理的3.79W。值得注意的是,電源效率并沒(méi)有大幅提高,只是比峰值提高了16%。這意味著該平臺(tái)的功率曲線相對(duì)較低,并且性能受到熱量的限制。
接下來(lái)看T-Rex,iPhone XS再次展示了61%的持續(xù)性能提升。
我們看到,T-Rex的功耗與Manhattan的功耗一致,低溫設(shè)備的峰值功率達(dá)到6W多一點(diǎn)。在運(yùn)行3次之后,峰值功率再次降低到4W以下,性能下降了28%。這里的效率并沒(méi)有太大的提高,再次表明功率曲線相對(duì)較低。
需要注意的是,“溫暖”運(yùn)行的功率度量并不代表持續(xù)的性能,我只是想在峰值數(shù)據(jù)旁邊添加一個(gè)額外的數(shù)據(jù)點(diǎn)。大多數(shù)設(shè)備的持續(xù)功率在3-3.5W范圍內(nèi)。
為什么蘋果公司在峰值性能和持續(xù)性能之間存在如此巨大的差異?先前,iPhone 6和A8發(fā)布的時(shí)候,持續(xù)性能便是蘋果的主要關(guān)注點(diǎn)之一。這種變化是由于日常GPU用例發(fā)生了變化,以及蘋果如何將GPU用于與3D無(wú)關(guān)的工作負(fù)載。
Apple大量使用GPU計(jì)算,用于各種用途,例如app中的一般硬件加速、使用GPU計(jì)算進(jìn)行相機(jī)圖像處理。在這些用例中,持續(xù)的性能并不重要,因?yàn)樗鼈兪鞘聞?wù)性工作負(fù)載,這意味著需要盡快處理的固定工作負(fù)載。
在過(guò)去的幾年里,Android GPU計(jì)算一直是一場(chǎng)徹頭徹尾的災(zāi)難,我主要是聲討谷歌沒(méi)有在AOSP中支持OpenCL,這使得供應(yīng)商對(duì)OpenCL的支持非常零散。RenderScript從未獲得太多的關(guān)注,因?yàn)樗荒鼙WC性能。Android設(shè)備和SoC的碎片化意味著在第三方app中基本不存在GPU計(jì)算(如有錯(cuò)誤,敬請(qǐng)指正?。?/p>
蘋果對(duì)API棧的垂直集成和嚴(yán)格控制意味著GPU計(jì)算成為了現(xiàn)實(shí),而事務(wù)性GPU峰值性能是值得考慮的指標(biāo)。
現(xiàn)在,雖然這確實(shí)解釋了節(jié)流的原因,但我仍然認(rèn)為蘋果可以做一些熱優(yōu)化。我在iPhone XS上玩了Fortnite游戲,手機(jī)的發(fā)熱讓我不是很喜歡。此時(shí),必須有某種方式來(lái)讓具有持續(xù)性能特征的游戲和app切實(shí)從GPU開(kāi)始限制這種持續(xù)的性能狀態(tài)。
除了熱性能和峰值性能的考慮因素以外,iPhone XS和XS Max由于新的A12 SoC,展示出業(yè)界領(lǐng)先的性能和效率,并且目前是最好的手機(jī)游戲平臺(tái)。
-
芯片
+關(guān)注
關(guān)注
452文章
50224瀏覽量
420992 -
高功率
+關(guān)注
關(guān)注
1文章
187瀏覽量
18384 -
調(diào)度器
+關(guān)注
關(guān)注
0文章
98瀏覽量
5232
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論