Intel AVX 【Intel Advanced Vector Extensions】
概要
Intel AVX(Intel Advanced Vector Extensions)とは、米インテル(Intel)社のCPU(マイクロプロセッサ/MPU)に実装された拡張命令セットの一つで、複数のデータに一度に同じ演算を行うSIMD方式の処理を実行するためのもの。2011年に登場したSandy Bridgeマイクロアーキテクチャ製品以降に搭載されている。SSEなどの従来のSIMD命令セットを発展させたもので、大量のデータに同種の演算を行う必要のある動画の圧縮・展開や3次元グラフィックス(3DCG)の描画、データの暗号化・復号などで利用される。
256ビット分の浮動小数点数を一度に計算することができ、単精度浮動小数点数なら8つ、倍精度浮動小数点数なら4つの数値を一つの命令で処理できる。被演算子(オペランド)を3つまたは4つ指定することができ、レジスタの内容を書き換えずに演算を実行できるようになった。
Intel AVX2
Intel AVXをさらに拡張したSIMD命令セットで、2013年のHaswellマイクロアーキテクチャ製品から採用された。演算効率が2倍に高速化され、Intel AVXでは一度に128ビットまで可能だった整数演算が256ビットまでに拡張された。
また、積和演算(FMA:Fused Multiply-Add)と呼ばれる、乗算一つと加算一つを組み合わせた計算を一度に実行できる命令セットが追加された。これはIntel AVX-512で導入された仕様で、Intel AVX2 VNNI(Vector Neural Network Instructions)の名称でAVX2に移植された。
(2023.4.8更新)