Advanced Vector ExtensionsAVX、別名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は、新しい機能、新しい命令、そして新しいコーディングスキームを提供します。

AVX2Haswell 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レジスタは以下のデータを保持し、同時に演算(算術演算)を実行できます。

  • 8つの32ビット単精度浮動小数点数または
  • 4 つの 64 ビット倍精度浮動小数点数。

SIMDレジスタの幅は128ビットから256ビットに拡張され、XMM0~XMM7からYMM0~YMM7に名称が変更されました(x86-64モードではXMM0~XMM15からYMM0~YMM15に変更)。従来のSSE命令は、 VEXプレフィックスを介して引き続き利用でき、YMMレジスタの下位128ビットを操作できます。

AVX は、宛先レジスタが 2 つのソースオペランドと異なる、VEX コーディング方式と呼ばれる 3 オペランド SIMD 命令形式を導入します。たとえば、従来の 2 オペランド形式aa + bを使用するSSE命令は、両方のソースオペランドを保持する非破壊的な 3 オペランド形式ca + 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 ビットの両方のオペランドで使用できます。

AVX搭載CPU

  • インテル
    • Sandy Bridgeプロセッサ(2011年第1四半期)以降(CeleronおよびPentiumブランドのモデルを除く)。[9]
    • Tiger Lake (2020年第3四半期)以降のPentiumおよびCeleronブランドのプロセッサ[10]
  • AMD

将来の Intel プロセッサと AMD プロセッサ間の互換性に関する問題については、XOP 命令セットで説明します。

  • 経由
    • ナノクアッドコア
    • エデンX4
  • 昭信
    • WuDaoKouベースのプロセッサ(KX-5000およびKH-20000)

コンパイラとアセンブラのサポート

  • Absoft は-mavx フラグでサポートします。
  • Free Pascalコンパイラは、バージョン 2.7.1 以降、-CfAVX および -CfAVX2 スイッチを使用して AVX および AVX2 をサポートします。
  • RAD studio(v11.0 Alexandria)はAVX2とAVX512をサポートしています。[12]
  • GNUアセンブラ(GAS)のインラインアセンブリ関数はこれらの命令をサポートしており(GCC経由でアクセス可能)、IntelプリミティブやIntelインラインアセンブラも同様にサポートしています(GASと高い互換性がありますが、インラインコード内のローカル参照の扱いはより汎用的です)。GASはbinutilsバージョン2.19以降でAVXをサポートしています。[13]
  • GCCバージョン 4.6 以降 (ただし、特定のサポートを含む 4.3 ブランチもありました) および Intel コンパイラ スイート バージョン 11.1 以降では AVX がサポートされています。
  • Open64コンパイラ バージョン 4.5.1 は、-mavx フラグを使用して AVX をサポートします
  • PathScale は-mavx フラグ経由でサポートされます。
  • Vector Pascalコンパイラは、-cpuAVX32 フラグを介して AVX をサポートします。
  • Visual Studio 2010/2012コンパイラは組み込みおよび /arch:AVX スイッチを介して AVX をサポートします。
  • NASMはバージョン2.03以降で開始されました。バージョン2.04では、AVXに関連する多数のバグ修正とアップデートが行われました。[14]
  • 他のアセンブラとしては、MASM VS2010バージョン、YASM、[15] FASMJWASMなどがあります。

オペレーティングシステムのサポート

