x86-64-v4 は AVX-512 です。512 ビットのベクトルレジスター (32 本)、要素ごとのプレディケーション (predication) のためのマスクレジスター、そしてバイトとワードの要素 (BW)、ダブルワードとクワッドワード (DQ)、競合検出 (CD)、同じ命令の 128 ビットと 256 ビットのベクトルでの利用 (VL) の各サブセットから成ります。

x86-64-v4 で、それより低いすべてのレベルに加えて追加される機能。
機能提供するもの列挙方法Linux のフラグ例
AVX512FAVX-512 foundation.CPUID.(EAX=07H,ECX=0):EBX[16]avx512fkmovw
AVX512BWAVX-512 byte and word instructions.CPUID.(EAX=07H,ECX=0):EBX[30]avx512bwvdbpsadbw
AVX512CDAVX-512 conflict detection.CPUID.(EAX=07H,ECX=0):EBX[28]avx512cdvplzcntd
AVX512DQAVX-512 doubleword and quadword instructions.CPUID.(EAX=07H,ECX=0):EBX[17]avx512dqvpmullq
AVX512VLAVX-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 があります。

出典

  1. x86-64 psABI: Micro-Architecture Levels
  2. GCC 11 release notes
  3. GCC 15 release notes (AVX10.2, APX)
  4. Intel Officially Confirms AVX10.2 and APX Support in Nova Lake (TechPowerUp)