英特尔在 Xeon Phi 上有多个 SIMD ISA,例如 SSE、AVX、AVX2、AVX-512 和 IMCI。这些 ISA 在不同的处理器上受支持。例如,AVX-512 BW、AVX-512 DQ 和 AVX-512 VL 仅在 Skylake 上受支持,而在 Xeon Phi 上不支持。Skylake 和 Xeon Phi 均支持 AVX-512F、AVX-512 CDI、AVX-512 ERI 和 AVX-512 PFI。
为什么英特尔不设计一种更通用的 SIMD ISA,可以在其所有高级处理器上运行?
此外,英特尔在开发 ISA 时删除了一些内在函数并添加了新的。很多内在函数有很多风格。例如,有些工作在压缩的 8 位上,而有些工作在压缩的 64 位上。有些口味没有得到广泛支持。例如,至强融核将无法处理压缩的 8 位值。然而,Skylake 将拥有这个。
为什么英特尔会以如此不一致的方式更改其 SIMD 内在函数?
如果 SIMD ISA 彼此更兼容,则现有的 AVX 代码可以更轻松地移植到 AVX-512。