談談 Apple M1 芯片、ARM 以及 ARM Mac

2020 年 11 月 11 日,蘋果在本年度最后一次 Apple Events 上發(fā)布了全新的 ARM 芯片 M1、以及三款搭載了 M1 的 Mac:MacBook Air、MacBook Pro 13′ 和 Mac Mini。在 WWDC 2020 庫克宣布 Apple Silicon 后,這次 Apple Events 再一次掀起了熱潮,不少 KOL 都把 M1 奉若神明,不少人也不以為然。本文通過 8 個問題來簡單聊聊 M1 和 ARM Mac。

M1 芯片的性能如何?

本文寫就時,搭載 M1 的 Mac 尚未開始發(fā)貨,我們能看到的只有 GeekBench 上流出的跑分。所以,讓我們先從跑分開始看起?

3

哇!Geekbench 跑分數(shù)據(jù)告訴我們,M1 和 A14X 可以直接打敗 5950X、直接把 Tiger Lake 摁在地上摩擦?這已經(jīng)不是踩爆 Intel 的牙膏了好伐,這是已經(jīng)快進到 AMD 原地倒閉了好伐!給 Apple 倒一杯卡布奇諾好嗎,快給 Apple 倒一杯卡布奇諾!

4

啊,什么?這 Geekbench 還說 Intel 的 Tiger Lake 可以吊打 4700U?嗯?嗯~?

1

過了一個小時 Geekbench 就更新了排名數(shù)據(jù),所以,現(xiàn)在 5950X 和 5900X 的分數(shù)又高過 M1 和 A14X 了?

看了上面這三張圖,你應該大致知道像 Geekbench 這樣的跑分純屬娛樂了吧?!副娝苤古芊植淮碚鎸嶓w驗。所以我們還是看看蘋果發(fā)布會上給的圖表吧:

2

什么,蘋果竟然敢說自己的 M1 比最先進的 PC 芯片的性能還要強大 …… 哦,我眼睛業(yè)障重啊,這圖表的標題后面、還跟著一個「Per Watt(每瓦)」啊。

5

蘋果的意思是,自從 Mac 實裝了 M1、Mac 的功耗比直接大幅提升,蘋果并沒有直接說 M1 性能有多好嘛!你看看蘇媽在 AMD 發(fā)布會上曬的性能圖表、條形圖都快超到會場外面去了,蘋果你在發(fā)布會上搞這么含蓄干什么嘛!

如果蘋果在發(fā)布會上只強調能耗比有多么高、功耗有多么低,絲毫不提 M1 的絕對性能,甚至沒有透露 M1 的頻率,對于 M1 芯片的能耐和優(yōu)勢相信讀者也有大概的猜測了。至于蘋果在發(fā)布會上展示搭載了 M1 的 Mac 比往年的同系列 Mac、CPU 性能提升超過 2.8 倍乃至 3.5 倍、GPU 性能提升則有 5 至 6 倍,我會留給后面「如何評價這率先搭載 M1 的三款 Mac?」問題再談。

對 ARM 架構的處理器性能的一瞥

從一開始我就沒有懷疑蘋果是否能實現(xiàn)用于桌面端的 ARM 芯片。蘋果操刀數(shù)款移動 CPU 的經(jīng)歷,駕馭 ARM 自然是輕車熟路的。

那么 ARM 有什么優(yōu)勢呢?在手機和平板上 ARM 大放異彩,近幾年幾乎再沒有看到搭載 X86 的智能手機了;不少 IoT 設備、單片機也開始積極使用 ARM 架構;而桌面端 PC 使用 ARM 的卻少之又少。從市場上來看,ARM 架構似乎更適用于低功耗、不強調性能和 CPU 密集型計算的平臺,但這并不是意味著 ARM 架構本身沒有用于 CPU 密集型計算的潛力。今年 6 月 22 日刷新了全球超級計算機的「TOP500」榜單、成為第一的是來自日本理化學研究所(RIKEN)的「Fugaku」(富岳)超級計算機,峰值計算速度達到 513.9 PFlops。而 Fugaku 搭載的富士通的 7nm 48C SoC 正是 ARM 架構。

