金磊 發自 凹非寺 量子位 報導 | 公眾號 QbitAI
不久之前,在蘋果的一幢大樓裡,一群工程師聚集到了一起。
他們掏出了舊版MacBook Air,將筆記本的內核連接到自己的原型板上。
此次「會晤」的目的非常明確:
造出第一臺自己定製設計、基於ARM晶片,且能運行MacOS的蘋果電腦。
而就在本周,蘋果終於邁出了這一大步——第一批在蘋果M1晶片上運行的Mac誕生。
這也標誌著蘋果開始脫離英特爾CPU的「產品轉型」。
但一系列問題也隨之而來:
為什麼要這麼做?又是何時開始準備的?軟體兼容怎麼辦?Windows方面又如何處理?
外媒ArsTechnica,最近與蘋果軟體工程高級副總裁Craig Federighi、全球營銷高級副總裁Greg Joswiak、硬體技術高級副總裁Johny Srouji進行了一次訪談。
△從左至右:Greg Joswiak、Craig Federighi、Johny Srouji
而關於蘋果M1晶片背後的故事和與之更多的細節,也就此浮出了水面。
為什麼要造晶片?又為什麼是現在?
2006年時候,蘋果選擇開始使用英特爾x86架構,因為在此之前所採用的PowerPC似乎已經走到了盡頭。
在此後最初的幾年時間裡,這一選擇對於蘋果來說是一種福音:英特爾的晶片實現了Mac與Windows及其他平臺的互操作,這也讓Mac變得更加靈活。
除了蘋果臺式機外,像筆記本電腦以及手機等產品,也隨之受益。
在很長一段時間裡,英特爾的表現可以說是一流的。
但最近幾年,英特爾CPU的發展卻不是那麼樂觀,尤其是在性能提高和一致性方面。
不僅是廠商,用戶也對此有所發覺,還戲稱道「擠牙膏」。
或許你會認為,這是蘋果做出如此選擇背後的驅動力。
「但這並不是最根本的原因」,蘋果三位高管的回答卻是這樣的。
Joswiak對此解釋道:
這是關於我們能做什麼,不是關於「別人能做或不能做什麼」的問題,對嗎?每家公司都有自己的計劃:軟體公司希望硬體公司這樣做,反過來硬體公司又希望軟體公司那樣做,他們之間是存在競爭的。而蘋果的位置比較特殊,我們設計晶片,不是作為商家、供應商或者解決方案,而是為了讓軟體、系統和產品緊密結合。這就是我們所需要的。
對於這個問題,Federighi給出了一個非常「蘋果式」的回答:
Mac是蘋果的靈魂,是它把我們帶入了計算機領域。Mac仍然是我們在工作中使用的一種工具,將我們所學到的一切,應用到核心系統中,顯然是一個長期的抱負,也是一種實現夢想的方式。
Joswiak還回憶道,「剛開始知道這個決定的人很少,但他們知道蘋果要走這條路開始,便一直對此面帶微笑」。
設計蘋果M1晶片
蘋果要造的晶片,不僅是一種能夠吸取多年來,為iPhone、iPad等其他產品設計的移動晶片所累積的經驗的晶片,還能滿足筆記本電腦或桌上型電腦不斷擴大的需求。
而當蘋果今年宣布要打造基於蘋果晶片的Mac時,不少旁觀者都在猜測,這個晶片很可能類似於A14。
但事實並非如此,Federighi表示:
如果你把M1和A14聯繫起來,它本質上是一個「超集」。並且Mac上的晶片與之有很多不同之處。
蘋果對Mac應用工作負載進行了大量分析:
運行典型Mac工作負載所需的圖形/GPU能力。所需的紋理格式。對不同類型GPU計算的支持。核心數量、驅動Mac尺寸顯示器的能力、對虛擬化和Thunderbolt的支持。……這些都是Mac所需要的,但相對於iPhone編譯的應用程式,這些功能都是「超集」。
Srouji 進一步闡述道:
我們已經建立了許許多多的IP,它們成為M1晶片的基礎。我們開發這些偉大的技術已經超過了10年,然後幾年前,我們便說「現在是時候使用我們所謂的可擴展架構,是時候為 Mac 開發一個定製的晶片了」。因為我們有這些偉大的IP的基礎,而且架構是可擴展的UMA。這是一個完全不同的自定義晶片。
這裡提到的UMA,即統一存儲體系結構(Unified memory architecture),是蘋果此次成功的關鍵。
UMA本質上意味著所有的組件,包括中央處理器(CPU)、圖形處理器(GPU)、神經處理器(NPU)、圖像信號處理器(ISP)等等。
它們共享一個速度極快的內存池,並且位置非常相近,這與常見的臺式機模式是相反的。
當用戶運行要求比較苛刻的應用時,傳統的pipeline 可能會損失大量的時間和效率來移動或複製數據,以便這些不同的處理器都能夠訪問到它們。
Federighi認為,蘋果在M1上的成功,部分原因是在硬體和軟體層面,拒絕了這種低效的模式:
我們不僅獲得了GPU原始性能的巨大優勢,而且同樣重要的是,在統一的內存架構下,我們不用不斷地來回移動數據,也不用改變會降低數據速度的格式。我們在性能上有了很大的提高。
而且這並不是蘋果M1唯一的優化點。
近幾年來,蘋果的 Metal graphics API 採用了「基於平鋪的延遲渲染」 ,M1的 GPU 就是為了充分利用這一點而設計的。
Federighi解釋道:
老式的GPU基本上是同時在整個框架上操作,而我們則是在tile上操作,可以將tile移動到極快的片上內存中,然後在tile上與所有不同的執行單元一起執行一個巨大的操作序列。這是一種令人難以置信的效率,而以往離散的GPU是做不到的。
Windows怎麼辦?
應用新的架構同時,在軟體層面也迎來一種新的轉型。
Mac 電腦現在將在本地運行新類型的軟體,並停止本地運行其他類型,包括現有的所有 Mac 軟體系列。
除此之外,蘋果在架構上的轉變也為iPhone和iPad製作的軟體,打開了一道「閘門」。
這是第一次,適用於移動端平臺的應用程式可以在Mac上運行。
但對於這樣的一個「過度」,用戶體驗這塊必須要拿捏得住。
對此,Federighi表示「大約90%的應用程式運行良好」:
一個應用程式無法正常工作的原因有很多。它可能使用的技術在 Mac 上並不適用或不合理。所以我們對現有的應用做一定數量的自動測試,看看它們是否會崩潰等等。如果他們有這些問題,我們會從商店中自動自動將它們篩選出來。隨著時間的推移,我們很可能會看到一些開發者,為了讓他們的應用在Mac上能良好運行而付出努力。對於蘋果公司來說,目前還處於早期,但在幾年內,市場上將會有數百萬臺配備M1或M1系列的Mac。時間將證明這一進程的發展會有多快。
接下來的一個問題也比較關鍵:What about Windows?
儘管M1的運行現有的 Mac、 iPhone 和 iPad 軟體,但是新的架構不能立即運行除了 macOS 之外的 x86作業系統的應用程式。
對此,Federighi指出,M1 Mac 確實使用了支持 Parallels 或 VMWare 等產品的虛擬化框架,但他承認,這些產品通常也會虛擬化其他 ARM 作業系統。
與此同時,Federighi還表示,雲端的Windows是一種可能的解決方案,並提到了CrossOver:
它能夠在這些系統上一種類似WINE的仿真層下,運行32位和64位的x86 Windows二進位文件。但是 CrossOver 的模擬方法,並不像我們在英特爾 mac 上使用 Parallels 或 VMWare 等虛擬化軟體時那樣一致,所以可能還有很長的路要走。
至於在Mac上運行Windows系統,Federighi說到:
我們有核心技術來運行他們的ARM版Windows,而後者當然支持x86應用程式。但這是微軟必須做出的決定,授權用戶在這些Mac上運行這項技術。但Mac電腦確實很有能力做到這一點。
「很艱難,但卻是值得的」
最後,Srouji 回顧整個歷程時說到:
我們一直對這個項目和整個事情充滿熱情。非常艱難,但卻是值得的。我們喜歡Mac,我們熱愛計算機。我認為我們正在創造歷史,這就是我們工程師們的看法。
類似的,Federighi也發表了他的看法:
我們付出了大量的汗水和心血,但我想說,在某種程度上,我們知道如何做到這一點。我們知道我們要面對的是什麼。
Joswiak補充道:
我們以前也這樣做過(從PowerPC 向英特爾的過渡)。但這一次,這一切都是在「家」裡完成的——這讓蘋果獲得了一種不同的勝利。
參考連結: