アドバンスト・ベクター・エクステンション(AVX、別名Gesher New Instructions、後にSandy Bridge New Instructionsとも呼ばれる)は、IntelおよびAdvanced Micro Devices (AMD)のマイクロプロセッサ向けx86命令セットアーキテクチャのSIMD拡張である。AVXは2008年3月にIntelによって提案され、 2011年第1四半期に出荷されたSandy Bridge [ 1 ]マイクロアーキテクチャで初めてIntelによってサポートされ、その後、 2011年第4四半期に出荷されたBulldozer [ 2 ]マイクロアーキテクチャでAMDによってサポートされた。AVXは、新しい機能、新しい命令、そして新しいコーディングスキームを提供する。
AVX2(Haswell New Instructionsとも呼ばれる)は、ほとんどの整数命令を256ビットに拡張し、新しい命令を導入します。これらは、2013年に出荷されたHaswellマイクロアーキテクチャでIntelによって初めてサポートされました。
AVX-512は、 2013年7月にIntelによって提案され、2016年に出荷されたKnights LandingコプロセッサでIntelによって初めてサポートされた新しいEVEXプレフィックスエンコーディングを使用して、AVXを512ビットサポートに拡張します。 [ 3 ] [ 4 ]従来のプロセッサでは、AVX-512は2017年にSkylakeサーバーおよびHEDTプロセッサ で導入されました。
AVXは16個のYMMレジスタを用いて、複数のデータに対して単一の命令を実行します(SIMD参照)。各YMMレジスタは以下のデータを保持し、同時に演算(算術演算)を実行できます。
SIMDレジスタの幅は128ビットから256ビットに拡張され、XMM0~XMM7からYMM0~YMM7に名称が変更されました(x86-64モードではXMM0~XMM15からYMM0~YMM15に変更)。従来のSSE命令は、 VEXプレフィックスを介して引き続き利用でき、YMMレジスタの下位128ビットを操作できます。
| 511256 | 255128 | 1270 |
| ZMM0 | YMM0 | XMM0 |
| ZMM1 | YMM1 | XMM1 |
| ZMM2 | YMM2 | XMM2 |
| ZMM3 | YMM3 | XMM3 |
| ZMM4 | YMM4 | XMM4 |
| ZMM5 | YMM5 | XMM5 |
| ZMM6 | YMM6 | XMM6 |
| ZMM7 | YMM7 | XMM7 |
| ZMM8 | YMM8 | XMM8 |
| ZMM9 | YMM9 | XMM9 |
| ZMM10 | YMM10 | XMM10 |
| ZMM11 | YMM11 | XMM11 |
| ZMM12 | YMM12 | XMM12 |
| ZMM13 | YMM13 | XMM13 |
| ZMM14 | YMM14 | XMM14 |
| ZMM15 | YMM15 | XMM15 |
| ZMM16 | YMM16 | XMM16 |
| ZMM17 | YMM17 | XMM17 |
| ZMM18 | YMM18 | XMM18 |
| ZMM19 | YMM19 | XMM19 |
| ZMM20 | YMM20 | XMM20 |
| ZMM21 | YMM21 | XMM21 |
| ZMM22 | YMM22 | XMM22 |
| ZMM23 | YMM23 | XMM23 |
| ZMM24 | YMM24 | XMM24 |
| ZMM25 | YMM25 | XMM25 |
| ZMM26 | YMM26 | XMM26 |
| ZMM27 | YMM27 | XMM27 |
| ZMM28 | YMM28 | XMM28 |
| ZMM29 | YMM29 | XMM29 |
| ZMM30 | YMM30 | XMM30 |
| ZMM31 | YMM31 | XMM31 |
AVX は、宛先レジスタが 2 つのソースオペランドと異なる、VEX コーディング方式と呼ばれる 3 オペランド SIMD 命令形式を導入します。たとえば、従来の 2 オペランド形式a ← a + bを使用するSSE命令は、両方のソースオペランドを保持する非破壊的な 3 オペランド形式c ← a + bを使用できるようになりました。もともと、AVX の 3 オペランド形式は SIMD オペランド (YMM) を持つ命令に限定されており、汎用レジスタ (EAX など) を持つ命令は含まれていませんでした。これは後に、 BMIなどの後の拡張で汎用レジスタ上の新しい命令をコーディングするために使用されました。VEX コーディングは、 AVX-512で導入された k0-k7 マスクレジスタを操作する命令にも使用されます。
SIMDメモリオペランドのアライメント要件が緩和されました。[ 5 ] VEXコードでないベクトル命令とは異なり、VEXコードのベクトル命令のほとんどは、メモリオペランドをベクトルサイズにアライメントする必要がなくなりました。ただし、命令自体はVMOVDQAメモリオペランドをアライメントする必要があることに変わりはありません。
新しいVEXコーディングスキームは、オペコード空間を拡張し、命令が2つ以上のオペランドを持つことが可能になり、SIMDベクターレジスタが128ビットを超えることを可能にする新しいコードプレフィックスセットを導入します。VEXプレフィックスは、従来のSSE命令にも使用でき、3つのオペランド形式を実現することで、VZEROUPPERおよびを必要とせずにAVX命令との連携をより効率的に行うことができますVZEROALL。
AVX命令は128ビットと256ビットの両方のSIMDをサポートしています。128ビット版は、ベクトル化を拡張することなく古いコードを改善し、SSEからAVXへの移行に伴うペナルティを回避するのに役立ちます。また、初期のAMD製AVX実装ではより高速です。このモードはAVX-128と呼ばれることもあります。[ 6 ]
これらの AVX 命令は、従来の 128 ビット SSE 命令の 256 ビット拡張である命令に加えて、ほとんどの命令は 128 ビットと 256 ビットの両方のオペランドで使用できます。
| 命令 | 説明 |
|---|---|
VBROADCASTSS、、VBROADCASTSDVBROADCASTF128 | 32 ビット、64 ビット、または 128 ビットのメモリ オペランドを XMM または YMM ベクトル レジスタのすべての要素にコピーします。 |
VINSERTF128 | 256ビットYMMレジスタの下位半分または上位半分を128ビットのソースオペランドの値に置き換えます。デスティネーションの残りの半分は変更されません。 |
VEXTRACTF128 | 256 ビット YMM レジスタの下位半分または上位半分を抽出し、その値を 128 ビットの宛先オペランドにコピーします。 |
VMASKMOVPS、VMASKMOVPD | SIMDベクトルメモリオペランドから任意の数の要素を条件付きでデスティネーションレジスタに読み込み、残りのベクトル要素は読み出さずに、デスティネーションレジスタの対応する要素をゼロに設定します。あるいは、SIMDベクトルレジスタオペランドから任意の数の要素を条件付きでベクトルメモリオペランドに書き込み、メモリオペランドの残りの要素は変更しません。AMD Jaguarプロセッサアーキテクチャでは、メモリソースオペランドを持つこの命令は、マスクがゼロの場合に300クロックサイクル以上かかります。この場合、命令は何も実行しないはずです。これは設計上の欠陥であると思われます。[ 7 ] |
VPERMILPS、VPERMILPD | レーン内置換。1つの入力オペランドの32ビットまたは64ビットのベクトル要素をシャッフルする。これらはレーン内256ビット命令であり、2つの独立した128ビットシャッフルを用いて256ビットすべてを処理するため、128ビットレーン間でシャッフルすることはできない。[ 8 ] |
VPERM2F128 | 2 つの 256 ビット ソース オペランドの 4 つの 128 ビット ベクトル要素を、即値定数をセレクターとして使用して 256 ビットの宛先オペランドにシャッフルします。 |
VTESTPS、VTESTPD | パックされた単精度または倍精度浮動小数点符号ビットのパックされたビット テスト。AND に基づいて ZF フラグを設定し、ANDN に基づいて CF フラグを設定またはクリアします。 |
VZEROALL | すべてのYMMレジスタをゼロに設定し、未使用としてタグ付けします。128ビット使用と256ビット使用を切り替える際に使用します。 |
VZEROUPPER | すべてのYMMレジスタの上位半分をゼロに設定します。128ビット使用と256ビット使用を切り替えるときに使用します。 |
将来の Intel プロセッサと AMD プロセッサ間の互換性に関する問題については、XOP 命令セットで説明します。
AVXは256ビット幅のYMMレジスタファイルを通じて新しいレジスタ状態を追加するため、コンテキストスイッチ間でAVXの拡張レジスタを適切に保存および復元するには、明示的なオペレーティングシステムのサポートが必要です。以下のオペレーティングシステムバージョンがAVXをサポートしています。
AVX2(Advanced Vector Extensions 2)は、 Haswell New Instructionsとも呼ばれ、[ 24 ] IntelのHaswellマイクロアーキテクチャで導入されたAVX命令セットの拡張版です。AVX2では以下の機能が追加されています。
3オペランド融合積和演算(FMA3)拡張は、Intelによって同じプロセッサマイクロアーキテクチャで導入されたため、AVX2の一部と見なされることがあります。これは独自のCPUIDフラグを使用する独立した拡張であり、以下ではなく 専用のページで説明されています。
| 命令 | 説明 |
|---|---|
VBROADCASTSS、VBROADCASTSD | 32ビットまたは64ビットのレジスタオペランドをXMMまたはYMMベクトルレジスタの全要素にコピーします。これらはAVX1の同じ命令のレジスタバージョンです。128ビットバージョンはありませんが、VINSERTF128を使用することで同じ効果を簡単に実現できます。 |
VPBROADCASTB、、、、VPBROADCASTWVPBROADCASTDVPBROADCASTQ | 8、16、32、または 64 ビットの整数レジスタまたはメモリ オペランドを XMM または YMM ベクトル レジスタのすべての要素にコピーします。 |
VBROADCASTI128 | 128 ビットのメモリ オペランドを YMM ベクトル レジスタのすべての要素にコピーします。 |
VINSERTI128 | 256ビットYMMレジスタの下位半分または上位半分を128ビットのソースオペランドの値に置き換えます。デスティネーションの残りの半分は変更されません。 |
VEXTRACTI128 | 256 ビット YMM レジスタの下位半分または上位半分を抽出し、その値を 128 ビットの宛先オペランドにコピーします。 |
VGATHERDPD、、、、VGATHERQPDVGATHERDPSVGATHERQPS | 32 ビットまたは 64 ビットのインデックスとスケールを使用して、単精度または倍精度の浮動小数点値を 収集します。 |
VPGATHERDD、、、、VPGATHERDQVPGATHERQDVPGATHERQQ | 32 ビットまたは 64 ビットのインデックスとスケールを使用して、32 ビットまたは 64 ビットの整数値を収集します。 |
VPMASKMOVD、VPMASKMOVQ | SIMDベクトルメモリオペランドから任意の数の要素を条件付きでデスティネーションレジスタに読み込み、残りのベクトル要素は読み出さずに、デスティネーションレジスタの対応する要素をゼロに設定します。または、SIMDベクトルレジスタオペランドから任意の数の要素を条件付きでベクトルメモリオペランドに書き込み、メモリオペランドの残りの要素は変更しません。 |
VPERMPS、VPERMD | レジスタまたはメモリ オペランドをセレクタとして使用し、1 つの 256 ビット ソース オペランドの 8 つの 32 ビット ベクトル要素を 256 ビットの宛先オペランドにシャッフルします。 |
VPERMPD、VPERMQ | レジスタまたはメモリ オペランドをセレクタとして使用し、1 つの 256 ビット ソース オペランドの 4 つの 64 ビット ベクトル要素を 256 ビットの宛先オペランドにシャッフルします。 |
VPERM2I128 | 2 つの 256 ビット ソース オペランドの 4 つの 128 ビット ベクトル要素 (2 つ) を、即値定数をセレクターとして使用して 256 ビットの宛先オペランドにシャッフルします。 |
VPBLENDD | SSE4の PBLEND 命令のダブルワード即時バージョン。 |
VPSLLVD、VPSLLVQ | 左シフト論理。パックされた入力に応じて各要素をシフトする変数シフトを可能にします。 |
VPSRLVD、VPSRLVQ | 右シフト論理。パックされた入力に従って各要素をシフトする変数シフトを可能にします。 |
VPSRAVD | 算術的に右にシフトします。パックされた入力に従って各要素をシフトする変数シフトを可能にします。 |
AVX-512は、 2013年7月にIntelが提案したx86命令セットアーキテクチャ用の256ビットAdvanced Vector Extensions SIMD命令の512ビット拡張である。[ 3 ]
AVX-512命令は、新しいEVEXプリフィックスでエンコードされます。これにより、4つのオペランド、8つの新しい64ビットopmaskレジスタ、自動ブロードキャスト機能付きスカラーメモリモード、明示的な丸め制御、および圧縮ディスプレースメントメモリアドレッシングモードが可能になります。x86-64モードでは、レジスタファイルの幅が512ビットに拡張され、レジスタの総数は32(レジスタZMM0~ZMM31)に増加します。
AVX-512は複数の命令サブセットで構成されていますが、そのすべてがそれを実装するすべてのプロセッサでサポートされるわけではありません。命令セットは以下のとおりです。
すべての実装ではコア拡張であるAVX-512F(AVX-512 Foundation)のみが必須ですが、現在のすべての実装ではCD(競合検出)もサポートされています。AVX-512を搭載したすべてのCPUは、VL、DQ、BWもサポートしています。ER、PF、4VNNIW、4FMAPS命令セット拡張は、現在Intelコンピューティング・コプロセッサにのみ実装されています。
AVX-512Fで更新されたSSE/AVX命令は、AVXバージョンと同じニーモニックを使用しており、512ビットのZMMレジスタで動作できるほか、128/256ビットのXMM/YMMレジスタ(AVX-512VLの場合)とバイト、ワード、ダブルワード、クワッドワードの整数オペランド(AVX-512BW/DQおよびVBMIの場合)もサポートします。[ 26 ] : 23
廃止されたサブセットには次のものが含まれます。
サブセット | F | CD | 救急外来 | PF | 4FMAPS | 4VNNIW | VPOPCNTDQ | VL | 失格 | 白黒 | IFMA | VBMI | VBMI2 | ビタルグ | VNNI | BF16 | VPCLMULQDQ | GFNI | VAES | VP2インターセクト | FP16 | BMM |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| インテル・ナイツ・ランディング(2016) | はい | はい | いいえ | |||||||||||||||||||
| インテルナイツ ミル(2017) | はい | いいえ | ||||||||||||||||||||
| Intel Skylake-SP、Skylake-X (2017) | いいえ | いいえ | はい | いいえ | ||||||||||||||||||
| インテルキャノンレイク(2018) | はい | いいえ | ||||||||||||||||||||
| インテルCascade Lake-SP (2019) | いいえ | はい | いいえ | |||||||||||||||||||
| インテルクーパーレイク(2020) | いいえ | はい | いいえ | |||||||||||||||||||
| インテルアイスレイク(2019) | はい | いいえ | はい | いいえ | ||||||||||||||||||
| インテルタイガーレイク(2020) | はい | いいえ | ||||||||||||||||||||
| インテルロケットレイク(2021) | いいえ | |||||||||||||||||||||
| インテルアルダーレイク(2021) | 部分注1 | 部分注1 | いいえ | |||||||||||||||||||
| AMD Zen 4 (2022) | はい | はい | いいえ | |||||||||||||||||||
| インテルサファイア ラピッズ(2023) | いいえ | はい | いいえ | |||||||||||||||||||
| AMD Zen 5 (2024) | はい | いいえ | ||||||||||||||||||||
| AMD Zen 6(未定) | はい | |||||||||||||||||||||
^注1 :IntelはAlder Lake でAVX-512ファミリーの命令を公式にサポートしていません。2022年初頭、IntelはAlder Lakeマイクロプロセッサのシリコン内でAVX-512を無効化(ヒューズオフ)し、顧客がAVX-512を有効化できないようにしました。 [ 29 ] BIOSとマイクロコードリビジョンのレガシーな組み合わせを持つ古いAlder LakeファミリーCPUでは、AVX-512用のシリコンを搭載していないすべての効率コアを無効化した状態でも、AVX-512ファミリーの命令を実行できました。 [ 30 ] [ 31 ] [ 32 ]
AVX-VNNI は、AVX512-VNNI命令セット拡張のVEXコーディング版です。同様に、AVX-IFMA は、AVX512-IFMAのVEXコーディング版です。これらの拡張は、AVX-512 の対応する命令セットと同じ操作セットを提供しますが、256ビットのベクターに制限されており、ブロードキャスト、オペマスクレジスタ、16個を超えるベクターレジスタへのアクセスなど、 EVEXエンコーディングの追加機能はサポートしていません。これらの拡張により、プロセッサに AVX-512が実装されていない場合でも、VNNI および IFMA 操作をサポートできます。
AVX-NE-CONVERTは、 Bfloat16(BF16)、半精度(FP16)、単精度(FP32)の浮動小数点数間の変換を行うための命令セットを導入します。これらの新しい命令はVEXコードで記述されているため、AVX2ベクターレジスタに限定され、AVX-512のopmaskサポートは受けられません。ブロードキャストは、メモリから数値をロードするための2つの特殊命令によってのみサポートされており、命令エンコード機能としてはサポートされていません。
| 命令 | 説明 |
|---|---|
VBCSTNEBF162PS | メモリから 1 つの BF16 要素をロードし、FP32 に変換して、ベクトル レジスタにブロードキャストします。 |
VBCSTNESH2PS | メモリから 1 つの FP16 要素をロードし、それを FP32 に変換して、ベクトル レジスタにブロードキャストします。 |
VCVTNEEBF162PS、VCVTNEOBF162PS | パックされた BF16 要素をメモリから読み込み、偶数要素 ( の場合VCVTNEEBF162PS) または奇数要素 ( の場合VCVTNEOBF162PS) を FP32 に変換し、結果を宛先ベクトル レジスタに書き込みます。 |
VCVTNEEPH2PS、VCVTNEOPH2PS | パックされた FP16 要素をメモリから読み込み、偶数要素 ( の場合VCVTNEEPH2PS) または奇数要素 ( の場合VCVTNEOPH2PS) を FP32 に変換し、結果を宛先ベクトル レジスタに書き込みます。 |
VCVTNEPS2BF16 | ベクトルレジスタまたはメモリからパックされたFP32要素をロードし、要素をBF16に変換して、結果を宛先ベクトルレジスタに書き込みます。宛先ベクトルレジスタの上位ビットはゼロに設定されます。 |
これらの命令セットは、一連の命令に対してより多くの入力データ型の組み合わせをサポートすることで、AVX-VNNI拡張をさらに拡張します。AVX -VNNI命令は、最初の入力オペランドとして符号なしバイトのベクトルを、2番目の入力オペランドとして符号付きバイトのベクトルを受け取りますが、AVX-VNNI-INT8は、任意の位置で符号付きおよび符号なしバイトの入力をサポートするこれらの命令の派生型を追加します。同様に、AVX- VNNI命令は、入力オペランドとして符号付き16ビットワードの2つのベクトルを受け取りますが、AVX-VNNI-INT16は、任意の位置で符号付きおよび符号なし16ビットワードの入力をサポートします。 VPDP*VPDPBUSD(S)VPDPWSSD(S)
符号付き入力と符号なし入力を受け入れる命令については、VEXエンコーディングがメモリオペランドとして2番目の入力オペランドのみをサポートしているため、2つの可能な入力順序(符号付き/符号なしと符号なし/符号付き)に対してそれぞれ異なる命令が用意されています。これにより、サポートされている任意のデータ型を命令によってメモリからロードできます。
| 命令 | 説明 |
|---|---|
VPDPBSSD、VPDPBSSDS | 2 番目の入力の 4 組の符号付きバイトのグループを最初の入力の対応する符号付きバイトと乗算し、それらの積を合計して、出力のダブルワード結果に加算します。VPDPBSSDS結果の符号付き飽和を実行します。 |
VPDPBSUD、VPDPBSUDS | 2 番目の入力の 4 組の符号なしバイトのグループを最初の入力の対応する符号付きバイトと乗算し、それらの積を合計して出力のダブルワード結果に加算します。VPDPBSUDS結果の符号付き飽和を実行します。 |
VPDPBUUD、VPDPBUUDS | 2 番目の入力の 4 組の符号なしバイトのグループを最初の入力の対応する符号なしバイトと乗算し、それらの積を合計して出力のダブルワード結果に加算します。VPDPBUUDS結果の符号付き飽和を実行します。 |
| 命令 | 説明 |
|---|---|
VPDPWSUD、VPDPWSUDS | 2 番目の入力の 2 組の符号なしワードのグループを最初の入力の対応する符号付きワードと乗算し、それらの積を合計して出力のダブルワード結果に加算します。VPDPWSUDS結果の符号付き飽和を実行します。 |
VPDPWUSD、VPDPWUSDS | 2 番目の入力の 2 組の符号付きワードのグループを、最初の入力の対応する符号なしワードと乗算し、それらの積を合計して、出力のダブルワード結果に加算します。VPDPWUSDS結果の符号付き飽和を実行します。 |
VPDPWUUD、VPDPWUUDS | 2 番目の入力の 2 組の符号なしワードのグループを、最初の入力の対応する符号なしワードと乗算し、それらの積を合計して、出力のダブルワード結果に加算します。VPDPWUSDS結果の符号付き飽和を実行します。 |
2023年7月に発表されたAVX10 [ 39 ]は、新しい「統合型」AVX命令セットです。AVX-512のいくつかの問題点、特に分割されすぎている点[ 40 ](20個の機能フラグ)に対処しています。初期の技術論文では512ビットベクトルのサポートはオプションとされていましたが、リビジョン3.0以降、ベクトル長の列挙は削除され、512ビットベクトルが必須となっています[ 41 ] 。
AVX10は命令サポートをテストするための簡略化されたCPUIDインターフェースを提供しており、これはAVX10バージョン番号(サポートされている命令セットを示し、新しいバージョンは常に以前のバージョンのスーパーセットになります)で構成されています。[ 42 ]たとえば、AVX10.2はCPUがAVX10の2番目のバージョンに対応していることを示します。[ 43 ] AVX10技術仕様の最初の改訂では、ISA拡張名の一部としてサポートされている最大ベクトル長も含まれていました。たとえば、AVX10.2/256はベクトル長が最大256ビットのAVX10の2番目のバージョンを意味しますが、後の改訂ではそれは不要になりました。
AVX10の最初のバージョンであるAVX10.1は、AVX -512(具体的にはIntel Sapphire Rapids:AVX-512F、CD、VL、DQ、BW、IFMA、VBMI、VBMI2、BITALG、VNNI、GFNI、VPOPCNTDQ、VPCLMULQDQ、VAES、BF16、FP16)に既に存在する命令やエンコード機能以外の機能は導入していません。AVX10および512ビットベクターをサポートするCPUでは、従来のAVX-512機能フラグはすべて設定されたままとなり、AVX-512をサポートするアプリケーションが引き続きAVX-512命令を使用できるようにします。[ 43 ]
AVX10.1はIntel Granite Rapids [ 43 ] (2024年第3四半期)で初めてリリースされ、AVX10.2はDiamond Rapids [ 44 ]とNova Lake [ 45 ]で利用可能になる予定です。
AVX命令は幅が広いため、消費電力と発熱量が増加します。CPUクロック周波数を高く設定し、負荷変動時の過度な電圧降下により、負荷の高いAVX命令を実行するとCPUの安定性に影響を与える可能性があります。一部のIntelプロセッサには、このような命令の実行時にTurbo Boostの周波数制限を下げる機能が搭載されています。この周波数制限は、CPUが熱および消費電力の制限に達していない場合でも適用されます。
Skylakeとその派生製品では、スロットリングは3つのレベルに分かれています。[ 66 ] [ 67 ]
周波数の遷移はソフトまたはハードのいずれかになります。ハード遷移とは、該当する命令が検出された時点で周波数が低下することを意味します。ソフト遷移とは、一致する命令が一定数に達した場合にのみ周波数が低下することを意味します。制限はスレッドごとに設定されます。[ 66 ]
アイスレイクでは、2つのレベルのみが存続します。[ 68 ]
Rocket Lakeプロセッサは、ベクトルサイズに関係なく、あらゆる種類のベクトル命令を実行しても周波数の低下をトリガーしません。[ 68 ]ただし、熱や電力の制限に達するなど、他の理由によりダウンクロックが発生する可能性があります。
ダウンクロックとは、Intelプロセッサで混合ワークロードにおいてAVXを使用すると、周波数の低下を招く可能性があることを意味します。このような場合、ワイド命令や重い命令の使用を避けることで、影響を最小限に抑えることができます。AVX-512VLは、AVX-512命令で256ビットまたは128ビットのオペランドを使用できるため、混合ワークロードの適切なデフォルトとなります。[ 69 ]
ダウンクロックが可能なプロセッサのサポート対象およびロック解除済みの機種では、クロック比削減オフセット(通常AVXおよびAVX-512オフセットと呼ばれる)は調整可能であり、インテルのオーバークロック/チューニングユーティリティまたはBIOS(サポートされている場合)で完全にオフ(0xに設定)にすることができます。[ 70 ]
VEX プレフィックスを持つほとんどの命令のメモリ引数は、バイト粒度アライメントに関係なく #GP(0) を発生することなく正常に動作します (レガシー SSE 命令とは異なります)。
リンク先のセクションの画像をご覧ください。AVX2比率は0に設定されています。