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