相信大家都已經知道,蘋果在最新一場秋季發布會中,宣告了全新的MacBook產品。新MacBook換用了蘋果自研的基于ARM架構的M1芯片,蘋果從X86陣營轉向,投入了ARM的懷抱,
蘋果MacBook換用ARM芯片
在傳統觀念中,ARM是用于移動平臺的架構,和桌面的X86芯片相比,ARM芯片的能效更高,但性能羸弱,這次蘋果MacBook換用ARM,同時macOS 11仍對以往基于X86 macOS開發的軟體兼容,這就讓很多朋友感到困惑——用新的MacBook跑當前的X86軟體,到底會不會卡?
之前使用ARM芯片的Surface平板,運行X86軟體效果并不理想,MacBook會重蹈覆轍嗎?
這種擔心是有道理的。在此之前,微軟已經做過了這方面的嘗試,微軟推出了使用ARM芯片的Surface Pro X平板電腦,兼容X86的Win10軟體。然而人們發現,體驗并不理想,傳統軟體運行起來緩慢遲鈍,換用ARM芯片的MacBook會不會有這樣的問題?這就來分析一下,
MacBook的ARM芯片足夠強嗎?
新MacBook跑舊軟體到底慢不慢,最關鍵的因素自然是新的M1芯片,人們普遍認為,ARM芯片的性能水平無法和X86比肩,畢竟ARM是簡單指令集RISC而X86是復雜指令集CISC,復雜指令集自然強大得多,但事實上這是一個誤會,
在規模上,蘋果M1芯片足以和頂尖的X86桌面處理器并駕齊驅
CPU發展到今天,RISC和CISC的邊界其實已經相對模糊了。在當前的X86處理器中,復雜指令也是會分拆成為類簡單指令來執行的。
而在規模上,蘋果設計的ARM芯片已經追趕上了X86,例如A14的芯片面積為88mm,共118億個晶體管,而AMD最新發布的Zen3處理器中一個CCD的面積為80.7mm,共41.5億個晶體管。考慮到A14還封裝了AI模塊、GPU等,A14芯片使用的是5nm工藝,而5800X使用的是7nm工藝,事實上大家的CPU單元部分,規模已經是并駕齊驅,
了解了規模,再來看看性能實測,這里引用Anandtech的數據,Anandtech使用了行業權威性能測試套件SPEC 2006來對比測試蘋果A14、AMD Zen3以及英特爾Tiger Lake的性能,結果如下,
首先是整數性能,可以看到A14并不落下風,
再來看看浮點性能,A14和Zen3要明顯領先于Tiger Lake,
Anandtech還使用了大家非常熟悉的Geekbench來測試,結果如下,
可以看到,在單線程性能上,A14的確已經能追上當前頂級的X86處理器。這次蘋果MacBook使用的M1處理器,架構和A14相似,但規格更高,晶體管規模達到了160億個,增加了兩個大核心,在性能上方面是可以令人放心的。
其實到了這里,我們也不難找出為什么Surface Pro X運行緩慢的原因,Surface Pro X使用的是高通SQ1/SQ2處理器,這基本是驍龍855的馬甲,而即使是驍龍865+,對比A14以及最新的X86處理器,性能也依然不太夠看……
此情此景下,加之Win10 on ARM較低下的指令翻譯效率,Surface Pro X運行X86軟體的體驗就不甚理想了。是的,到了這里大家應該也能看到ARM處理器運行X86軟體,除了自身性能之外的其他影響因素了——操作系統的指令翻譯效率。
macOS 11的指令翻譯效率高嗎?
X86軟體想要在ARM芯片上運行,需要進行指令翻譯,雖然ARM指令集并不意味著性能低下,但畢竟它和X86還是不同的,指令需要翻譯過來,才能讓ARM芯片執行,
在今年的WWDC大會上,蘋果已經公布了指令翻譯的方案。蘋果宣布,將會為macOS平滑過渡到ARM平臺,推出Rosetta 2中間轉換層。如果你是老果粉,對于Rosetta這個詞一定很熟悉——蘋果Mac電腦當年從IBM PowerPC架構,遷移到Intel X86平臺,所使用的轉換層正是Rosetta,
Mac遷移平臺這事,蘋果已經干過一次了,當年Mac從PPC遷移到X86的兼容層被稱為“Rosetta”
Rosetta 2的作用在于,它通過指令翻譯,可以讓ARM平臺的macOS,直接運行絕大部分的X86軟體。從蘋果的介紹來看,Rosetta 2的性能還相當不錯,它并不是在軟體運行的時候,才翻譯指令的,而是在軟體安裝時就做好了轉換。
當然,這也并非說Rosetta 2可以實現性能完全無損,它對AVX指令兼容并不好,如果X86軟體依賴AVX乃至AVX2,那么在ARM平臺上由于沒有對應的高性能指令,運行效率會有明顯下滑。并不是所有的軟體都會用到AVX指令集,總體來說,Rosetta 2的性能應該還是可以接受的,
這次Mac從X86遷移到ARM,Rosetta 2對舊有X86軟體的兼容也起著至關重要的作用
至于Rosetta 2的實際表現會如何?我們可以從兩方面來衡量,
首先是參考Rosetta,蘋果從PowerPC遷移到X86時,也使用了類似方案,當年并沒有太多人抱怨Rosetta性能低下,我們自然也可以對Rosetta 2抱有期待。
其次是參考開發者的實測,實際上,蘋果早前就已經推出了基于A12Z芯片的Mac mini開發機,開發者們很早就能接觸到Rosetta 2,但到目前為止并沒有什么關于Rosetta 2性能低下的爆料,可見Rosetta 2的實戰表現應該相當不錯,
MacBook換用ARM之前,ARM的Mac mini開發機早已經有了,沒有傳出性能方面的負面消息
到了這里,我們又可以來分析一下為什么Surface Pro X的表現會如此糟糕了。在Surface Pro X的Windows 10 on ARM中運行X86軟體,是邊轉碼邊運行的,并不像蘋果Rosetta 2那樣在安裝時作好轉碼工作,運行時無需再次轉碼,加上性能較弱的SQ1/SQ2處理器,運行X86軟體拖慢卡頓也就在情理之中了。
總結
到了這里,相信大家都可以得出結論了,MacBook使用的M1處理器性能非常強大,足以和頂尖的X86處理器同臺競技;而蘋果又在macOS 11中準備了高效的Rosetta 2指令翻譯方案,因此對于能否流暢運行之前的X86軟體,大家無需太過擔心,
根據蘋果的說法,情況要比筆者文中分析的更加樂觀。蘋果宣稱,M1要比之前MacBook所使用的X86處理器性能高1倍,同時功耗僅為25%,從各種角度來看,新的MacBook都非常值得期待,一起來靜待上市實測吧。
新MacBook性能真的像蘋果公布的那么勁爆么?