AVXは256ビット幅のYMMレジスタファイルを通じて新しいレジスタ状態を追加するため、コンテキストスイッチ間でAVXの拡張レジスタを適切に保存および復元するには、明示的なオペレーティングシステムのサポートが必要です。以下のオペレーティングシステムバージョンがAVXをサポートしています。

  • DragonFly BSD : 2013 年初頭にサポートが追加されました。
  • FreeBSD : 2012年1月21日に提出されたパッチでサポートが追加され、[16] 9.1安定版リリースに含まれました。[17]
  • Linux : カーネルバージョン2.6.30以降でサポートされています。[18] 2009年6月9日にリリースされました。[19]
  • macOS : 2011年6月23日にリリースされた10.6.8 ( Snow Leopard )アップデート[20] [信頼できない情報源? ]でサポートが追加されました。実際、macOS VenturaはAVX2命令セットのないx86プロセッサをサポートしていません。[21]
  • OpenBSD : 2015年3月21日にサポートが追加されました。[22]
  • Solaris : Solaris 10 Update 10 および Solaris 11 でサポートされます。
  • Windows : Windows 7 SP1、Windows Server 2008 R2 SP1、[23] Windows 8Windows 10でサポートされています
    • Windows Server 2008 R2 SP1 と Hyper-V では、AMD AVX (Opteron 6200 および 4200 シリーズ) プロセッサをサポートするために修正プログラム (KB2568088) が必要です。
    • Windows XPおよびWindows Server 2003 は、カーネル ドライバーとユーザー アプリケーションの両方で AVX をサポートしていません。

高度なベクトル拡張 2

AVX2(Advanced Vector Extensions 2)は、 Haswell New Instructionsとも呼ばれ[24] IntelのHaswellマイクロアーキテクチャで導入されたAVX命令セットの拡張版です。AVX2では以下の機能が追加されています。

  • ほとんどのベクトル整数SSEおよびAVX命令を256ビットに拡張
  • ギャザーサポートにより、ベクトル要素を非連続のメモリ位置からロードできるようになります。
  • DWORD および QWORD 粒度の任意対任意の順列
  • ベクトルシフト。

3オペランド融合積和演算(FMA3)拡張は、Intelによって同じプロセッサマイクロアーキテクチャに導入されたため、AVX2の一部と見なされることがあります。これは独自のCPUIDフラグを使用する独立した拡張であり、以下ではなく専用のページで説明されています

新しい指示

AVX2搭載CPU

AVX-512

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-512 Foundation (F) – いくつかの新しい命令を追加し、EVEXコーディングスキームを使用してほとんどの32ビットおよび64ビット浮動小数点SSE-SSE4.1およびAVX/AVX2命令を拡張し、512ビットレジスタ、演算マスク、パラメータブロードキャスト、および組み込み丸めと例外制御をサポートします。
  • AVX-512 競合検出命令 (CD) – 効率的な競合検出により、より多くのループをベクトル化できる。Knights Landing [3]でサポートされている。
  • AVX-512 指数および逆数命令(ER) - 指数および逆数演算は超越演算の実装を支援するために設計され、Knights Landingによってサポートされている[3]
  • AVX-512 プリフェッチ命令 (PF) – Knights Landing [3]でサポートされている新しいプリフェッチ機能
  • AVX-512 ベクトル長拡張(VL) - ほとんどのAVX-512演算を拡張し、XMM(128ビット)およびYMM(256ビット)レジスタ(x86-64モードではXMM16-XMM31およびYMM16-YMM31を含む)でも演算できるようにしました[25]
  • AVX-512 バイトおよびワード命令 (BW) – AVX-512 を拡張して 8 ビットおよび 16 ビットの整数演算をカバーする[25]
  • AVX-512 ダブルワードおよびクワッドワード命令(DQ) - 拡張された32ビットおよび64ビット整数演算[25]
  • AVX-512 整数融合乗算加算(IFMA) – 512ビット整数の融合乗算加算。[26] : 746 
  • AVX-512 ベクター バイト操作命令 (VBMI) は、AVX-512BW には存在しないベクター バイト置換命令を追加します。
  • AVX-512 ベクトル ニューラル ネットワーク命令 ワード可変精度 (4VNNIW) – ディープラーニング用のベクトル命令。
  • AVX-512 融合乗算累積パック単精度 (4FMAPS) – ディープラーニング用のベクトル命令。
  • VPOPCNTDQ – 1に設定されているビットの数。[27]
  • VPCLMULQDQ – キャリーレスのクワッドワード乗算。[27]
  • AVX-512 ベクトルニューラルネットワーク命令(VNNI) - 深層学習用ベクトル命令。[27]
  • AVX-512 ガロア体新命令(GFNI) -ガロア体を計算するためのベクトル命令。[27]
  • AVX-512 ベクトルAES命令(VAES) - AESコーディング用のベクトル命令。[27]
  • AVX-512 ベクトルバイト操作命令2(VBMI2) – バイト/ワードのロード、ストア、シフトによる連結。[27]
  • AVX-512 ビットアルゴリズム (BITALG) – VPOPCNTDQ を拡張したバイト/ワードビット操作命令。[27]
  • AVX-512 Bfloat16浮動小数点命令 (BF16) – AI アクセラレーション用のベクトル命令。
  • AVX-512半精度浮動小数点命令 (FP16) – 精度を下げた浮動小数点数と複素数を演算するためのベクトル命令。

