この記事で情報元として示したリンク先は削除されたため、現在では不確実な情報を取り扱った記事となります。
メールアーカイブに残ってました。
Intel の次世代プロセッサ、Alder Lake、Sapphire Rapidsでは新たな拡張命令が2つ追加される。
そのことが新機能のバグ報告プラットフォーム、intel in Launchpadからわかった。
AVX2 VNNI
VNNI(Vector Neural Network Instructions) というと、Cascade Lake 、Cooper Lake 、 Ice Lake (client/server) 、Tiger Lake がサポートする AVX512 VNNI
命令 が思い浮かぶが、
AVX2 VNNI
命令は、既存のそれとは異なる feature bit を追加する(=また別の命令)としている。
Bug #1879836 “[ADL]Add CPUID feature bit for AVX2 VNNI” : Bugs : intel
Bug #1880162 “[EGS] Add CPUID feature bit for AVX2 VNNI” : Bugs : intel
AVX の後の数字から、用いるベクトル演算器のSIMDベクトル幅が異なるのだろう。(AVX2 は 256-bit、AVX512 はまんま 512-bit)
512-bit から 256-bit となることで、サイクルあたりのピーク処理能力は小さくなるが、ハードウェアへの実装に割かなければならないリソースもまた減ると思われる。(演算器、レジスタファイル、レジスタポート)
それと、EGS は Eagle Stream の略であり、Eagle Stream は Intel の次世代サーバ向けプロセッサ Sapphire Rapids のプラットフォームとされている。
HFNI
HFNI
命令はその概要から、64個の単精度浮動小数点(FP32) のパック実行に対応していた AVX-512
命令を、半精度浮動小数点(FP16) のパック実行にも対応させたものと推察される。
Bug #1879865 “[ADL] Enable 5G ISA (FP16) / HFNI” : Bugs : intel
想定される用途として、5G基地局のソフトウェア、FSI(Financial Services Industry)1、科学計算、開発等をあげている。
Alder Lake のSIMD幅はどうなるか
上記2つの命令は、幅の小さいベクトル演算器を意識しているように見える。
以前、Intel 拡張命令リファレンス資料がアップデートされた際、 Alder Lake と Tiger Lake で対応する命令が一致していないと書いたが、Alder Lake は Tiger Lake よりもベクトル演算器の規模を小さく変更するかもしれない。
Intel、拡張命令リファレンスをアップデート (Sapphire Rapids /Alder Lake /ハイブリッドプロセッサ) | Coelacanth’s Dream
また、 Alder Lake には2種類のプロセッサが確認されており(Alder Lake-S /Alder Lake-P)、Skylake と Skylake-SP のように、それぞれでベクトル演算器周りの構成が異なるということも考えられる。
ChromiumOSへのパッチから Alderlake-S / Alderlake-P を確認 | Coelacanth’s Dream
AVX-512 の改良が進められていることは興味が引かれるが、またもプロセッサが対応する範囲が混沌としそうな予感がする。