作為半導體行業(yè)的門外漢,我沒有資格談論 X86 的 CISC 和 ARM、MIPS 等的 RISC 之間孰優(yōu)孰劣。但從歷史的長河里,我們還是能從 ARM 代替 X86 的企圖中略窺一二的,其中最接近成功的一次來自 Cloudflare。2017 年 8 月,Cloudflare 嘗試從 Intel Skylake 的處理器(E5-2630 v4)切換到由高通提供的 Centriq 平臺。從數(shù)據(jù)上來看,高通提供的平臺在當時非常有吸引力:相比 Intel Skylake 的 的 12C24T 2.1GHz,高通 Centriq 平臺搭載的 Falkor 核心達到了 46C46T 2.5GHz;相比 Intel 的 170W 的 TDP、高通 Falkor 的 TDP 只有 120W;與 Intel 的 AVX512 指令集對應的,高通也有自己的 NEON 指令集。

雖然眾多 Linux 發(fā)行版和依賴庫都提供有 ARM64 版本,但是當軟件時,Cloudflare 犯了難。Cloudflare 高度依賴基于 NGINX 開發(fā)的 Web Server。雖然 NGINX 本身支持 ARM64,但是 NGINX 同時使用了大量的庫如用于 gzip 壓縮的 zlib 和用于 TLS 的 BoringSSL;而且 Cloudflare 自身還高度依賴來自 OpenResty 的 lua-nginx-module,以及與之對應的 LuauJIT,但不幸的是 LuaJIT 在當時并不支持 ARM64;除此以外,Cloudflare 許多技術還基于用 Go 編寫的 RRDNS,在當時也沒有 ARM64 的版本。

除此以外,Cloudflare 在使用 Intel 和 Falkor 進行 OpenSSL 性能基準測試中發(fā)現(xiàn),OpenSSL 公鑰交換的性能高度依賴單核 CPU 頻率,因此在測試中 Broadwell 竟超過 Skylake 勝出、而 Falkor 排在了墊底的位置;在對稱密鑰性能方面,Skylake 由于 AVX512 而遙遙領先(期間 CPU 頻率甚至維持在 1.4GHz),Broadwell 由于只有 AVX2 落后于第二,而 NEON 使高通再次墊了底。而在 Cloudflare 展開的其它性能測試,如 gzip 壓縮性能測試、brotli 壓縮性能測試、LUAJIT 性能測試,以及 Go 的 Crypto 庫、gzip 庫、Go 正則表達式與字符串操作性能測試中,高通的 Falkor 都遠遠落后,在不少測試中性能甚至只有 Skylake 和 Broadwell 的百分之一。你可以在 Cloudflare 博客中找到他們的性能測試結果。隨后,Cloudflare 的數(shù)據(jù)中心仍舊采用基于 Intel X86 的服務器,直到今年三月,Cloudflare 將 AMD EPYC 引入了他們的新一代服務器,雖然 Cloudflare 對 ARM64 滿懷信心,但是他們的基礎設施依然是基于 X86 的。

這并不是說 ARM 具有天生的性能劣勢(再看看「Fugaku」超算),而是絕大部分行業(yè)的程序、甚至是一些編程語言都不是為 ARM 設計、針對 ARM 優(yōu)化的。優(yōu)化軟件使其能夠讓 ARM 的硬件完整發(fā)揮出完整的性能,還有非常漫長的一段路要走。

搭載了 M1 的 Mac 能否運行 Windows?

相比之前的長篇大論,這個問題的答案就簡單多了 —— 「幾乎不可能」,或者就是「不可能」。

