如果AMD 也支持AVX-512 指令集會發生什么事?
2021-04-07 13:56:23 EETOP這就讓筆者不得不想到之前在「Linus Torvalds對AVX-512的批評是否公道」一文中,文末寫了三個假設:
從Alder Lake 開始,Intel「似乎」在主流桌面型處理器,開了取消AVX-512 第一槍,是否意味AVX-512 將淡出個人電腦舞臺?
筆者沒事看到那種「AVX-512砍掉就砍掉,淡出就淡出,沒什么大不了」的幼稚言論,就只會納悶,講這種話的人到底有沒有想過一件事:英特爾真這樣干了,哪天AMD反過來全面支持AVX-512并標榜「宣稱他們家的產品享有最滴水不漏的x86軟件兼容性」反打英特爾一槍,那該怎么辦?順便一提,VIA Centaur睽違多年的全新x86處理器CHA,也具備AVX-512了,手腳竟然還比AMD還快,至于完整度如何在此不予置評。
總之我們先回稍微回顧一下「始作俑者」英特爾在「x86義和團之亂」的退潮期,是如何為了讓 Larrabee 的徒子徒孫,有一條轉戰高效能運算與人工智能的退路,而讓AVX-512指令集變成「讓x86指令集再度碎片化」的地雷。
「計算機架構」(Computer Architecture)一詞,源自于歷史上首款可回溯相容軟件的IBM S/360 大型主機,意味著指令集架構(ISA,Instruction Set Architecture)相同的電腦,可執行同樣軟件。基于維護軟件兼容性和「生態系統一致性」,指令集一向是「易加難砍」,讓資產和包袱成為一枚硬幣的兩面。
80×86指令集因長期缺乏業界公定版本標準的關系,而導致碎片化問題,原本隨著實質的玩家只剩下英特爾與AMD(加上毫無存在感的俄羅斯Elbrus,與中國臺灣的VIA), AMD也放棄了SSE5,「皈依」英特爾AVX,而漸漸云淡風輕。
但英特爾在Xeon Phi 與Sky Lake-SP 導入的AVX-512,不僅吹皺一池春水,在2018 年首款「實驗性10 納米制程」CannonLake,首度將AVX-512 指令集放到個人電腦處理器,這等于是打開潘朵拉的盒子,因為這代表當時的英特爾相信他們的制程技術,有辦法「硬吃」AVX-512 激增的晶體管數量與耗電量。
事后證明,英特爾完全失算,放棄行之有年的鐘擺(TickTock)節奏,進入被外界戲稱「擠牙膏」的「三段論」(新制程→新架構→最佳化)時期后,除了高不可攀的Skylake-X與「逆向硬干Sunny Cove核心」的Rocket Lake,沒有任何一款桌上型處理器支持AVX-512,這等于是對過去自負「我家產品擁有最佳x86軟件兼容性」的英特爾,狠狠打自己一巴掌。
更糟糕的是,英特爾自己也讓AVX-512 的版本變得混亂不堪,一再上演「新產品不見得兼容舊產品」的戲碼。以剛上市的第十一代Core Rocket Lake 為例,因為Cypress Cove 核心是「14 納米制程硬干出10 納米制程Sunny Cove」,所以Tiger Lake 的Willow Cove 核心多出來的VP2INTERSECT,就這樣不見了。
英特爾在2019年鬧出的「Cooper Lake-SP腰斬事件」是另一則慘案,為了滿足某個「超級大客戶」 (據稱是Facebook)的深度學習需求,讓第三代Xeon-SP平臺Whitley的先發處理器Cooper Lake-SP支持bfloat16(然后因不明原因被中途腰斬,保留Cedar Island平臺的Cooper Lake-P),反倒是后面 10納米制程的Ice Lake-SP 卻付之闕如,須等到第四代Xeon-SP平臺Eagle Stream的Sapphire Rapids。
最歡樂的莫過于「Golden Cove 大核+Gracemont 小核」的Alder Lake,為了確保大核小核彼此之間的指令集兼容性,Golden Cove 的AVX-512 直接被「閹割」掉。這就回到另一個大哉問:假使哪天英特爾被AMD 逼著所有產品都非得要有AVX-512 不可,那英特爾真的也要讓新一代Atom 體系小核支持AVX-512 嗎?
說到最后,這一切的亂象,都是英特爾自己內部一堆「不安定因素(有看過灌籃高手湘北對陵南那場的讀者,一定知道筆者想表達的意思)」累積到一定程度后的「業力引爆」,讓英特爾在AVX-512相容度前腳踩后腳,從頭到尾都是自己人搞出來的問題,完全怨不得人。
話說回來,假若AMD真的在Zen 4靠著臺積電5納米制程,實現了「大致完整」的AVX-512兼容性,并一舉解決過往執行AVX指令會大幅降低處理器主頻的宿疾,那英特爾昔日最自傲的「x86指令集兼容性」就將被AMD反將一軍。讓人不得不期待,這天一旦發生,英特爾該如何應對,而新任CEO 帕特·基爾辛格(Pat Gelsinger)又將做何解釋。這出好戲,屆時一定非常有趣。