英Armは9月22日(英国時間)、同社のサーバ向けCPU IP「Neoverseファミリー」に、新しく「Neoverse V1」および「Neoverse E2」を追加した事を発表した。これに先立ちオンラインの形で記者説明会が行われたので、これをご紹介したい。

そもそもNeoverseは2018年に発表されたサーバ向けのブランドである。当初はCosmos Platformが提供され(Photo01)、これに続いてAres/Zeus/Poseidonという新プラットフォームの投入が予定されていた。

  • Neoverse

    Photo01:もっともCosmosに使われるプロセッサIPは、まだNeoverseではなくCortexであった

明けて2019年2月にNeoverse N1/E1が発表されるが、Neoverse N1はCortex-A76を、Neoverse E1はCortex-A65AEをそれぞれベースとしながらサーバー向けに最適化というか、サーバーワークロードに向けてカスタマイズを行ったIPである。このAres PlatformはCosmos Platformに比べて最大で60%性能が改善した、とされた。1つの実例がAWSに向けてAmazon傘下のAnnapurna Labが開発したGravitonとGraviton 2の比較である(Photo03)。

  • Neoverse

    Photo02:これは「すべてのパフォーマンスメトリックで60%上がった」という意味ではなく、「いくつかあるパフォーマンスメトリックの中で、最大60%上がったものがある」の意味である

  • Neoverse

    Photo03:均すと30%強というあたりで、その意味ではPhoto01のロードマップは正確だったということになる

初代GravitonがCosmos Platform(Cortex-A72ベース)、Graviton 2がNeoverse N1ベースのAres Platformで構築されるが、vCPUあたりの性能で比較すると24%~65%の向上を見せたとしている。

さてそのNeoverseであるが、今回の発表内容は新たにVシリーズを追加するという話である(Photo04)。

  • Neoverse

    Photo04:単にPPA Optimizationのバランスを取るポイントを変えるだけでなく、マイクロアーキテクチャそのものも変更される

それぞれの目的は明確で、Photo04にもあるようにVシリーズは絶対的なパワーを求める、いわばHPC的な用途向け。Nシリーズはバランスを取ったスケールアウト志向、そしてEシリーズは消費電力やコストを最小限に抑えるというラインナップになる。このコンセプトにしたがって今回発表されたのが、Neoverse V1とNeoverse N2である(Photo05)。

  • Neoverse

    Photo05:Neoverse N2は2021年の投入となる

特徴としては、以下の2点が挙げられる。

  • 対応プロセスは7nmおよび5nm。PCI Express Gen5とDDR5の他、従来のCCIXに加えてCXL 2.0も対応予定。またHBM2eに加えてHBM3も視野に入れる。
  • NEONに加えて(これはQ&Aの中で確認したのだが)256bitのSVE×2を搭載。またbfloat16にも対応。

さて、まずNeoverse V1であるが、Neoverse N1、つまりCortex-A76ベースのコアと比較して、整数演算性能で50%もの性能引き上げが実現されている。

実はこのCortex-A76比で50%性能が高いコアというのは、1種類しかない。Cortex-X1である。ただしCortex-X1はモバイル向けであり、SIMDエンジンもNeon×2である。これをSVE×2に変更すると共に、必要なカスタマイズ(例えばLoad/Storeユニットは、当然倍の幅が必要になる。Cortex-X1は128bit NEON×2で、これを256bit SVE×2に置き換えるからだ)を施したものと想像される。先の記事の中でも説明されたCortex-A76→Neoverse N1の際に行われたカスタマイズも、当然ここには含まれるだろう。

一方でNeoverse N2は、恐らくCortex-A78ベースのものと想像される。Cortex-A78はCortex-A77比で20%の性能向上であり、Cortex-A76比だと大体40%アップ程度になる。ただこちらもNeoverse V1同様に256bit SVE×2を搭載するほか、やはりNeoverse N1の時と同様のサーバー向けカスタマイズを施したものとなるだろうから、大分Cortex-A78とは異なったコアになるようだ。

ところでArmは従来CCIXを推進してきたが、ここに来てCXLもサポートを明らかにした(Photo06)。

  • Neoverse

    Photo06:ある意味判りやすい。どちらもベースとなる物理層はPCIe Gen5がベースである(CCIXでは独自に25Gとか50GのPHYでのデモも行っているが)