ACPI(Advanced Configuration and Power Interface,高級配置與電源接口)最早早期 1997 年由 Intel、微軟、東芝共同提出,后來鳳凰科技(做 BIOS 那個)和惠普先后加入規(guī)范制定中,自 2006 年起規(guī)范制定的工作被交給了 UEFI 社區(qū)。Windows 98 是第一個支持 ACPI 的操作系統(tǒng),Windows Vista 以后的 Windows 則要求電腦 必須支持 ACPI;Linux 雖然不需要 ACPI 也可以運行,但是在現(xiàn)代設備上禁用 ACPI 將會導致絕大部分硬件無法運行;就連 Android 智能設備中也內置了一個精簡的 ACPI;2005 年蘋果將 Mac 從 PowerPC 架構遷移到 Intel 架構(相關的故事我在另一篇文章「黑蘋果的歷史」中有詳細介紹),Mac 也開始采用 ACPI。但是搭載了 iOS 的 iPhone、iPad 并沒有 ACPI,蘋果的智能移動設備完全使用自己的私有架構,使用名為「iBoot」的 Bootloader。

從 WWDC 2020 上發(fā)布的 ARM DTK 上,通過 IORegistryExplorer 上我們可以發(fā)現(xiàn)運行 macOS Big Sur for ARM 的 DTK 上完全沒有 ACPI。我們因此可以猜測,搭載 M1 的 Mac 也一樣不存在 ACPI、使用和 iPhone、iPad 一樣的 IBoot 作為 Bootloader。如果是這樣的話,搭載 M1 的 Mac 上是 幾乎沒有可能 運行 Windows 的,甚至運行 Linux 都將非常受限。雖然不排除蘋果為 ARM Mac 增加 ACPI 兼容層的可能,但是考慮到 WWDC 2020 和本次 Apple Events 上都對 BootCamp 緘口不言,基本上已經(jīng)確定了本次發(fā)布的這三款搭載 M1 的 Mac 是絕無可能再運行 Windows 了。

如果搭載 M1 的 Mac 幾乎沒有可能直接運行 Windows,那么虛擬機呢?

相比在 X86 上提供的虛擬機增強 Feature Flag,為 ARM 提供虛擬化技術要有趣一些。ARM 虛擬化需要將 Hypervisor 插入到 Exception Level 2,然后再在 TrustZone 上提供虛擬化的功能,說人話就是 ARM 的虛擬化是在架構層面上實現(xiàn)的,因此蘋果的 M1 如果要實現(xiàn)虛擬化并不難。但是考慮到蘋果現(xiàn)在從硬件到系統(tǒng)都實現(xiàn)了完整的控制,是否提供虛擬化功能完全由蘋果控制,如果蘋果不啟用,誰都無法繞過限制。

截止到本文寫就,Parallels Desktop 完全無法在 ARM Mac 上運行虛擬機,但是 Parallels Desktop 已經(jīng)著手對新版本的活躍開發(fā)了。考慮到虛擬機的 ACPI 實現(xiàn)和宿主機是完全獨立的,只要蘋果開放虛擬化,在 ARM Mac 上運行虛擬機是完全可行的。但是,蘋果是否會選擇開放虛擬化,又和蘋果的目標用戶戰(zhàn)略、M1 本身的性能是相關的。

搭載了 M1 的 Mac 能否運行 PhotoShop?

這個問題的答案在發(fā)布會上有了明確的解答,我們完全無需猜測:「現(xiàn)在不行,不過明年就會有了」。

在 WWDC 2020 上,庫克就在 ARM DTK 上演示了瑪雅的運行,但是對 Adobe Photoshop 卻一筆帶過、表示「仍在適配中」。而在這次 Apple Events 上,蘋果軟件部門的 SVP 克雷格·費德里吉是這么介紹的:

And Adobe is bringing universal version of their Apps, staring with Lightroom next month, and other collection of apps including Photoshop early next year.

而且 Adobe 也開始帶來他們的通用應用,將從下個月的 Lightroom 開始,而包括 Photoshop 在內的其它應用(的 ARM 版本)則會在明年年初到來。

7

那么,為什么大部分應用都可以很快地發(fā)布 Intel、ARM 通用版本,而 Adobe 全家桶卻需要再等好幾個月?因為 Adobe 從 2019 年開始大部分應用都高度依賴基于 Intel 特殊數(shù)學函數(shù)庫 —— Intel Math Kernel Library(intel-mkl),以及其它一些 Intel 特殊指令集用于硬件加速(涉及到的有 MXMCore、FastCore、CameraRAW 等)。因此即使在搭載了同為 X86 的 AMD 處理器上安裝黑蘋果,使用 Photoshop 的某些功能也會導致閃退甚至 Kernel Panic;同理,AMD 黑蘋果無法運行 MatLab,或者即使能夠運行、運算速度也非常緩慢,也是由于缺乏 intel-mkl 導致的。搭載了 M1 芯片的 Mac 自然也無法調用 intel-mkl 庫,因此 Adobe 需要幾乎重寫所有的功能實現(xiàn),才能讓他們的軟件在 ARM Mac 上流暢運行。

