Intel AVX-512
読み:インテル-エイヴィーエックス-ごひゃくじゅうに
外語:Intel Advanced Vector Extensions 512
Intelプロセッサーの拡張命令セットで、Intel AVX2の後継仕様。
概要
元々、SSE用として追加された128ビット長XMMレジスターを倍の256ビット長に拡張したYMMレジスターを用いる、新しい命令セットとして追加されたものがIntel AVXであり、機能追加したものがIntel AVX2である。
Intel AVX-512は、更に倍の512ビット長に拡張されたZMMレジスターを用いた、更に新しい命令セットとして追加されたものである。
次のような拡張が施されている。
Intel AVXがVEXプリフィックスによって命令の拡張をしたが、512ビットへの拡張やレジスター数の増加への余地がなかっため、AVX-512では更にEVEXプリフィックスを追加した。
特徴
機能
Intel AVX-512は様々な機能を提供するが、全てのプロセッサーで全機能が実装されることを想定していない、複数の要素から構成されている。
Intel AVX-512として全プロセッサーで対応するのはAVX512F(AVX-512 Foundation)のみで、他はオプションである。殆どはIntel Xeon Phi専用命令だが、Intel AVX-512の命令は少しずつ増え続けている。
命令セットの構成は次のとおりである。
- AVX512F (Foundation) ‐ EVEXでの符号化、512ビットレジスター、オペレーションマスク、パラメーターブロードキャストなど
- AVX512DQ (Doubleword and Quadword) ‐ 強化された32ビットおよび64ビットの整数演算命令
- AVX512IFMA52
- AVX512PF (Prefetch Instructions) ‐ Xeon Phi(開発コードネームKnights Landing)で対応する、新プリフェッチ機能
- AVX512ER (Exponential and Reciprocal) ‐ Xeon Phi(Knights Landing)で対応する、超越関数などの実装向けの指数関数と逆関数
- AVX512CD (Conflict Detection) ‐ Xeon Phi(Knights Landing)で対応する、ベクトル化のための効率的な競合の検出
- AVX512BW (Byte and Word) ‐ 強化された8ビットおよび16ビットの整数演算命令
- AVX512VL (Vector Length) ‐ XMMレジスター(128ビット)とYMMレジスター(256ビット)で動作するAVX-512命令
- AVX512_VBMI
- AVX512_VBMI2
- AVX512_VNNI
- AVX512_BITALG
- AVX512_VPOPCNTDQ
- AVX512_4VNNIW
- AVX512_4FMAPS
機能の有無判別
EAXレジスターに7、ECXレジスターにサブリーフ番号を代入してCPUID命令を実行し、EBX:ECX:EDXレジスターに得られたフラグで判別できる。
ECX=0でのEBXビット16のAVX512Fが1であればIntel AVX-512対応であると判断でき、更に必要な機能が搭載されているかどうかを判断してから機能を利用することになる。
- EAX=7, ECX=0
- EBXレジスター
- ビット16 AVX512F (AVX-512 Foundation)
- ビット17 AVX512DQ (Doubleword and Quadword)
- ビット21 AVX512IFMA52
- ビット26 AVX512PF (Prefetch Instructions)
- ビット27 AVX512ER (Exponential and Reciprocal)
- ビット28 AVX512CD (Conflict Detection)
- ビット30 AVX512BW (Byte and Word)
- ビット31 AVX512VL (Vector Length)
- ECXレジスター
- ビット1 AVX512_VBMI
- ビット6 AVX512_VBMI2
- ビット11 AVX512_VNNI
- ビット12 AVX512_BITALG
- ビット14 AVX512_VPOPCNTDQ
- EDXレジスター
- ビット2 AVX512_4VNNIW
- ビット3 AVX512_4FMAPS
再検索