蘋果 M1 Pro 、 M1 Max 發表的反思: x86 生態長期以 CPU 為尊的生態終將被 Arm 的所有核心皆重要理念攻破

蘋果 M1 Pro 、 M1 Max 發表的反思: x86 生態長期以 CPU 為尊的生態終將被 Arm 的所有核心皆重要理念攻破

在蘋果 2021 年的第二場秋季發表會的重頭戲,莫過於重回以專業使用為本的大改版 MacBook Pro 以及兩款高性能 Pro 級 Apple Silicon : M1 Pro 與 M1 Max 。姑且不論實際使用的表現是否誠如蘋果聲稱般的優秀,但以硬體架構的角度觀察,則也透露出 x86 生態長期積累以 CPU 為尊的架構方針,使得在運算領域以異構設計為本的 Arm 架構得以反撲。

照片中提到了NOW AVAILABLE ON、AMD RYZEN™ 3000 SERIES、AMDA,包含了amd 智能存取內存 ryzen 3000、AMD Radeon RX系列、雷岑、AMD公司、中央處理器

▲ x86 生態長期以 CPU 為尊、其它組件為附庸的概念是 GPU 加速運算的性能門檻之一 

在 x86 架構自 1978 年出現以來,至今已超過 40 個年頭,在悠久的歷史發展之下, x86 架構必須維持架構的一致性以及與過往指令集的相容性,這也導致 x86 的許多基礎概念與設計就被歷史積累的情況所拖累,在長達 40 年的發展歷程, x86 CPU 廠商近乎三十年的時間仍舊專注在 CPU 本身,將其它架構視為附庸,同時作業系統的工作流程也多以 CPU 為尊,產生嚴重的強幹弱枝發展模式。

由於 GPU 的概念一直是到 1999 年 NVIDIA 發表 GeForce 256 之後才有雛型,在以往 x86 的圖形晶片僅是做為顯示畫面之用;雖然 GPU 的說法開創了現在專業圖形加速運算的輝煌世代卻也是這十年間才真正使 x86 CPU 備感威脅,不得不認真面對異構運算與加速運算帶來的價值,但同時蘋果全力發展 10 年的 Apple Silicon ,即一反 CPU 與 GPU 各自發展的方式,自始至終皆是以全功能的 SoC 為概念出發。

照片中提到了SSD、CUSTOM I/O UNIT、MAIN CUSTOM CHIP,跟腳本有關,包含了ps5架構、的PlayStation 5、的PlayStation 4、控制、固態硬盤

▲ x86 反而是在遊戲機先實現 CPU 與 GPU 的統一記憶體架構

也由於 x86 生態長期 CPU 廠商與 GPU 廠商各自為政、不相干社的發展模式, x86 的系統架構至今多半仍是優先由 CPU 號令一切的運算過程,導致幾年前異構運算的性能瓶頸反而是卡在資料自系統記憶體到加速器記憶體之間的反覆搬遷,近年雖設法從軟體層與架構層改善,不過目前仍僅在 HPC 與資料中心有顯著的改革,消費市場仍多為 CPU 主導運算過程。

如同 AMD 雖然併購 ATi 多年,但旗下 CPU 與 GPU 的發展仍猶如兩條平行線,至今仍未見出發點良好的 APU 在 PC 上有符合「全面運算」概念的設計, CPU 與 GPU 仍未屬於同一世代,整體設計僅是把 CPU 與 GPU 封裝在同一個基板上,反倒是 AMD 提供給 PlayStation 4 遊戲機的客製版 APU 較早就採用統一記憶體架構設計,同時 PS5 與新一代 Xbox 主機的客制化 SoC 亦為統一記憶體架構。 

▲ Arm 架構自 Smart Phone 開始盛行後,在運算級產品即是採用完整的異構 SoC 設計

回過頭來看 Arm 架構在運算領域的發展, Arm 架構原本屬於 RISC 精簡指令集,最早的應用多為微控制器( MCU )與即時控制器( Realtime Control Unit )等功能單純的應用,直到智慧手機概念崛起後,才開啟 Arm 架構的運算級 CPU 之路,不過也由於智慧手機無論在尺寸;電池容量與消費者希冀的續航力等, Arm 架構自 PDA Phone 轉向 Smart Phone 後,即是以異構 SoC 的概念出發。

