ストリーミングSIMD拡張命令
SSEは、x86アーキテクチャに8本の128ビットレジスタを新設し、浮動小数点演算のSIMD処理を実現したものである。AMDのK6-2に実装されたSIMD拡張命令3DNow!に対抗する形でPentium IIIから実装された。4個の32ビット単精度浮動小数点データを一本のレジスタに格納し、同一の命令を一括処理することができる。拡張命令であるため、その機能を使用するためにはSSEに対応したソースコードを作成し、プログラムをコンパイルする必要がある。
Core Duoまでのインテル製CPU、K8までのAMD製CPUでは、64ビット幅の演算器を用いて128ビット演算命令を2クロックかけて実行するという実装であったため、128ビット演算命令を用いても実質的なスループットはクロックあたり64ビットであった。そのため従来から存在するMMX命令やAMDの3DNow!命令に対する性能面でのアドバンテージは128ビット幅のレジスタを使えるという点以外では小さく、むしろ並列度が上がった分だけ最適化も煩雑になるという欠点が目立った。
インテルが2020年にAVX-512 VNNIの拡張として発表した(2次元)行列を計算するために設計された拡張命令。今までのは(1次元)ベクトル計算だった。2023年1月10日発売のSapphire Rapidsマイクロアーキテクチャから搭載されている。基礎となるAMX-TILEの命令群と、8bit整数の行列を扱うAMX-INT8の命令群と、bfloat16の行列を扱うAMX-BF16の命令群から構成されている。Sapphire RapidsマイクロアーキテクチャではTMUL(Tile Matrix Multiply、タイル行列積)が実装されている。
タイル行列積の1コアあたりの命令数/サイクル
Intel AMX-INT8: 2048 (=16 * 64 * 2)
Intel AMX-BF16: 1024 (=16 * 32 * 2)
AVX-512はINT8で256op/cycleだったため、8倍高速化した。
未だ開発が継続されている命令群であり、さらなる拡張が予定されている。