すべての実装ではコア拡張である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 

廃止されたサブセットには次のものが含まれます。

  • AVX-512 ベクトルペア交差とマスクレジスタペア (VP2INTERSECT) – ダブルワード/クワッドワードとマスクレジスタペアの交差を計算します。Intelにより廃止されました
  • Xeon Phi ER、PF、4FMAPS、4VNNIW。

AVX-512 CPU互換性表

[28]

^注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-512をサポートするコンパイラ

  • Clang 3.9以降[33]
  • GCC 4.9以降[34]
  • ICC 15.0.1以降[35]
  • Microsoft Visual Studio 2017 C++コンパイラ[36]

AVX-512をサポートするアセンブラ

AVX-VNNI、AVX-IFMA

AVX-VNNI は、AVX512-VNNI命令セット拡張のVEXコーディング版です。同様に、AVX-IFMA は、AVX512-IFMAVEXコーディング版です。これらの拡張は、AVX-512 の対応する命令セットと同じ操作セットを提供しますが、256ビットのベクターに制限されており、ブロードキャスト、オペマスクレジスタ、16個を超えるベクターレジスタへのアクセスなど、 EVEXエンコーディングの追加機能はサポートしていません。これらの拡張により、プロセッサに 完全なAVX-512サポートが実装されていない場合でも、VNNI および IFMA 操作をサポートできます。

AVX-VNNI 搭載 CPU

AVX-IFMA 搭載 CPU

  • インテル
    • Sierra Forest E コアのみの Xeon プロセッサ (2024 年第 2 四半期) 以降。
    • Grand Ridge 特殊用途プロセッサ以降。
    • Meteor Lakeモバイル プロセッサ (2023 年第 4 四半期) 以降。
    • Arrow Lakeデスクトップ プロセッサ (2024 年第 4 四半期) 以降。

AVX10

2023年7月に発表されたAVX10 [38]は、新しい「統合型」AVX命令セットです。AVX-512のいくつかの問題点、特に分割されすぎている点[39](20個の機能フラグ)に対処しています。当初の技術論文では512ビットベクトルのサポートはオプションとされていましたが、リビジョン3.0以降、ベクトル長の列挙は削除され、512ビットベクトルが必須となっています[40] 。

AVX10は命令サポートをテストするための簡略化されたCPUIDインターフェースを提供しており、これはAVX10バージョン番号(サポートされている命令セットを示し、新しいバージョンは常に以前のバージョンのスーパーセットになります)で構成されています。[41]たとえば、AVX10.2はCPUがAVX10の2番目のバージョンに対応していることを示します。[42] 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命令を使用できるようになります。[42]

AVX10.1はIntel Granite Rapids [42] (2024年第3四半期)で初めてリリースされ、AVX10.2はDiamond Rapids [43]Nova Lake [44]で利用できるようになります

アプリケーション

  • マルチメディア、科学、金融アプリケーションでの浮動小数点を多用する計算に適しています(AVX2 は整数演算のサポートを追加します)。
  • 浮動小数点SIMD計算における並列性とスループットを向上します。
  • 非破壊命令によりレジスタの負荷を軽減します。
  • Linux RAIDソフトウェアのパフォーマンスを向上(AVX2が必要、AVXだけでは不十分)[45]