由於行動設備的特質與能耗限制, Arm 架構 SoC 的設計理念即是 Right architecure for the right task ,以最適合的架構因應不同的工作項目,故在 Arm 的 SoC 當中,相當早就盡可能整合各式工作相關的大小異構核心,並且自作業系統著手,將不同的工作分配到這些專職的核心上,盡可能使工作效率最佳化,同時 Arm 架構 SoC 也相當早就採用統一記憶體架構,使共用的記憶體的資料能直接使 SoC 的各種核心直接存取。

▲如 M1 Max 高達 64 GB 的統一記憶體,即可為複雜的加速運算提供充裕的記憶體

雖然可能會有人指出當前具備 GPU 的 x86 CPU 也同樣共享系統記憶體,不過統一記憶體架構與多數 x86 處理器的 CPU 與 GPU 共享記憶體是有決定性差異的;在 x86 處理器所謂的記憶體共享,多半是將記憶體區塊切出部分專屬空間供 GPU 使用,等同是把系統記憶體切開成為兩組獨立區塊供 CPU 與 GPU 各自使用,彼此仍無法直接存取各自管理的記憶體內容。

除了影響 CPU 與系統的最大可用記憶體外,雖然表面上是共享系統記憶體,但一旦牽涉到 CPU 與 GPU 的協同運算,記憶體內的資料還是需要自 CPU 管理的區塊與 GPU 管理的區塊之間不斷頻繁的搬運,實際上的結果與 CPU 搭配獨立 GPU 的狀況並無不同。

照片中提到了NVLINK FABRIC、Advancing Multi-GPU Processing,包含了英偉達、英偉達、英偉達DGX、圖形處理單元、超級電腦

▲ NVLink 有兩項重要目的:提供 CPU 與 GPU 對等的命令與溝通權,以及試圖實現 CPU 與 GPU 統一記憶體

若回到 x86 CPU 搭配獨立 GPU ,則如同多數消費者熟知的生態一樣, CPU 與 GPU 的記憶體完全獨立,同時資料傳輸需透過 CPU 的 PCIe 傳輸通道進行,然而由於 x86 架構直至近日才剛要進入 PCIe 4.0 普及、開始進入 PCIe 5.0 的時代,縱使是 PCIe 4.0 的頻寬,仍不足以達到 CPU 與 GPU 本身對於所管理的 RAM 的頻寬,導致 x86 系統至今仍難以實現統一記憶體架構。

▲ NVIDIA Grace 可說是由於 x86 CPU 與 GPU 開發者之間長年恩怨情仇難以握手共創未來的結果

也因此,如 NVIDIA 在確立 GPU 加速運算之路為重要發展方向之後,陸續發表 NVLink 、 NVSwitch 兩項高速通道互聯技術,還有基於 Arm 架構、且可藉由 NVLink 與下一代 GPU 進行統一記憶體架構的自研超算 CPU ” Grace “,試圖擺脫受制於現在 CPU 受制 Intel 與 AMD 等 x86 架構,彼此對加速運算各有打算且難以深入合作的情況。

回蘋果本身,蘋果 Apple Silicon 的 CPU 雖是強調蘋果自主 CPU 架構,不過本質上則是基於 Arm CPU 指令集,然而蘋果並未依循 Arm 的 Cortex-A 微架構,而是針對自身的作業系統特質,開發一套最佳化的 CPU 微架構,使得 Apple Silicon 雖然看似時脈設定不高,核心數量也不多,但在許多的測試項目卻展現驚人的性能,有人將此歸功於蘋果架構師的技術高明,但筆者認為這樣的結果更是源自蘋果擅長的軟、硬一手包辦的發展模式。

照片中提到了400GB/s、Memory bandwidth,跟塞爾吉奧·羅西(Sergio Rossi)有關,包含了天空、/ m / 02j71、地球、股票攝影、攝影

▲統一記憶體意味著無論 CPU 或 GPU 區塊皆可由同樣的頻寬存取記憶體

同時, Apple Silicon 由於採用 Arm 指令即作為基礎,在第一款筆電級處理器 Apple M1 ,蘋果即維持在手機上的統一記憶體架構,不過萬萬沒想到的是,蘋果在此次的 M1 Pro 與 M1 Max 也同樣採用統一記憶體架構,這也成為新一代 MacBook Pro 除了與系統最佳化的架構規劃以外的重要性能火力來源。

