蘋果的換芯行動(dòng)
11 月 11 日凌晨,蘋果“One more thing”發(fā)布會(huì)如期而至。發(fā)布會(huì)上,蘋果宣布推出首款自研的 5nm M1 芯片,該款芯片將為其新一代基于 ARM 的 Mac 系列產(chǎn)品提供動(dòng)力。蘋果公司聲稱,該款 M1 芯片搭載了許多世界頂級(jí)工藝的產(chǎn)品,包括世界上最快的 CPU 內(nèi)核、最快的 IGPU。
“蘋果花了十幾年的時(shí)間來(lái)創(chuàng)造和優(yōu)化 Apple 芯片,因?yàn)樾酒?iPhone、iPad 和 Apple Watch 的核心。現(xiàn)在我們希望將其引入 Mac,因此 Mac 可以憑借令人難以置信的性能、自定義技術(shù)和行業(yè)領(lǐng)先的芯片來(lái)實(shí)現(xiàn)巨大的飛躍。”蘋果官方如是說(shuō)。
蘋果公司認(rèn)為,M1 是迄今為止性能最高的芯片,并且低功耗高效內(nèi)核可提供與當(dāng)前基于英特爾的雙核 MacBook Air 相似的性能。當(dāng)然,高性能內(nèi)核要快得多。
M1 芯片推出以前,英特爾幾乎壟斷了蘋果筆記本電腦的 CPU。2005 年,蘋果從 PowerPC 芯片切換到了英特爾。這個(gè)過(guò)渡已經(jīng)有 15 年了,過(guò)渡的成本來(lái)主要來(lái)自軟件方面。開始時(shí)開發(fā)人員需要使用蘋果提供的工具鏈來(lái)生成可以在 PPC 和 x86 Mac 上運(yùn)行的通用二進(jìn)制文件,并且并非所有蘋果以前的 API 都可以過(guò)渡到 x86。
當(dāng)年,蘋果推出的工具鏈名叫 Rosetta,用于將 PowerPC 應(yīng)用轉(zhuǎn)換到 x86 上。Rosetta 能做到讓大多數(shù) PowerPC Mac OS X 應(yīng)用程序在 x86 Mac 上運(yùn)行,盡管性能有些損失(這并不是一件簡(jiǎn)單的事情)。最終,Rosetta 成為了蘋果的創(chuàng)可貼,直到 2011 年 Mac OS X 10.7(Lion)推出時(shí)才被放棄。
現(xiàn)在,從英特爾切換到蘋果 Silicon,蘋果給出了三種解決方案:Universal 2 通用應(yīng)用、Rosetta 2 工具鏈、原生 ARM 應(yīng)用。
第一種解決方案是在蘋果芯片版 Mac 上,使用“Universal 2”運(yùn)行應(yīng)用程序,針對(duì) Adobe Photoshop、Microsoft Word 這樣的系統(tǒng)軟件。第二種解決方案是利用蘋果提供的 Rosetta 2 將應(yīng)用重新編譯,讓 x86 應(yīng)用能運(yùn)行在 ARM 架構(gòu)上,主要針對(duì)不太涉及處理器特性的絕大部分輕量級(jí)應(yīng)用。
從本質(zhì)上講,Rosetta 2 可能足以支持大多數(shù)主流生產(chǎn)力應(yīng)用程序,但往往無(wú)法兼容那些需要與操作系統(tǒng)、硬件或圖形硬件進(jìn)行直接交互的軟件。特別是,那些在關(guān)鍵任務(wù)需求中涉及虛擬化或高端圖形、視頻或科學(xué)類應(yīng)用處理的用戶,可能最好是等推出原生軟件版本之后再考慮升級(jí)到基于 ARM 的蘋果芯片版 Mac 平臺(tái)。
換芯給開發(fā)者們帶來(lái)的問(wèn)題
很明顯,這次換芯行動(dòng)將給消費(fèi)者們帶來(lái)巨大助益,包括獲得更長(zhǎng)的電池續(xù)航并改善運(yùn)行過(guò)熱問(wèn)題(2018 款 MacBook Pro 就是款強(qiáng)大的“暖寶寶”)。軟件與硬件之間的緊密集成,也將進(jìn)一步優(yōu)化用戶的使用體驗(yàn)。另外,產(chǎn)品價(jià)格也有可能隨之下降。
蘋果的芯片遷移決定,自然也激起了開發(fā)者們的擔(dān)憂,特別是在開發(fā)者體驗(yàn)方面。蘋果雖然表示提供了相應(yīng)的解決方案,強(qiáng)調(diào)新的芯片將提高開發(fā)人員的生產(chǎn)力,但是換芯行動(dòng)也同樣會(huì)沉重打擊高度依賴其產(chǎn)品及生態(tài)系統(tǒng)的專業(yè)開發(fā)者。
現(xiàn)有 Mac 應(yīng)用運(yùn)行速度可能減慢
如果將現(xiàn)有 Mac 應(yīng)用借助 Rosetta 2 轉(zhuǎn)換引擎,重新編譯為“Universal 2”二進(jìn)制形式,大部分專為英特爾處理器編寫的 64 位 MacOS 應(yīng)用程序,都能夠直接運(yùn)行在蘋果芯片版 Mac 之上。
但蘋果在開發(fā)者文檔中頗為詼諧地提到:“轉(zhuǎn)譯過(guò)程需要時(shí)間,因此用戶可能感覺轉(zhuǎn)譯后的應(yīng)用在啟動(dòng)或運(yùn)行時(shí)偶爾變慢?!?/p>
當(dāng)然,只要涉及任何形式的仿真、虛擬化或者轉(zhuǎn)譯過(guò)程,應(yīng)用程序的運(yùn)行速度就必然要比原生版本稍慢一點(diǎn)。雖然還沒(méi)有官方確認(rèn),但通過(guò)已經(jīng)泄露的 Geekbench 5 基準(zhǔn)測(cè)試,大家大概可以推斷 Mac mini DTK 的運(yùn)行速度會(huì)比在 iPad Pro(2020)機(jī)型上慢多少。
與運(yùn)行原生代碼的 iPad Pro(2020)機(jī)型相比,Mac mini DTK 在通過(guò) Rosetta 2 以單核形式運(yùn)行 Geekbench 5 基準(zhǔn)測(cè)試時(shí),速度降低了 26%;在多核形式下,速度要慢 38%。
值得一提的是,與這款 iPad Pro 相比,Mac mini DTK 的時(shí)鐘頻率也有所下降,而且運(yùn)行的 beta 軟件并未經(jīng)過(guò)優(yōu)化。但如果我們假定二者時(shí)鐘頻率相同且在最終硬件發(fā)布時(shí)完成了進(jìn)一步軟件優(yōu)化,那么估計(jì)通過(guò) Rosetta 運(yùn)行軟件時(shí)、相較于原生應(yīng)用的速度劣勢(shì)應(yīng)該會(huì)在 20% 到 30% 之間。
可以肯定的是,基于 ARM 的蘋果芯片 Mac 性能更強(qiáng),甚至足以抵消引入 Rosetta 2 帶來(lái)的速度劣勢(shì),最終實(shí)現(xiàn)與一兩年前大部分英特爾芯片版 Mac 相同的性能水平。
但是,其他人怎么辦?實(shí)際上,大多數(shù)在 Mac 上進(jìn)行開發(fā)的用戶并不是在構(gòu)建 iOS 或者 MacOS 應(yīng)用。
根據(jù) StackOverflow 2020 開發(fā)者調(diào)查,超過(guò)四分之一的開發(fā)者使用 MacOS,但只有 6% 的用戶使用 Swift 語(yǔ)言。作為目前蘋果唯一官方指定的蘋果生態(tài)應(yīng)用構(gòu)建語(yǔ)言,Swift 孱弱的市場(chǎng)占有率足以說(shuō)明大多數(shù) Mac 用戶其實(shí)并不是在為蘋果開發(fā)產(chǎn)品。
換言之,相當(dāng)一部分 MacOS 上的開發(fā)者是在構(gòu)建其他類型的應(yīng)用,例如運(yùn)行在云服務(wù)器上的 Web 應(yīng)用程序。對(duì)于這些已經(jīng)熟悉了 Node.js、Python、Ruby、PHP、Go 甚至.NET/C# 的開發(fā)者來(lái)說(shuō),Mac 的換芯行動(dòng)意味著什么?簡(jiǎn)單來(lái)說(shuō),他們的使用體驗(yàn)必然受到影響。
相當(dāng)一部分工具和庫(kù)并不支持 ARM64
雖然情況會(huì)逐漸改善,但除了 AMD64 之外,其他大多數(shù)架構(gòu)都無(wú)法在 ARM 上運(yùn)行。而且對(duì)其他架構(gòu)的支持會(huì)帶來(lái)高昂成本:開發(fā)商需要從自己的代碼中刪除所有指向特定架構(gòu)的部分,構(gòu)建基礎(chǔ)設(shè)施(在無(wú)法或不方便進(jìn)行交叉編譯時(shí),可能需要購(gòu)買新的硬件)、執(zhí)行測(cè)試,最后提供支持。
由于相當(dāng)一部分工具和庫(kù)屬于開源項(xiàng)目,因此由此帶來(lái)的維護(hù)需求增長(zhǎng)將成為沉重的額外負(fù)擔(dān),導(dǎo)致某些貢獻(xiàn)者直接放棄為新的 Mac 平臺(tái)提供支持。
當(dāng)然也有一些應(yīng)用程序、特別是閉源項(xiàng)目,壓根沒(méi)有 ARM 版 build,例如微軟 SQL Server 或 OracleDB。一位網(wǎng)友曾在 Reddit 上評(píng)論說(shuō):“我在學(xué)術(shù)圈待過(guò),之前使用 Mac 設(shè)備的學(xué)生們只能依靠 Mac + Azure Data Studio 上的 Docker 完成微軟 SQL 的操作練習(xí)。因此除非微軟發(fā)布 ARM 版本的 SQL Server,否則這項(xiàng)利好將徹底消失。目前來(lái)看似乎微軟并無(wú)此意,至少在 ARM 版 Mac 推出之前是不太可能有什么動(dòng)靜?!?/p>
對(duì)虛擬化的支持也只能運(yùn)行在 ARM64 操作系統(tǒng)上
蘋果公司當(dāng)然意識(shí)到在 Mac 上運(yùn)行 Linux 的重要性,因此在發(fā)布會(huì)上演示了如何使用 Debian 虛擬機(jī)。但他們聊得不多,只是在稍后的小組討論中證實(shí),當(dāng)時(shí)臺(tái)上展示的是 Debian 的 ARM 版本。雖然不少 Linux 發(fā)行版都提供 ARM 鏡像,但仍不是全部,而且多少會(huì)影響到軟件可用性。
更重要的是,至少 ARM 架構(gòu)是絕對(duì)支持不了 Windows 應(yīng)用。因此,如果大家打算使用 Mac 測(cè)試自己的 Windows 應(yīng)用,只能說(shuō)抱歉了。你需要另外買臺(tái)筆記本,或者使用遠(yuǎn)程桌面服務(wù)。另外,你也沒(méi)法在 Mac 上運(yùn)行虛擬機(jī)進(jìn)行設(shè)備測(cè)試(例如 ESXi、pfSense、FreeNAS 等)。
Docker 受到的影響
由于 Mac 上的 Docker 只能在虛擬機(jī)內(nèi)運(yùn)行,再加上用戶只能對(duì)基于 ARM 架構(gòu)的 Linux 進(jìn)行虛擬化,意味著我們未來(lái)只能在蘋果芯片版的 Mac 上運(yùn)行 ARM64 容器。
目前,Docker Hub 上存在 331 萬(wàn) 9219 個(gè)針對(duì) AMD64 的鏡像,但針對(duì) ARM64 的鏡像只有 29076 個(gè),占比不足 1%。再有,構(gòu)建多架構(gòu) Docker 鏡像還特別復(fù)雜。
尤其需要注意的是,由于生產(chǎn)系統(tǒng)通常運(yùn)行 Linux/AMD64,因此你生產(chǎn)的二進(jìn)制文件及 Docker 鏡像很可能無(wú)法在開發(fā)計(jì)算機(jī)上運(yùn)行。當(dāng)然,你也許可以進(jìn)行重新編譯及交叉編譯,但永遠(yuǎn)無(wú)法還原其真實(shí)的運(yùn)行狀態(tài)。另外,如果你的應(yīng)用在生產(chǎn)環(huán)境中發(fā)生問(wèn)題,也無(wú)法僅憑二進(jìn)制文件或容器鏡像在自己的筆記本上進(jìn)行調(diào)試。
Docker 在開發(fā)者的日常工作流程中占據(jù)非常重要的位置,所以這些令開發(fā)者們感到相當(dāng)頭痛。
Docker配置環(huán)境錯(cuò)誤
任職于 Docker 的 Stephen Turner 博士表示:“雖然操作系統(tǒng)具有虛擬化功能,但蘋果芯片尚不支持虛擬化。我們也無(wú)能無(wú)力,但我們正在和蘋果緊密合作希望解決這個(gè)問(wèn)題?!钡裁磿r(shí)候能夠解決,他表示“還沒(méi)有具體的日期”。
在 11 日的發(fā)布會(huì)后,據(jù)開發(fā)者的反饋,他們懷疑問(wèn)題是否已經(jīng)解決:“據(jù)我所知,M1 確實(shí)具有虛擬化支持,但尚未移植 Docker。”
并且如果只能在虛擬化層上運(yùn)行 Docker,將給文件 I/O 性能造成嚴(yán)重拖累,并導(dǎo)致大型項(xiàng)目的編譯速度直線下降。有開發(fā)者表示目前他只能使用 docker-sync 來(lái)解決這個(gè)問(wèn)題。另外,除非使用 docker machine 實(shí)現(xiàn)真虛擬機(jī),否則沒(méi)有其他方法能夠?qū)⒃O(shè)備掛載至 Mac 上的 docker 容器當(dāng)中。所以,對(duì)于大多數(shù)需要與硬件直接交互的軟件廠商來(lái)說(shuō),早點(diǎn)發(fā)布自家軟件的原生版本才是正道。
當(dāng)然,你可以使用 Rosetta 2 來(lái)運(yùn)行 x86 容器,但其能否進(jìn)一步擴(kuò)展至支持虛擬化 Linux 等 x86 操作系統(tǒng)仍然有待觀察。
參照 2005 年的過(guò)渡方案,蘋果為這次過(guò)渡給出了兩年時(shí)間。如果一切順利,蘋果應(yīng)該會(huì)在兩年之后的新版本 macOS 中去掉對(duì) x86 指令集的支持,在三年之后的新版本中去掉 Rosetta 2。而這三年之中,開發(fā)者們需要付出什么樣的代價(jià),還有待驗(yàn)證。
責(zé)任編輯:tzh
-
芯片
+關(guān)注
關(guān)注
463文章
54010瀏覽量
465997 -
cpu
+關(guān)注
關(guān)注
68文章
11279瀏覽量
224964 -
蘋果
+關(guān)注
關(guān)注
61文章
24600瀏覽量
208363 -
Mac
+關(guān)注
關(guān)注
0文章
1128瀏覽量
55315
發(fā)布評(píng)論請(qǐng)先 登錄
NSSine? MCU如何重塑數(shù)字電源與電機(jī)開發(fā) | 納芯微首次亮相RT-Thread開發(fā)者大會(huì)
兆芯亮相DDUC 2025深度開發(fā)者與用戶大會(huì)
2025華為開發(fā)者大賽暨開發(fā)者年度會(huì)議成功舉辦
2025開放原子開發(fā)者大會(huì)11月啟幕
芯科科技2025年Works With開發(fā)者大會(huì)深圳站藍(lán)牙技術(shù)專場(chǎng)前瞻
芯科科技2025年Works With開發(fā)者大會(huì)深圳站Matter技術(shù)專場(chǎng)前瞻
萬(wàn)象奧科亮相2025瑞芯微開發(fā)者大會(huì)
零距離·芯方案|杰和科技亮相RKDC 2025第九屆瑞芯微開發(fā)者大會(huì)
QNX亮相瑞芯微第九屆開發(fā)者大會(huì)
【瑞芯微開發(fā)者大會(huì)】Firefly 與你共同見證 AIoT 模型創(chuàng)新
靈眸科技亮相第九屆瑞芯微開發(fā)者大會(huì)
行芯科技亮相第三屆芯粒開發(fā)者大會(huì)
啟揚(yáng)受邀參加2025瑞芯微開發(fā)者大會(huì)
邊緣計(jì)算×硬核產(chǎn)品|杰和科技即將亮相第九屆瑞芯微開發(fā)者大會(huì)
蘋果換芯行動(dòng)給開發(fā)者帶來(lái)哪些問(wèn)題?
評(píng)論