ソフトウェア

  • 暗号化
    • BSAFE Cツールキットは、さまざまな暗号化アルゴリズムを高速化するために、必要に応じてAVXとAVX2を使用します。[46]
    • OpenSSLはバージョン1.0.2以降、AVXおよびAVX2に最適化された暗号化関数を使用しています。[47] AVX-512のサポートはバージョン3.0.0で追加されました。[48]これらの最適化の一部は、LibreSSLなどのさまざまなクローンやフォークにも含まれています。
  • マルチメディア
    • BlenderはCyclesレンダリングエンジンでAVX、AVX2、AVX-512を使用します。[49]
    • Native InstrumentsのMassive XソフトシンセにはAVXが必要です。[50]
    • dav1d AV1デコーダーは、サポートされているCPUでAVX2とAVX-512を使用できます。[51] [52]
    • SVT-AV1 AV1エンコーダはAVX2とAVX-512を使用してビデオエンコーディングを高速化できます。[53]
  • 科学、工学、その他
    • Esri ArcGIS Data StoreはグラフストレージにAVX2を使用しています。[54]
    • GIMPSに使用されているソフトウェアであるPrime95 / MPrimeは、バージョン27.1以降でAVX命令を使用し始め、28.6以降でAVX2、29.1以降でAVX-512を使用しています。[55]
    • Einstein@Homeは重力波を探索する分散アプリケーションの一部にAVXを使用しています[56]
    • TensorFlowバージョン1.6以降およびそれ以上のバージョンでは、少なくともAVXをサポートするCPUが必要です。[57]
    • EmEditor 19.0以降では、処理を高速化するためにAVX2を使用しています。[58]
    • Microsoft Teamsは、ビデオチャット参加者の背後にぼかしやカスタム背景を作成するためにAVX2命令を使用し、[59]背景ノイズを抑制します。[60]
    • JSON解析ライブラリであるsimdjsonは、AVX2とAVX-512を使用してデコード速度を向上させます。[61] [62]
    • x86-simd-sortは、16ビット、32ビット、64ビットの数値データ型のソートアルゴリズムを備えたライブラリで、AVX2とAVX-512を使用しています。このライブラリは、NumPyOpenJDKでソートアルゴリズムの高速化に使用されています。[63]
    • Tesseract OCRエンジンは、文字認識を高速化するためにAVX、AVX2、AVX-512を使用しています。[64]

ダウンクロック

AVX命令は幅が広いため、消費電力と発熱量が増加します。CPUクロック周波数を高く設定し、負荷変動時の過度な電圧降下により、負荷の高いAVX命令を実行するとCPUの安定性に影響を与える可能性があります。一部のIntelプロセッサには、このような命令の実行時にTurbo Boostの周波数制限を下げる機能が搭載されています。この周波数制限は、CPUが熱および消費電力の制限に達していない場合でも適用されます。

Skylakeとその派生製品では、スロットリングは3つのレベルに分かれています。[65] [66]

  • L0(100%):通常のターボブースト限界。
  • L1 (~85%): 「AVXブースト」の限界。256ビットの「重い」(浮動小数点演算ユニット:FP演算と整数乗算)命令によってソフトトリガーされます。512ビットの「軽い」(その他すべて)命令によってハードトリガーされます。
  • L2 (~60%): [疑わしい議論が必要]「AVX-512 ブースト」の制限。512ビットの重い命令によってソフトトリガーされる。

周波数の遷移はソフトまたはハードのいずれかです。ハード遷移とは、該当する命令が検出された時点で周波数が低下することを意味します。ソフト遷移とは、一致する命令が一定数に達した場合にのみ周波数が低下することを意味します。制限はスレッドごとに設定されます。[65]

アイスレイクでは2つのレベルのみが存続する: [67]

  • L0(100%):通常のターボブースト限界。
  • L1 (~97%): 512 ビット命令によってトリガーされますが、シングルコア ブーストがアクティブな場合のみであり、複数のコアがロードされている場合はトリガーされません。

Rocket Lakeプロセッサは、ベクトルサイズに関係なく、あらゆる種類のベクトル命令を実行しても周波数の低下をトリガーしません。[67]ただし、熱や電力の制限に達するなど、他の理由によりダウンクロックが発生する可能性があります。