從專業應用角度,現在有越來越多的應用程式陸續支援 GPU 加速與異構運算,不過如同前面所述,傳統加速運算最大的瓶頸會卡在 GPU 或是加速器運算後的結果回傳到 CPU 管理的系統記憶體;此外,如高解析度影像製作、 3D 繪圖、 AI 學習、精密流體模擬等,若以異構運算執行,在傳統架構當中也會面臨 GPU 記憶體容量的挑戰。

照片中提到了Unified、Unified、memory,包含了圖、設計、產品設計、產品、線

▲ M1 Max 可提供最大 64GB 的統一記憶體,多數筆記型電腦的 CPU + GPU 記憶體也沒這麼大

然而 M1 Pro 與 M1 Max 藉由統一記憶體架構,使得 CPU 與 GPU 可共享至少 16GB RAM (哇嗚與 PS5 一樣多耶!)、最大 64GB (對不起但你得掏出 10 萬台幣以上)的記憶體,同時彼此運算結果直接在統一記憶體架構供 CPU 與 GPU 以高速通道直接存取, CPU 與 GPU 可同時對資料進行修改,不用再透過緩慢的 PCIe 通道作為媒介進行繁瑣的複製傳輸,這也意味著可大幅提升異構運算的效率,同時使高效能的 GPU 具備更大的 RAM 執行更複雜的運算。

照片中提到了GPU performance vs. power、400、M1 Max,包含了圖、線、文獻、紙、字形

▲雖然 Apple Silicon 的 GPU 性能數據不惡,不過是專為專業內容創作的加速所需並非遊戲效能

但畢竟 M1 Pro 與 M1 Max 的本質是供專業內容工作者所規劃的處理器,而非如消費級 x86 架構以娛樂為訴求,撇開能源效率不談, M1 Pro 與 M1 Max 用於遊戲娛樂的表現恐仍不及當代中高階獨立 GPU ,只是透過單機執行 AAA 遊戲也並非 MacBook Pro 系列的目的,蘋果現在很明確的就是將 Pro 系列產品定位在專業用戶,而非 x86 生態產品仍具一定的通用功能。

換句話說,只要是目前多數的遊戲還未能全面走向雲端化,只要追求 AAA 遊戲的狂熱分子仍在,基於 x86 架構的遊戲娛樂電腦就不可能在短期被消滅,與其說這是蘋果的弱項,不如說蘋果在專業應用與頂級消費應用之間選擇專注在專業應用領域,使這次的 M1 Pro 與 M1 Max 的功能著重在專業應用的特定核心族群。

▲ Apple Silicon 有許多設計是早在軟體規畫藍圖當中的獨有功能,蘋果恐怕不願把這些資訊透露給外部廠商

從結果來說,蘋果此次端出 M1 Pro 與 M1 Max ,也意味著蘋果在運算級 SoC 一旦啟動自研計畫後,就不會再走回頭路仰賴外廠支援,因為蘋果很清楚自己的作業系統會如何發展,蘋果能夠按照自己的步調規劃效率最佳且具差異化的 SoC 產品(例如 M1 Pro 與 M1 Max 支援在 iPhone 13 首度亮相的 ProRes 格式),這些需求都是外部供應商不可能完全依照蘋果要求量身訂製的,同時蘋果也同樣不可能冒著未來藍圖曝光的風險把這些資訊提供給這些生產通用處理器的外部客戶。

▲ Apple Silicon 勢必引領業界吹起一股 Arm 架構筆電熱潮,但其它生態圈恐難以複製蘋果模式

不過蘋果即便以 Arm 架構 Apple Silicon 繳出漂亮的成績單,倒也不代表 x86 時代就會因此衰亡,畢竟蘋果是一個獨特的軟硬一手包辦的生態,但在蘋果之外的生態環境多半為半開放生態,如微軟、 Google 有意規畫專屬的處理器,也不太可能完全放棄已有 40 年歷史的  x86 生態,只是可預期的是 x86 獨霸 PC 生態的情況將會因此逐漸出現破口, Arm 架構未來在消費級 PC 的佔比將會有一定的提升。