如何評價率先搭載 M1 的三款 Mac?

在 Apple Events 上,蘋果率先發(fā)布了三款搭載了 M1 的 Mac,其中搭載了 M1 的 MacBook Air 相比上一代搭載了 Intel i7 處理器的 MacBook Air(2020 年 3 月推出),CPU 性能提升了 3.5 倍、GPU 圖形性能提升了 5 倍。但是,這是和哪一款 Intel i7 對比的呢?上市于 Q2’20 的 i7-1060NG7、Ice Lake、10nm、基礎頻率 1.20GHz、搭載的是 Iris Plus 核顯、TDP 10W。

8

那 Mac Mini 呢?蘋果比表示搭載了 M1 的 Mac Mini 相比上一代搭載了 Intel 處理器的 Mac Mini,CPU 性能提升了 3 倍、GPU 圖形性能提升了 6 倍。那么在蘋果官網(wǎng)的腳注里寫的是和哪一款 Mac Mini 進行的對比呢?對比的是于 2018 年發(fā)布的 Mac Mini,搭載了上市于 Q3’18 的 i3-8100B、Coffee Lake、14nm 、基礎頻率 3.6GHz(無睿頻)、搭載的是臭名昭著的 UHD 630 核顯,TDP 65W。

9

蘋果發(fā)布的第三款搭載 M1 的 Mac 是 MacBook Pro 13’,相比上一代搭載了 Intel i7 的 MacBook Pro 13’,CPU 性能提升 2.8 倍、GPU 圖形性能提升了 5 倍,而這一性能提升是和 i7-8557U 對比出來的,上市于 Q3’19、Coffee Lake、14nm 、基礎頻率 1.7GHz、搭載 Iris Plus 645 核顯、TDP 15W。

10

注意到?jīng)]有,蘋果在發(fā)布會上對比性能提升時,一直都使用的「best in class」(同類別)、「We have ever created」(我們制造過的)、「better than previous generation」(比上一代更好)的說辭。而當我們真正去注意蘋果官網(wǎng)產品頁面的腳注,才會發(fā)現(xiàn)蘋果對比的產品并不是加強了 ML 的 Tiger Lake、并不是 Xe 核顯或是 VEGA 顯卡,而是 CoffeeLake 的降壓 U 和孱弱的 Ice Lake、以及臭名昭著的 UHD 630、和上一代的 Iris Plus。

而且,讓我們再做一道數(shù)學題,如果 M1 比 i7-8557U(MBP 13′ 2019)快 2.8 倍、又比 Ice Lake(MBA 2020)快 3.5 倍,那么是不是可以說 i7-8557U 比 Ice Lake 的 i7-1067NG7 快 25% 呢?可以看出,蘋果對比的顯然是限制功耗和鎖頻后的性能,因此結論也就很明顯了:ARM 憑借著高能耗比、低功耗,在輕薄本上大殺四方,吊打前款,但是絕對性能在普通 PC、筆記本上搭載的 Ice Lake 和 Tiger Lake 面前其實毫無優(yōu)勢、更不可能和 AMD 同臺競技。

另外,M1 芯片為了追求超小體積和超低功耗,只在 SoC 中封裝了兩個 LPDDR4X 作為內存,因此只能提供最高 16G 的「DRAM」內存,這對上網(wǎng)本和辦公白領來說綽綽有余,對「創(chuàng)作者」、「開發(fā)者」來說自然是遠遠不夠的;被閹割的還有 Mac Mini 上的雷電接口,搭載 Intel 的 Mac Mini 有兩個雷電控制器、而搭載 M1 的只有 SoC 里集成的一個,因此 ARM Mac Mini 只有兩個雷電接口、而不是四個。

