蘋果 M1 革了 Intel x86 的命? 其實這是個偽命題
在過去一兩年中,蘋果 Mac 的自研晶片轉型,以及 ARM 在數據中心的一些勝利,引發了業界對 x86 和 ARM 的廣泛爭論——其中,有不少觀點認為,x86 註定會失敗。 事實上,與大多數無法開箱即用的 ARM CPU 相比,x86 的軟體生態系統(在 PC 和數據中心領域)龐大,擁有絕對的競爭優勢;而且它是建立在 Intel 和 AMD 兩家的支援之上,非並是 Intel 一家。
問題來了:幾乎沒有什麼內在缺點的 x86,真的註定會失敗嗎?
近幾個季度以來,蘋果新款 Mac 在市場上的確表現良好,部分功勞是:基於台積電 5nm工藝節點,蘋果 M1 晶片的運行速度很快。 但同樣不可否認,遠端辦公的興起和晶元的短缺也在蘋果最新一代 Mac 的銷售中起到了助推作用。
對蘋果而言,或許最主要的收穫在於,未來不再需要在其最高端 CPU 上向英特爾支付超過 60% 的毛利率。
此前,一些投資者,如 Ark Invest 或其他投資人,根據 x86 和 ARM 指令集之間的技術二分法發表了一些文章。 本文將挑戰這些文章所提出的觀點:ARM 和 x86 只是指軟體與 CPU 交流時必須使用的”語言”,最終性能還是取決於每個 CPU 的執行情況。
因此,對於投資者而言,ARM 與 x86 之間的爭論是沒有意義的。
本文的觀點可概括為兩個層面:
首先,蘋果擁有世界一流的晶元工程團隊,這毋庸置疑,這也是除了英特爾工藝製程延期之外,蘋果 M1 晶片好評如潮唯一真正的原因——但並非是因為它使用了 ARM 指令集。
其次,蘋果 M1 的重要性被過分誇大了。 蘋果的行銷所打造的熱度遠遠超過該晶元能夠做出的保證;例如最新iPad的 M1 晶片也可以被稱為 A14X,因為晶片本身帶來的創新相對不多。
ARM VS x86:被弄錯的重點
如上文所述,蘋果 M1 引發了新一輪關於 x86 與 ARM 的討論。 對於包括 Ark Invest 和其他一些看好蘋果的公司來說,蘋果 M1 為結束 x86 時代提供了有力證據——但這一討論實際上並不新鮮,甚至有點過時。
簡而言之,大約十年前,當英特爾錯過移動業務時,完全相同的討論持續了很長一段時間。 很多人聲稱或認為 x86 生來就在功耗能效方面表現不佳,而在移動領域功耗極其重要,這意味著 x86 永遠無法在移動領域競爭。
當時,” x86 功耗之謎” 被 AnandTech 以及其他一些媒體平台徹底揭開,它們實際測量了基於 x86 架構晶片的功耗與能效,並撰寫了題為《 破解 x86 功耗之謎》的文章——值得注意的是,當時 AnandTech 的高級編輯 Anand Shimpi 自 2014 年以來一直在蘋果工作。
實際上,x86 之所以沒有在行動裝置中得以廣泛使用,其真正原因是英特爾和AMD並沒有在該市場進行足夠多投資。 正如英特爾投資者如今可能意識到的那樣,英特爾試圖進入移動領域為時已晚,缺乏投資動力,便不再白費力氣。
不過,英特爾在試圖進入移動領域的過程中,也曾取得過一些成績。 比如說在 2014 年,英特爾計劃基於更低功耗和更高能效的 Atom 架構打造 CPU 與高通等公司展開競爭,最終推出了面向無風扇設備(如平板電腦)的高性能架構 Core M。
以上基準測試中,Llama Mountain 是英特爾概念驗證的(基於 Core M 的)極薄無風扇平板電腦,其運行速度幾乎是蘋果的 iPad Air 的3倍,而現如今被稱之為具有革命性意義的 M1,也只比英特爾或 AMD 最新的 x86 晶片快 10% 左右。
這意味著,英特爾 Core M 徹底擊敗了蘋果當時最好的晶片。 這也可以被視為證明爭論 “x86 和 ARM,究竟誰更佔優勢?” 這一問題毫無意義的另一個有力論據。
總之,這確實證明瞭任何晶元都不具有先天優勢。 基於 ARM 的 CPU 可以從微型微控制器發展到類似 M1 的晶片,而 x86 也可以從低功耗移動 CPU 發展到大型伺服器晶片。
無論是 x86 還是 ARM,設計和製造都需要持續的研發,才能跟上時代的步伐。
x86 與 ARM,本質是語言種類的比較
讀到這裡,你可能對本文的觀點和結論並不滿意,因為上文並沒有更詳細地解釋為什麼 x86 與 ARM 的競爭比拼毫無意義,也沒有解釋英特爾是如何從比蘋果快 3 倍發展到落後於蘋果的。
不過不要著急,下面我們展開更加深刻的分析:
首先,讓我們從指令集架構(如 x86、ARM 或 RISC-V)的基礎知識開始,這應該有助於進一步理解為什麼對於投資者來說 x86 和 ARM 的區別無關緊要。
簡而言之,指令集定義了計算機可以執行的二進位機器指令,定義了軟硬體介面——計算機無法理解 C 語言或 Java 或 Python 語言,它只理解屬於其指令集的指令。
這些指令從簡單的基本數學計算指令(加法等)到更複雜的指令(如安全或虛擬化)。 不過前者是關鍵指令——幾乎所有應用程式大部分時間都會使用基本數學指令。
這些基本指令對於任何晶元來說都是相同的,無論其基於何種架構。 更重要的是,指令集只是定義了指令,它的作用只是定義一種機器語言,並沒有定義這些指令如何在晶元中執行,最終是軟體用這種機器語言來指示晶元執行指令。 例如,有多種方法可以在晶元中實現加法器或乘法器等功能。
因此,在計算機體系結構中,必須做出兩個區分:
指令集定義了晶元支援的所有指令。
晶片設計的第二部分是基於任何指令集的晶元架構實際運行的問題。 在上面的實例中,執行指令涉及使用晶體管來創建一些有形的東西,比如加法器或乘法器。
過去 20 年,CPU 性能的進步主要歸功於第二部分中流水線、亂序執行、分支預測器、多級緩存和許多其他技巧,大大提高了 CPU 的運行速度。
最重要的是,剛才提到的所有這些”技巧”相對指令集都是完全獨立的,它們可以在ARM、x86、RISC-V或其他指令集中實現。
幾十年前的軟體無需重寫就能在現代 CPU 上運行得更快,開箱即用——這也是第二個區分的主要優點之一。
即使在新指令導致性能大幅提升的情況下,這些技巧也會簡單地複製到其他指令集中。 這方面的主要示例是向量指令或單指令流多數據流(SIMD),即在一組向量數據上使用一條指令。 在 x86 中,這被稱為數據流單指令多數據擴展(SSE,Streaming SIMD Extensions)和高級向量擴展指令集(AVX,Advanced Vector Extensions)。
例如,最新版本 AVX-512 在 512 位向量上運行,因此與之前的 AVX 版本(256 位)相比,性能提高了一倍。 在 ARM 中,等效項稱之為 SVE2,它可以在晶片運行中從 128 位擴展到 2048 位,這也再一次表明瞭晶片性能對指令執行的依賴程度。
因此,決定 CPU 速度以及功耗和能效等其他屬性的,只是架構設計的選擇,這實際上取決於晶元的應用目標——這些選擇屬於前文中所提到的兩個區別中的第二個,即獨立於指令集的那些技巧。
例如,英特爾和 AMD 一直致力於確保它們的晶片達到 5GHz 量級的高頻;如果蘋果想要實現這一點,它可能需要完全重新設計其架構。
不過,蘋果更專注於提高其CPU每個時鐘週期可以執行的指令數量。 這樣,蘋果的 3GHz 架構可能比 4GHz 的 AMD 或英特爾內核更快。 由於功耗往往隨電壓頻率成二次方甚至三次方地增加,因此這種設計選擇讓蘋果晶元的性能和功耗備受讚譽。
但同樣,這隻是一個設計和創新的問題,正如所討論的那樣,設計與創新同指令集互補,甚至在很大程度上獨立於指令集。
另一個例子是 big. Little 架構,也稱之為混合架構,由同一指令集的兩個(或多個)實現方式組成。 其中一組內核主要針對性能進行了優化,另一組則傾向於針對功耗進行優化。 指令集相同,但兩種不同的實現方式導致兩種微架構在功耗-性能曲線上有兩個不同的點。
最後一點,可以用人類語言類比指令集。 人類的語言種類繁多,但是語言僅用作底層概念的表示,原則上任何概念都能夠用任何語言表達,如果沒有對應的表述也可以自行添加。 以此類推,CPU 語言即指令集種類繁多,但也只是用作基本數學的表示,任何基本數學都可以用任何指令集表示,這與對人類語言的理解是相通的。
性能方面,一部分人的語速可能比另一部分人的語速更快或更慢,但這並不是語言本身造成的——類似地,某些 CPU 可能比另一些 CPU 更快或更慢(或耗電更多或更少),但這同樣不是由於指令集,而是由於影響這些特性的架構設計選擇造成的。
x86 強大的競爭優勢
從上文提到的 x86 的反面來看,顯然,外界對 x86 的 「常識」 是:往好里說,它是遺留下來的麻煩,往壞里說,它因為能效太低而劣勢嚴重。
然而,我們完全忽略了基於 x86,英特爾對其架構體系的演進有絕對的控制權,這可以被稱之為 x86 以及英特爾的強大競爭優勢。 因為行業中的其他企業都依賴於他人來定義自己所需要用到的架構,雖然這一情況在 x86 領域反過來也成立——AMD 的大多數晶元都必須跟隨英特爾的變化而變化,而且 ARM 世界中的成員可能未來需要依賴英偉達(目前英偉達正在尋求收購 Arm)。
不過,RISC-V 是開源的,不屬於某一家公司,因此不存在依賴與被依賴的關係。
最近,英特爾的兩個動作說明瞭它可以多麼輕鬆地向其 x86 架構添加新指令進行創新。 首先,英特爾宣佈了用於 AI 加速的下一代 AMX DLBoost,其性能將比當前的 AVX-512 高 4 至 8 倍。 其次,英特爾公佈了將近 76 條新指令,為當前的 AVX-512 提供附加功能。
晶元大神 Jim Keller:爭論指令集是一件悲哀的事
為了讓本文的觀點更加具有說服力,我們可以看看這個行業中最受尊敬的人——吉姆·凱勒 (Jim Keller)最近在接受 AnandTech 採訪時闡述的觀點。
吉姆·凱勒曾在蘋果、AMD 和英特爾工作過,顯然他的立場更加中立。 最近,吉姆·凱勒在 Tenstorrent 與 RISC-V 合作。
總結一下他提出的觀點:儘管他認為 x86 在維護向後相容性的遺留膨脹增加了一些複雜性,但他實際上也給出了一些 ARM 架構中遺留膨脹的例子。 此外,這種複雜性主要體現在CPU的設計中,可能會給晶片開發人員帶來一些麻煩,但不會嚴重影響最終的性能。 值得注意的是,實際上只有少數指令負責執行大部分代碼。
特別是,吉姆·凱勒毫不誇張地駁斥了去年年底一篇廣為流傳的媒體文章中反覆提到的一個論點:與 ARM的固定長度指令相比,x86 由於其可變長度指令而無法擴展到與 ARM 相同的性能。
事實上,吉姆·凱勒指出這些細節只會給晶元開發商帶來一些麻煩,但不會對最終使用者的整體晶元性能或功耗產生實質性影響。
最後,吉姆·凱勒還表示現在的 CPU 性能受到本文前面所描述的與指令集無關的問題(分支預測、緩存等功能)的限制,同時吉姆·凱勒還批評了英偉達使用其重新調整用途的 GPU 來處理 AI 的方法。
以下是吉姆·凱勒採訪節選:
在指令集上做爭論是一件非常悲哀的事情。 它甚至不是幾十個操作代碼——80% 的核心執行只有 6 條指令——載入、存儲、加法、減法、比較和分支。 這些幾乎涵蓋了所有。 如果你使用 Perl 或其他語言編寫代碼,則「調用」和」返回”可能比”比較”和”分支”更重要。 但是指令集的影響很小,你可能會因為丟失指令而損失 10% 或 20% 的性能。
有一段時間我們認為 X86 可變長度指令真的很難解碼,但我們一直在想辦法解決。 我們基本上可以預測所有指令在表格中的位置,一旦有了好的預測器,就可以很好地預測這些內容。
因此,如果是打造小型計算機,固定長度的指令似乎是不錯的選擇,但是如果是要打造一台真正的大型計算機,要預測或找出所有指令的位置,固定長度的指令就不佔優勢,所以這沒有那麼重要。
蘋果”過度炒作”M1
討論到此為止,讓我們回到蘋果晶元本身,本文仍然沒有完全解釋,蘋果是如何從”某種程度上落後於英特爾”到如今”或多或少地領先於英特爾”的(這裡所謂的落後和領先,取決於如何比較)。
上面引用的 AnandTech 圖片和文章已經解釋了蘋果與英特爾之間的故事,與其說蘋果超越了英特爾,倒不如說是英特爾停滯不前,而蘋果則保持著一年一度的更新節奏穩步前進。
英特爾為何停滯不前是一個悲傷的故事,至少對英特爾的粉絲和投資者而言如是。
簡而言之,英特爾在製造方面遇到了一些問題,10nm 延期了三年多,然後 7nm 又延期了一年。 正如 AMD 股東所知,英特爾的延期對其競爭對手非常有利。 然而,正如新上任的英特爾 CEO Pat Gelsinger 所闡釋的那樣,隨著 EUV 的相對成熟,英特爾已經完全接受了 EUV,並在未來幾年重新走向工藝領先軌道,甚至更快地回到產品領先地位。
這或多或少解釋了為什麼說蘋果 M1 是在過度炒作。
人們稱讚蘋果 M1,就好像它是自切片麵包以來最好的科技產品——但事實並非如此,這隻是蘋果之前晶片的進化產品。 相關評估表明,在相同的時鐘頻率下,將一個 A14 內核與一個 A13 內核進行比較時,A14 的速度快了不到 10%,它也不比英特爾或 AMD 在市場的產品速度快多少。
因此,蘋果在 M1 上並沒有取得任何堪稱非凡的成就。 蘋果也許根本不應該稱它為 M1,因為這個名字表明這款晶片是全新的,或許 M14 更加貼切。 換句話說,M1 晶元是具有兩個更多高性能內核的 A14(從雙核改進為四核)。
事實上,蘋果最新的 iPad 使用的也是相同的 M1 晶片,一些觀點忽視了 M1 只是帶有兩個額外內核的 A14,並且過度稱讚那些使用 M1 的 iPad。
不過可以肯定的是,除了名稱之外,該晶元本身確實運行速度快且功耗低,但這主要歸功於文章開頭所提到的那一點:世界一流的蘋果開發團隊選擇了一種每時鐘性能更高、頻率更低的架構,然後結合台積電最新的 5nm 節點製造晶片。
為證實這一觀點,可以觀察上面的基準測試圖,該晶元比英特爾最新的四核 Tiger Lake 晶片快一點。 這可能是最恰當的比較,因為 M1 也有4個快核心。 顯然,就像英特爾一樣,這意味著 M1 無法與速度更快的 8 核 AMD 晶片相匹敵。
值得注意的是,英特爾最近通過推出自己的8核 Tiger Lakes 趕上了 AMD。
在某些方面,這可能意味著蘋果已經落後了。 蘋果需要其下一代 M2(又名 A15X)才能真正保持競爭力。
綜上所述,蘋果 M1 所取得的成績不在於指令集的差異,部分原因的確是因為使用了台積電的 5nm。
添加更多的加速器是蘋果的優勢
儘管設計仍然非常重要,但有關 x86 與 Arm 的討論也忽略了製造。 假設蘋果的 M1 採用 28nm 之類的製程製造,是否會有人認為 28nm M1 會比任何基於 7nm 工藝製程的 CPU(包括 x86)更節能。
同樣,這篇文章提到的內容太多,我們只需要看Arm就夠了。 但實際上,與眾多 7nm 晶片相比較, M1 和 A14 都是台積電最新 5nm 工藝的首批晶片。
此外,由於目標市場的差異,時鐘速度的差異也起著重要作用——英特爾或 AMD 不會突然向台式機市場推出 3GHz 晶片,兩家公司可能會繼續進行一些不同的權衡以實現各自的目標。
雖然設計具有極高頻率和每時鐘高性能的晶元有點困難,但並非不可能。 例如,英特爾的一篇研究論文提到,與 14nm Skylake 相比,它們的每時鐘性能僅通過擴展其一些架構結構就實現了 2 倍以上的性能。 這種擴展屬於上文提到的”技巧”。
除了研究論文之外,吉姆·凱勒本人也表示英特爾正致力於更大的CPU。
最後,還有另一個常見的誤解值得注意。 在蘋果的話語體系中 ,它有一個獨特的優勢——控制著”完整的小部件”,因此它能夠在其晶元上添加其他加速器,M1 不是英特爾和 AMD 等傳統公司設計出來的 CPU,而是一個 SoC。
不過,查看英特爾最新的 Tiger Lake SoC 的框圖(下圖),就會發現 Tiger Lake 與 M1 一樣是多加速器 SoC,這實際上也是去年技術分析師稱讚 Tiger Lake 的亮點之一:
英特爾採用 CPU、GPU、NPU 和 ISP 的全新整體計算方法更像是智慧手機而不是經典 PC,尤其是當你考慮該公司正在使用代號為 Lakefield 的混合 CPU 等產品時。 這是一件好事。 十多年來,PC 一直夢想有一個更加異構的計算環境,使得智能手機也能在其上運行。 也許 Tiger Lake和第 11 代酷睿才是開始。 現在,我們需要更多利用所有 NPU、DSP 和 FPGA 的 PC 軟體。
人們甚至可以嘗試在 M1 中尋找不在 Tiger Lake 中的東西,很明顯,這樣的東西並不存在,它們都有 CPU、GPU、顯示、I/O、圖像處理、AI加速、安全、媒體加速、音訊、Wi-Fi、供電和管理控制器等。
唯一可以爭論的點是,英特爾缺少一個 multi-tera-ops 專用AI加速器,不過英特爾選擇通過集成其所謂的 DLBoost 來利用其 CPU 和 GPU,而不是神經引擎。 因此,在 multi-tera-ops 方面,英特爾在 AI 能力方面實際上並不落後於蘋果。
事實上,英特爾發現了一些真實世界的人工智慧應用程式,在這些應用程式中,Tiger Lake 完全擊敗 M1——目前,英特爾的說法已經得到一些外媒證實。
關於這些基準,需要強調的是,無論它們是否是英特爾精心挑選的都並不重要,如果蘋果 M1 在所有方面都出色,那麼它應該在每項基準測試中都以較大優勢獲勝。 事實並非如此,這一顯而易見的事實證明 M1 被炒作誇大了:該晶片可能速度很快,但這一基準可能並不在英特爾基準測試的範圍內。
寫在後面
X86 永不過時。
正如 Pat Gelsinger 在重新加入英特爾擔任 CEO 時所說的那樣,因為有 1 萬億行代碼針對 X86 進行了優化,而軟體生態系統才是指令集真正的護城河。
當然,即使是軟體生態系統也只能走到這一步,任何人都可以編寫 Java 或其他代碼,然後在 Arm 或 x86 CPU 上運行它們。
不少人認為,蘋果的 Mac 銷量是因為蘋果 M1 晶片的推出而蓬勃發展。 但是這一點值得懷疑,因為晶元短缺和遠端辦公熱潮同時掀起,PC 整體迎來了有史以來最好的一年,該行業每天銷售 100 萬台個人電腦,大約十年或永遠不會再看到這種情況。
儘管蘋果的整體表現強勁,但蘋果 M1 帶來的任何額外需求都不能孤立存在,而且不是主要需求。
無論如何,對於一家本質上是售賣消費設備的公司來說,內部開發晶元可被視為真正的優勢。 在競爭方面,蘋果與台積電(作為第一個 5nm 客戶)的合作夥伴關係以及英特爾的許多延期帶來了一些優勢。
展望未來,相當激烈的競爭將繼續或加劇——例如英特爾已經號稱在幾年內重返工藝和產品領先地位,另外,在英特爾工藝延期之前,蘋果實際上獲取的相對於領先優勢離 2-3 倍還差得遠。
總之一句話:蘋果沒有贏,而 Intel 也沒有輸——x86 與 ARM 之間的大戰仍在繼續,並且將曠日持久地繼續下去。
雷鋒網編譯自Seekingalpha