x86-64-v4
AVX-512 Foundation と、そのサブセットである BW、CD、DQ、VL を追加します。Intel は 2017 年の Skylake-SP で、AMD は 2022 年の Zen 4 で初めてこのレベルに達しました。
x86-64-v4 は AVX-512 です。512 ビットのベクトルレジスター (32 本)、要素ごとのプレディケーション (predication) のためのマスクレジスター、そしてバイトとワードの要素 (BW)、ダブルワードとクワッドワード (DQ)、競合検出 (CD)、同じ命令の 128 ビットと 256 ビットのベクトルでの利用 (VL) の各サブセットから成ります。
| 機能 | 提供するもの | 列挙方法 | Linux のフラグ | 例 |
|---|---|---|---|---|
| AVX512F | AVX-512 foundation. | CPUID.(EAX=07H,ECX=0):EBX[16] | avx512f | kmovw |
| AVX512BW | AVX-512 byte and word instructions. | CPUID.(EAX=07H,ECX=0):EBX[30] | avx512bw | vdbpsadbw |
| AVX512CD | AVX-512 conflict detection. | CPUID.(EAX=07H,ECX=0):EBX[28] | avx512cd | vplzcntd |
| AVX512DQ | AVX-512 doubleword and quadword instructions. | CPUID.(EAX=07H,ECX=0):EBX[17] | avx512dq | vpmullq |
| AVX512VL | AVX-512 instructions on 128- and 256-bit vectors. | CPUID.(EAX=07H,ECX=0):EBX[31] | avx512vl | 該当なし |
このレベルのプロセッサー
- Intel Core (client)
- Cannon Lake (2018), Ice Lake (client) (2019), Tiger Lake (2020), Rocket Lake (2021), Nova Lake (発表済み)
- Intel Xeon (server)
- Skylake-SP (2017), Cascade Lake (2019), Cooper Lake (2020), Ice Lake (server) (2021), Emerald Rapids (2023), Sapphire Rapids (2023), Granite Rapids (2024), Diamond Rapids (発表済み)
- AMD (high performance)
- Zen 4 (2022), Zen 5 (2024), Zen 6 (発表済み)
注意点
- Alder Lake (2021 年) から Panther Lake (2026 年) までの Intel のクライアント向けハイブリッドプロセッサーは AVX-512 をサポートしておらず、x86-64-v3 です。Intel は Nova Lake での AVX10.2 のサポートを確認しており、これによりクライアント向けプロセッサーに 512 ビットのベクトルが戻ってきます。
- Xeon Phi プロセッサーの Knights Landing と Knights Mill は AVX-512 Foundation と CD を実装していますが、BW、DQ、VL は実装していないため、x86-64-v3 です。
- AMD の Zen 4 は 512 ビットの演算を 256 ビットずつ 2 つに分けて実行し、Zen 5 はほとんどのモデルで 512 ビット幅をそのまま処理するユニットを備えています。どちらも x86-64-v4 です。レベルが表すのはどの命令が存在するかであり、それがどれだけ速く動くかではありません。
このレベル向けのビルド
gcc -march=x86-64-v4 ... # GCC 11+, Clang 12+
GOAMD64=v4 go build ... # Go 1.18+
RUSTFLAGS="-C target-cpu=x86-64-v4" cargo build ...
psABI は x86-64-v4 より後のレベルを定義していません。それ以降の拡張は個別に有効にします。たとえば GCC 15 には、AVX10.2 用の -mavx10.2 と APX 用の -mapxf があります。