綜合來說,M1 的超低功耗、超高能耗比在輕薄本、上網(wǎng)本上絕對是不二選擇,MBA 這樣的目標用戶更在乎發(fā)熱和續(xù)航,而 M1 恰恰可以滿足他們的需要;M1 所不能做的事情,如絕對性能不足、無法連接 eGPU、恰恰是上網(wǎng)本用戶所不在意的。

6

但是,蘋果在沒有電池的 Mac Mini、和在「面向創(chuàng)作者和開發(fā)者」的 MacBook Pro 13′ 上搭載孱弱的 M1,實在有點不可理喻、和一種自降身段的感覺。畢竟,Mac Mini 是時時刻刻需要插著電源的,而 MacBook Pro 13′ 的用戶也不會抱著筆記本在戶外使用 Xcode、Final Cut Pro X 和 Logic Pro,對吧?

雖然我們現(xiàn)在看到 KOL、小編們普遍對 M1 稱贊不已,但是可以預見當他們發(fā)現(xiàn)這次發(fā)布的三款 Mac 都沒法安裝 Windows、都暫時無法運行 Photoshop 后,對 ARM Mac 的評價也會逐漸轉變風向的。

Apple ARM 芯片和 ARM Mac 的未來?

綜合來說,我們在 M1 上看到了令人驚艷的超低功耗加超高能耗比;而在性能方面,對于一款 ARM 架構的處理器來說,「勉勉強強」能和 Tiger Lake「五五開」也已經(jīng)是不小的成就了。在上網(wǎng)本、輕薄本級別的 MacBook Air 乃至日后可能重啟的 MacBook 12′ Refresh 產品線上,M 系列處理器肯定是不二選擇。

與之對應的是「生產力 Mac」。MacBook Pro、iMac 的目標用戶從事的工作大多為移動辦公(MBP Only)、繪圖、圖像處理、音視頻創(chuàng)作、影視制作、軟件開發(fā)、輕度機器學習,而 Mac Pro、iMac Pro 的目標用戶則大多從事大型影視剪輯、大型圖像處理、大型數(shù)字音頻制作、三維制作、大型機器學習等工作。而正如我在之前章節(jié)所說,讓這類行業(yè)內的軟件優(yōu)化適配、使其能夠發(fā)揮 ARM 的硬件的完整性能,還有非常漫長的一段路要走。而在這些行業(yè)中,自行組裝 PC 固然可以彌補硬件性能上的差距、而在軟件生態(tài)上 macOS 卻是無出其右的,看看 Logic Pro、Final Cut Pro X 就知道了。蘋果在未來很長一段時間內都會繼續(xù)發(fā)布搭載 Intel 的 Mac。如果蘋果一意孤行,急迫地在這類產品線強上 M 系列處理器,只會迫使這類目標用戶轉向 Windows 10 和 AMD 的懷抱。

歷史上,蘋果的架構選擇甚至還會受到蘋果公司領導層決策的影響。1992 年蘋果就在計劃將 Macintosh System(Classic Mac OS)遷移到 X86 架構上,甚至開展了一項秘密計劃「Star Trek」。而當更青睞 PowerPC 的蘋果新任 CEO 走馬上任以后,X86 架構遷移計劃就被束之高閣,直到喬布斯重新回到蘋果、WWDC 2005 宣布 Mac 將遷移到 Intel 處理器上。因此,也不排除存在這種可能:隨著庫克離任、蘋果領導層變動、ARM 處理器不再向「高性能、密集計算」的方向突破,甚至可能蘋果換了 CEO 后 Mac 將會搭載 AMD 處理器,但是這兩種可能性顯然不大。


  • 本文采用 CC BY-NC-SA 4.0 許可協(xié)議,著作權歸作者所有。商業(yè)轉載請聯(lián)系作者獲得授權,非商業(yè)轉載請注明出處。
  • 作者:Sukka
  • 來源:談談 Apple M1 芯片、ARM、ARM Mac 和黑蘋果的未來 | Sukka’s Blog
  • 鏈接:https://blog.skk.moe/post/talk-about-arm-m1-mac/
評論