週刊アスキー

  • Facebookアイコン
  • Twitterアイコン
  • RSSフィード

インテルの新命令セットでついに16bitモードが廃止に

2023年08月07日 12時00分更新

PコアとEコアが新命令セット「AVX10」でAVX512に対応

 APXと同時に発表されたのがAVX10である。インテルのウェブサイトからテクニカルペーパーホワイトペーパーを入手できるが、簡単に言えばAVX命令に拡張性を追加しようというものだ。

 もともとAVX命令は、特にAVX512が無駄にバージョンが多すぎて、追加が止まらなくなっておりかなり混乱を招く状況だった。その一方で、例えばVNNI(Vector Neural Network instructions)は当初AVX512でのサポートだけだったはずなのに、後から256bit幅のAVX2 VNNIが追加されたりして、わかり難いことおびただしい。

インテルの新命令セットでついに16bitモードが廃止に

Gen 5 Xeon ScalableということはEmerald Rapidsまでは今のままで、変更されるのはGranite Rapids以降ということになる

 そこでインテルとしては以下のことを明らかにした。

  • AVX512の拡張はこれ以上行わない
  • AVX512の機能はそのまま継承するが、必ずしも512bitの実装を必要としない
  • 128/256bit幅もサポート
  • 今後はVersion-baseでの機能追加を行なう。つまりつまりAVX512-xxxxのような形での実装ではなく、AVX10.1/10.2/10.3/...とバージョンがあがるのに対応して機能が追加される。
インテルの新命令セットでついに16bitモードが廃止に

最初に出てくるAVX10.1は“pre-enabling”ということからもわかるとおり、この時点ではまだAVX512と機能的な差はほとんどないと思われる

 ここで2つ目のポイントであるが、これは要するにArmのSVEやRISC-VのVEEと同じように、Vector(というよりSIMD)の幅を可変長にできるというものだ。

 これと3番目のポイントが連動するわけだが、AVX10では、例えば128bit幅のSIMDを4回、あるいは256bit幅のSIMDを2回回すことで、512bit幅(や、多分こういう書き方をするからには将来的には1024bit幅などさらに大きな幅)の演算が可能になるものと思われる。

 実はZen 4のAVX512サポートがまさにこれである。Zen 4は256bit幅のFPUを2つ同時に動かすことでAVX512をサポートする格好だ。

 実のところ、現在のインテルのEコアはAVX512のサポートがない。AVX512のサポートを追加すると、猛烈に回路規模が大きくなってしまうからというのがおそらくの理由であるが、この結果として現状XeonではPコアのみの構成しか提供されていない。

 Eコアのみで実装されるSierra Forestは2024年投入予定だが、このSierra ForestでAVX512をサポートしない、というのはさすがに問題がある。そこで、性能が低くなっても良いから小規模な回路増加でAVX512をサポートする、という方策に転換したものと思われる。

 またVNNIのようにAVX512からAVX2に命令を逆移植というパターンが増えてたので、このあたりで命令とデータ幅を分離して整理する方向に舵を切った、というあたりだろうか。

 こう考えてみると、X86-S/APX/AVX10のいずれも、最初に実装されるのはサーバー向けのXeon Scalable向けだろう。サーバー用のOSはもう16/32bitは一切不要だし、古い16/32bitサーバーを使っているという話も聞かない。

 APXに対応したアプリケーションは従来のx64プロセッサーでは動かなくなるが、サーバー向けの最新版のアプリケーションは最新のプロセッサーに向けたものが少なくない。つまり過去のハードウェアとの互換性をあまり考える必要がない。

 そしてAVX10、まずはSierra Forestへの対応が最初に行なわれることになると思われる。このあたりがコンシューマー向けのCoreプロセッサーに波及してくるのは、Xeon Scalableの後になるのではないだろうか? もっとも冒頭でも書いたように、X86-Sはまだ提案の段階である。実際にはXeon Scalableのみの対応、という可能性もありそうだ。

この記事をシェアしよう

週刊アスキーの最新情報を購読しよう

この連載の記事