IntelがAVX10.2拡張命令セットのドキュメントを公開しました。
AVX10
Intelはベクトル演算や浮動小数点演算を強化するSIMD命令、AVX拡張命令を長らく前から実装していますが、現在、最もハイエンドなAVX命令はAVX-512です。しかし、このAVX-512には重大な2つの問題点があります。
1つ目が、バリエーションが多すぎること。AVX-512は、広範に使用できるように拡張されており、扱うデータやフォーマットによって実に10以上のバリエーションがあります。それらはフラグとして管理されており、厄介なのが製品ごとに、どの機能(フラグ)に対応しているかがバラバラでありとん雑になっています。
2つ目が、512bitレジスタを必須としていること。これは主にIntel Hybrid Technologyを採用しているAlder Lake以降のCoreプロセッサ系統のラインナップに影響がある話ですが、Pコアには512-bitレジスタが搭載されているものの、Eコアには256-bitのレジスタの搭載にとどまっているため、パッケージ全体での命令の統一ができずAVX-512のサポートを欠いています。この影響で、Eコアでも利用できるAVX2命令が拡張されているという状況になっていますし、AVX-512をサポートするXeonラインナップとCoreラインナップで命令が統一されてないという問題もあります。
そこでIntelは、AVX-512の機能をフラグではなくバージョンによって再度整理し、更に必要とするレジスタを可変にすることで、512-bitレジスタを搭載していなくてもAVX-512の機能を利用できる新しい命令セットの導入を計画しています。それがAVX10です。
AVX10では、AVX512の機能を全て包括することが計画されていますが、初期バージョンであるAVX10.1ではAVX-512の機能移植のための限定的な実装にとどまり、またAVX10.1をサポートするのもGranite Rapidsにとどまることが明らかにされていました。
そして、実際に真価を発揮するのは、今回明かされたAVX10.2であり、AVX10.2は近い将来、Core Ultra系統を含むすべてのラインナップでサポートされる見込みです。
AVX10.2
AVX10.2の注目スべきポイントはEコアのアーキテクチャをサポートするということです。これにより、将来的にXeonからCore/Core Ultra、そしてIntel Processor(旧Pentium/Celeron)を含むすべてのIntel CPUをサポートする道筋につながることを意味します。
フィーチャーすべき変更点は以下の内容です。
- AVX-512でもサポートされなかったFP8演算のサポート
- 新しいフォーマットの変換命令
- 機械学習にも利用でき、RustやWasmで利用される飽和変換命令
- メディアアクセラレーションに使われるらしいVMPSADBW命令の512bitへの拡張を含むメディア向け命令の追加
- ベクトルの部分的なコピーのとき、余る部分を0で補い、データの一貫性を保ち、またデータの不必要な残留を防止する命令
- 浮動小数点演算関係の命令の整理
この中でも特筆スべきなのは、FP8演算のサポートです。FP8演算は、現時点でどのCPUにおいてもHWでサポートされていないフォーマットであり、低精度演算が求められるAIなどのワークロードで大きなリードになりそうです。
また、「浮動小数点演算関係の命令の整理」と大雑把に書きましたが、これは、おそらくレジスタの幅に関係なく浮動小数点演算を可能にするという変更のはずです。つまり、この変更のお陰でEコアでもAVX10命令が利用可能になります。
流石に400ページ以上のすべての命令を確認するのはこんなんですが、フィーチャーすべきはたぶんこのあたりだと思います。
今後の計画
AVX10.1はGranite Rapidsで有効にされます。前述の通り、AVX10.1では、AVX-512の互換性を維持するためにAVX-512の機能のみが搭載され、新しい機能は搭載されません。
AVX10.2は、今回お話したように新しい機能と、Eコアへの対応も含めて行われます。このAVX10.2は近い将来、Core系含む全てのIntel CPUラインナップに展開される予定ですが、現時点で具体的にどの製品・ラインナップから搭載されるかは不明です。
そして8月1日(GMT)、Intelの従業員によって「Initial support for AVX10.2」とタイトル付けられたパッチが投稿され、GCCでのAVX10.2の対応作業が始まりました。
【追記ここから 2024/8/6 16:18】
LLVM/Clangも2日頃から対応のためのプルリクエストが投稿されています。
【追記ここまで】
詳細については8月中に明らかになる見込みです。また、IntelはHot ChipsにてXeon系の情報を明らかにするとしており、AVX10.2の情報も期待されます。
関連リンク
【追記分】