如果AMD也支持AVX-512指令集会发生什么事?

高性能x86处理器永远那么难做。

最近有海外媒体报道某Twitter爆料大神,透露AMD下时代Zen 4核心,将支持AVX-512指令集和人工智能深度学习常用的bfloat16浮点格式(接着是EPYC核心数会从64激增到96个),或多或少也间接印证了“AMD将研发资源集中给Zen 4,沿用7纳米制程的Zen 3只是调校完毕的完善版”的观点。

这就让笔者不得不想到之前在“Linus Torvalds对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纳米制程”Cannon Lake,首度将AVX -512指令集放到个人计算机处理器,这等于是打开潘朵拉的宝盒,因为这代表当时的英特尔相信他们的制程技术,有办法“硬吃”AVX-512激增的晶体管数量与耗电量。

事后证明,英特尔完全失算,放弃实行有些年头的钟摆(Tick Tock)节奏,进入被外界戏称“挤牙膏”的“三段论”(新制程→新架构→优化)时期后,除了高不可攀的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吗?

说到最后,这一切的乱象,都是英特尔自己内部一堆“不安定因素(有看过灌篮高手湘北对陵南那场的读者,一定知道笔者想表达的意思)”累计到一定程度后的“业力引爆”:抢救x86义和团的遗产、一窝蜂猛冲人工智能、制程转换青黄不接,让英特尔在AVX-512兼容度前脚踩后脚,从头到尾都是自己人搞出来的问题,完全怨不得人。

话说回来,假若AMD真的在Zen 4靠着台积电5纳米制程,实现了“大致完整”的AVX-512兼容性,并一举解决以往执行AVX指令会大幅降低处理器时脉的宿疾,那英特尔昔日最自傲的“x86指令集兼容性”就将被AMD反将一军。让人不得不期待,这天一旦发生,英特尔该如何应对,而新任首席执行官Pat Gelsinger又将做何解释。这出好戏,届时一定非常有趣。

(首图来源:AMD)