Intel には、SSE、AVX、AVX2、AVX-512、Xeon Phi 上の IMCI など、いくつかの SIMD ISA があります。これらの ISA は、さまざまなプロセッサでサポートされています。たとえば、AVX-512 BW、AVX-512 DQ、および AVX-512 VL は Skylake でのみサポートされ、Xeon Phi ではサポートされません。AVX-512F、AVX-512 CDI、AVX-512 ERI、および AVX-512 PFI は、Skylake と Xeon Phi の両方でサポートされています。
インテルは、すべての先進プロセッサーで実行できる、より汎用的な SIMD ISA を設計しないのはなぜですか?
また、インテルは、ISA の開発時にいくつかの組み込み関数を削除し、新しい組み込み関数を追加しています。多くの組み込み関数には多くのフレーバーがあります。たとえば、パックされた 8 ビットで動作するものもあれば、パックされた 64 ビットで動作するものもあります。一部のフレーバーは広くサポートされていません。たとえば、Xeon Phi には、パックされた 8 ビット値を処理する機能がありません。ただし、Skylakeにはこれがあります。
Intel がその SIMD 組み込み関数を一貫性のない方法で変更するのはなぜですか?
SIMD ISA 同士の互換性が高ければ、既存の AVX コードをより少ない労力で AVX-512 に移植できます。