6

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 に移植できます。

4

2 に答える 2

1

Xeon と Xeon Phi の間には SIMD ISA の収束があり、最終的には同一になる可能性があります。Intel CPU ライン全体で同じ SIMD ISA が得られるとは思えません。小さな Quark SOC から Xeon Phi にまで及ぶことを覚えておいてください。AVX-1024 が Xeon Phi から Quark またはローエンドの Atom CPU に移行するまでには、おそらく無限の時間がかかります。

将来のものを含め、異なる CPU ファミリ間の移植性を向上させるために、裸の SIMD 命令や組み込み関数よりも高いレベルの概念を使用することをお勧めします。OpenCL、OpenMP、Cilk Plus、C++ AMP、および自動ベクトル化コンパイラを使用します。多くの場合、プラットフォーム固有の SIMD 命令を生成してくれます。

于 2015-08-06T01:39:45.460 に答える