ダウンクロックとは、Intelプロセッサで混合ワークロードにおいてAVXを使用すると周波数ペナルティが発生する可能性があることを意味します。このような場合、ワイドで重い命令の使用を避けることで影響を最小限に抑えることができます。AVX-512VLは、AVX-512命令で256ビットまたは128ビットのオペランドを使用できるため、混合ワークロードの合理的なデフォルトとなります。[68]

ダウンクロックが可能なプロセッサのサポート対象およびロック解除済みの機種では、クロック比削減オフセット(通常AVXおよびAVX-512オフセットと呼ばれる)は調整可能であり、Intelのオーバークロック/チューニングユーティリティまたはBIOS(サポートされている場合)で完全にオフ(0xに設定)にすることができます。[69]

参照

参考文献

  1. ^ Kanter, David (2010年9月25日). 「IntelのSandy Bridgeマイクロアーキテクチャ」www.realworldtech.com . 2018年2月17日閲覧
  2. ^ Hruska, Joel (2011年10月24日). 「Bulldozerの分析:AMDのチップが期待外れな理由 - 4/5ページ - ExtremeTech」. ExtremeTech . 2018年2月17日閲覧
  3. ^ abcde James Reinders (2013年7月23日)、AVX-512命令、Intel 、 2013年8月20日閲覧。
  4. ^ 「Intel Xeon Phi プロセッサー 7210 (16GB、1.30GHz、64コア) 製品仕様」。Intel ARK (製品仕様) 。 2018年3月16日閲覧
  5. ^ "14.9". Intel 64 および IA-32 アーキテクチャ ソフトウェア開発者マニュアル 第 1 巻:基本アーキテクチャ(PDF) (-051US 版). Intel Corporation. p. 349 . 2014 年8 月 23 日閲覧. VEX プレフィックスを持つほとんどの命令のメモリ引数は、バイト粒度アライメントに関係なく #GP(0) を発生することなく正常に動作します (レガシー SSE 命令とは異なります)。
  6. ^ 「i386およびx86-64オプション - GNUコンパイラコレクション(GCC)の使用」 。 2014年2月9日閲覧
  7. ^ 「Intel、AMD、VIA CPUのマイクロアーキテクチャ:アセンブリプログラマとコンパイラメーカーのための最適化ガイド」(PDF) 。 2016年10月17日閲覧
  8. ^ “Chess programming AVX2”. 2017年7月10日時点のオリジナルよりアーカイブ2016年10月17日閲覧。
  9. ^ 「IntelがNehalemとLarrabeeのプレビューを提供」ExtremeTech、2008年3月17日。
  10. ^ ab 「インテル® Celeron® 6305 プロセッサー(4M キャッシュ、1.80 GHz、IPU 搭載)製品仕様」ark.intel.com . 2020年11月10日閲覧
  11. ^ Butler, Michael; Barnes, Leslie; Das Sarma, Debjit; Gelinas, Bob (2011年3月~4月). 「Bulldozer: マルチスレッドコンピューティングパフォーマンスへのアプローチ」(PDF) . IEEE Micro . 31 (2): 6– 15. doi :10.1109/MM.2011.23. S2CID  28236214. 2024年5月19日時点のオリジナル(PDF)からのアーカイブ。
  12. ^ 「What's New - RAD Studio」. docwiki.embarcadero.com . 2021年9月17日閲覧
  13. ^ 「GASの変更点」. sourceware.org . 2024年5月3日閲覧。
  14. ^ ab 「NASM - The Netwide Assembler、付録C:NASMのバージョン履歴」。nasm.us 2024年5月3日閲覧
  15. ^ 「YASM 0.7.0 リリースノート」。yasm.tortall.net
  16. ^ amd64 の拡張 FPU 状態のサポートを追加、ネイティブ 64 ビットおよび 32 ビット ABI の両方に対応、svnweb.freebsd.org、2012 年 1 月 21 日、 2012 年1 月 22 日取得
  17. ^ 「FreeBSD 9.1-RELEASE アナウンスメント」 。 2013年5月20日閲覧
  18. ^ x86: YMM状態に対するLinuxカーネルサポートを追加2009年7月13日取得
  19. ^ Linux 2.6.30 - Linux Kernel Newbies 、 2009年7月13日閲覧。
  20. ^ Twitter 、 2010年6月23日閲覧。
  21. ^ 「開発者たちは、サポートされていない10年前のMacでmacOS Venturaを実行できるように進展させている」2022年8月23日。
  22. ^ XSAVE/XRSTORを使用したFPU状態の保存/復元のサポートを追加。 2015年3月25日取得
  23. ^ 64ビットドライバの浮動小数点サポート、 2009年12月6日取得
  24. ^ Haswell の新命令記述が利用可能に、Software.intel.com 2012年1月17日閲覧
  25. ^ abc James Reinders (2014年7月17日). 「AVX-512の追加命令」. Intel . 2014年8月3日閲覧
  26. ^ ab 「Intelアーキテクチャ命令セット拡張プログラミング・リファレンス」(PDF) . Intel . 2014年1月29日閲覧
  27. ^ abcdefg 「Intel® アーキテクチャ命令セット拡張および将来の機能プログラミング・リファレンス」。Intel . 2017年10月16日閲覧
  28. ^ 「Intel® Software Development Emulator | Intel® Software」. software.intel.com . 2016年6月11日閲覧
  29. ^ Alcorn, Paul (2022年3月2日). 「Intel、Alder LakeのAVX-512サポートを廃止、シリコンで廃止」. Tom's Hardware . 2022年3月7日閲覧
  30. ^ Cutress, Ian; Frumusanu, Andrei (2021年8月19日). “Intel Architecture Day 2021: Alder Lake, Golden Cove, and Gracemont Details”. AnandTech . 2021年8月25日時点のオリジナルよりアーカイブ。 2021年8月25日閲覧
  31. ^ Alcorn, Paul (2021年8月19日). 「Intel Architecture Day 2021: Alder Lakeチップ、Golden Cove、Gracemontコア」. Tom's Hardware . 2021年8月21日閲覧
  32. ^ Cutress, Ian; Frumusanu, Andrei. 「Intel 第12世代 Core i9-12900K レビュー:ハイブリッドパフォーマンスがもたらすハイブリッドの複雑性」www.anandtech.com。2021年11月4日時点のオリジナルよりアーカイブ。 2021年11月5日閲覧
  33. ^ 「LLVM 3.9 リリースノート — LLVM 3.9 ドキュメント」. releases.llvm.org . 2017年4月3日閲覧
  34. ^ 「GCC 4.9 リリースシリーズ — 変更点、新機能、修正 – GNU プロジェクト - フリーソフトウェア財団 (FSF)」gcc.gnu.org . 2017年4月3日閲覧
  35. ^ 「Intel® Parallel Studio XE 2015 Composer Edition C++ リリースノート | インテル® ソフトウェア」。software.intel.com 。 2017年4月3日閲覧
  36. ^ 「Microsoft Visual Studio 2017がIntel® AVX-512をサポート」。2017年7月11日。
  37. ^ 「AMD Zen 5コンパイラーのサポートがGCCで発表 - 新しいAVX機能などを確認」www.phoronix.com . 2024年2月10日閲覧
  38. ^ Bonshor, Gavin (2023年7月25日). 「IntelがAVX10とAPX命令セットを発表:ハイブリッドアーキテクチャ向けにAVX-512を統合」AnandTech . 2023年7月25日時点のオリジナルよりアーカイブ。 2024年8月21日閲覧
  39. ^ Mann, Tobias (2023年8月15日). 「IntelのAVX10は、AVX-512のメリットを負担なく実現」www.theregister.com . 2023年8月20日閲覧
  40. ^ Larabel, Michael (2025年3月19日). 「Intel AVX10、オプションの512ビットを廃止:将来的にはAVX10の256ビットのみのEコアは提供しない」. Phoronix . 2025年3月19日閲覧。
  41. ^ 「コンバージド・ベクター ISA: Intel® Advanced Vector Extensions 10 テクニカルペーパー」。Intel
  42. ^ abc 「Intel® Advanced Vector Extensions 10 (Intel® AVX10) アーキテクチャー仕様」。Intel
  43. ^ Larabel, Michael (2024年10月23日). 「Intel、Diamond Rapidsに先駆けてAMXとISAの新機能に対応するGCCコンパイラを準備」. Phoronix . 2024年10月23日閲覧
  44. ^ 「Intel、Nova LakeがAVX10.2とAPX拡張機能をサポートすることを発表」www.phoronix.com . 2025年11月13日閲覧
  45. ^ “Linux RAID”. LWN. 2013年2月17日. オリジナルより2013年4月15日時点のアーカイブ。
  46. ^ 「BSAFE暗号ライブラリ実装の比較」2023年7月25日。
  47. ^ 「OpenSSLパフォーマンスの向上」2015年5月26日。 2017年2月28日閲覧
  48. ^ 「OpenSSL 3.0.0 リリースノート」。GitHub 2021年9月7日。
  49. ^ ヤロス、ミラノ;ストラコシュ、ペトル。ジーハ、ルボミル(2022年5月28日)。 「AVX-512 ベクトル化を使用した Blender でのレンダリング」(PDF)インテル エクストリーム パフォーマンス ユーザー グループオストラヴァ工科大学2022 年10 月 28 日に取得
  50. ^ 「MASSIVE XにはAVX互換プロセッサが必要です」Native Instruments . 2019年11月29日閲覧
  51. ^ 「dav1d: 最初のリリースのパフォーマンスと完了」。2018年11月21日。 2018年11月22日閲覧
  52. ^ “dav1d 0.6.0 リリースノート”. 2020年3月6日.
  53. ^ 「SVT-AV1 0.7.0 リリースノート」。2019年9月26日。
  54. ^ 「ArcGIS Data Store 11.2 システム要件」。ArcGIS Enterprise 。 2024年1月24日閲覧
  55. ^ 「Prime95 リリースノート」 。 2022年7月10日閲覧
  56. ^ 「Einstein@Home アプリケーション」。
  57. ^ 「Tensorflow 1.6」。GitHub
  58. ^ バージョン 19.0 の新機能 – EmEditor (テキストエディタ)
  59. ^ 「Microsoft Teamsのハードウェア要件」。Microsoft 2020年4月17日閲覧
  60. ^ 「Teams会議の背景ノイズを減らす」。Microsoftサポート2021年1月5日閲覧。
  61. ^ Langdale, Geoff; Lemire, Daniel (2019). 「1秒あたりギガバイト単位のJSON解析」. VLDBジャーナル. 28 (6): 941– 960. arXiv : 1902.08318 . doi :10.1007/s00778-019-00578-5. S2CID  67856679.
  62. ^ “simdjson 2.1.0 リリースノート”. GitHub . 2022年6月30日.
  63. ^ Larabel, Michael (2023年10月6日). 「OpenJDKがIntelのx86-simd-sortを統合し、データソートを7~15倍高速化」. Phoronix .
  64. ^ Larabel, Michael (2022年7月7日). 「Tesseract OCR 5.2エンジンがAVX-512Fで成功を収める」. Phoronix .
  65. ^ ab Lemire, Daniel (2018年9月7日). 「AVX-512:これらの新しい命令をいつ、どのように使用するか」Daniel Lemireのブログ.
  66. ^ BeeOnRope. 「SIMD命令がCPU周波数を下げる」. Stack Overflow .
  67. ^ ab Downs, Travis (2020年8月19日). 「Ice Lake AVX-512のダウンクロック」. Performance Mattersブログ.
  68. ^ 「x86 - 単純な配列処理ループにおけるAVX 512とAVX2のパフォーマンスの比較」。Stack Overflow
  69. ^ 「インテル® エクストリーム・チューニング・ユーティリティー(インテル® XTU)オーバークロック・ガイド:高度なチューニング」。Intel 2021年7月18日閲覧リンク先のセクションの画像をご覧ください。AVX2比率は0に設定されています。
  • Intel Intrinsics ガイド
  • x86アセンブリ言語リファレンスマニュアル