実はCXLは急速にCCIXに並ぶインターコネクトの座を獲得しつつあり、実際AMDすらCXLをサポートしているほどだ。CCIXとCXLの技術的な違いは2019年に記事を書いたが、要するにCCIXはプロセッサ間Linkなどにも使える分、やや重いプロトコルであり、実装も大変である。一方CXLはこのあたりを割り切っており、プロセッサ間Linkには利用できず、アクセラレータやメモリ(SCM)などの接続に特化したものである。そこで、SCMとかアクセラレータの接続はCXLで、プロセッサ間LinkはCCIXで、というのがArmの現在のロードマップになった形だ。

SVEに関する説明がこちら(Photo07)。

  • Neoverse

    Photo07:SVEの特徴は、命令そのものはベクタ長に依存しない(128bit SVEも1024bit SVEも同じ様に扱える)事で、あるいは将来は512bit SVEに引き上げる可能性もある

SVEは現時点では富嶽に利用されている富士通のA64FXが唯一の搭載製品であるが、さすがに128bit SIMDのままでは効率が悪いというのはArmとしても判っていた訳で、このタイミングでサーバー向け製品には256bit SVE×2を搭載してきた形だ。

一方Neoverse N2での特筆すべき話は、Scale outの規模をさらに大きくしたことにある。Neoverse N1は最大128coreまで可能になっていたが、N2ではこれが192coreまでスケールするとしている(Photo08)。

  • Neoverse

    Photo08:コアあたりの消費電力は1.8~2.5W程度が想定されている模様

この結果として、Neoverse V1とNeoverse V2で、それぞれ42Uのラックに2 Socketサーバーの形でシステムを入れた場合の性能比がこちら(Photo09)となる。

  • Neoverse

    Photo09:こういう比較の仕方も珍しい。ところでRack Level PerformanceとFLOPs/TOPs per Rackの違いが良くわからない。Performanceの方はアプリケーション性能の意味だろうか?

恐らくは、同じ消費電力であれば、

  • HPC系のComputationに関しては、Rack全体の性能はNeoverse V1がNeoverse N2の50%アップ
  • もう少し汎用のワークロードでは、Neoverse N2の性能はNeoverse V1の12%アップ

という形になり、後はワークロードの種類に応じてどちらのコアを選ぶかを決めればよい、という事かと思う。

ちなみに“Traditional 24c/48t”と“Traditional 64c/128t”との比較もあり(Photo10)、Threadあたりの性能でもSocketあたりの性能でも、Neoverse V1/N2の方が有利、としている。

  • Neoverse

    Photo10:“Traditional 24c/48t”はXeon 8268、“Traditional 64c/128t”はEPYC 7742をそれぞれ示すそうだ

もっともこれ、何を使って性能を評価しているか良くわからないのと、消費電力は無視しての比較なので、このあたりを正規化する必要はあると思うのだが、そうはいってもArmがIntelやAMDの争っているハイエンドサーバーマーケットに公然と殴り込みを掛けるまでに性能を引き上げた、という意味ではなかなか象徴的なプレゼンテーションではないかと思う。

ところで先にNeoverse V1はCortex-X1ベース、Neoverse N2はCortex-A78ベースであろうと述べたが、その理由は質疑応答でサポートしている命令セットを確認したところ、“ベースはArm v8.2-Aで、それ以降のいくつかの拡張を取り込んでもいる(がフルセットではない)”という返事だったからだ。

Armは2019年のTechConで、次々世代Cortex-AであるMatterhornをお披露目しているが、このMatterhornはArm v8.6-Aをフルサポートする最初のコアとなることが明らかにされている。Armはv8-A世代でv8.1/8.2/8.3/8.4/8.5-Aをすでに定義済であるが、ArmのIPはこのv8.2-Aをベースに、v8.3-Aやv8.4-Aの一部の命令のみをサポートする、という形で提供されているものばかりで、完全にv8.3-Aやv8.4-Aをサポートしているものは(Armには)ない。もしここでNeoverse V1/E2がArm v8.6に対応していれば、それはMatterhornを(Cortex-A向けよりも)先に導入した、という話になる訳だが、それは否定された。となると残ってるコアはCortex-A78とCortex-X1しかない、という訳だ。

ちょっと不思議なのは、これを2020年10月5日から開催されるArm DevSummitではなく、この時期に発表した事だ。とはいえ、DevSummitはNVIDIAによる買収の話が当然影響してくると思うので、荒れなければと危惧するところだが、Photo05でNeoverse V1の提供時期が“Now”になっているあたり、あるいはDevSummmitではNeoverse V1を搭載した製品のお披露目もあるのかもしれない。