avx-512指令集,曾经是intel的杀手锏,但是随着12代酷睿引入大小核混合架构,e核无法支持avx-512,不得不整体屏蔽,反倒是amd zen4架构加入了avx-512,形势瞬间逆转。
现在,intel公布了全新的“apx”(高级性能执行),以及全新的指令集“avx10”(高级指令扩展10),第一次可以让p大核、e小核都支持avx-512!
基本层面上,大核可以完整执行256/512位指令,小核则只能执行融合256位指令(可以粗略理解为支持到avx-256)。
更深层面上,avx10可以说是avx-512的超集,不但包含所有的avx-512指令,对应的功能标识为avx-512vl,还有256位的矢量寄存器、八个32位的掩码寄存器、支持嵌入式舍入的新版256位指令。
其中,p大核可以可以使用512位矢量,e小核则限制在256位矢量长度。
avx10推出后,avx-512也将彻底冻结,不会再有变化,未来对于它的使用都通过avx10来实现。
intel强调,现有应用基于avx-512、avx10的性能是一样的,至少在同等矢量长度下没有区别。
avx2编译的程序,重新编译支持avx10,会获得性能提升,且无需再次对软件调优。
对矢量寄存器压力敏感的avx2程序,获得的性能提升最明显,这要感谢额外的16个矢量寄存器和新的指令。
高度线程化的矢量化应用在e核上运行时,可获得更高的总吞吐量。
intel下一代消费级酷睿处理器是meteor lake,依然不会有avx-512,再下一代的arrow lake是否会首次加入avx10,尚不确认。
今年底,intel将推出第五代可扩展至强emerald rapids,只是现有第四代sapphire rapids的升级版,因此要到明年的第六代至强granite rapids,才会加入avx10。
至于明年首款纯小核设计的sierra forest,是否也会加入avx10,暂时不清楚。
不过,avx10的落地分为两步,第一步是avx10.1,用于六代至强granite rapids,仅支持512位矢量指令,而不支持融合256位矢量指令。
第二步是avx10.2,应该用于七代至强clearwater forest,加入融合256位矢量指令,并加入其他新功能,比如ai数据类型和转换、数据转移优化等等。