Cortex-A72にかなり近いCortex-A76

さて、発表会の説明はこの程度であるが、この発表会の後でNayampally氏にもう少し細かく話を聞くことが出来たので、先日開催されたDeep Diveの資料と合わせてもう少し細かい話を紹介したい(Photo16)。

  • Photo16:眼鏡無しバージョン

Cortex-A76は、同社としては初めて4命令デコーダを搭載した製品である(Photo17)。構造的にはCortex-A72にかなり近いものになっており、Cortex-A72は3命令デコードなのを4命令デコードに拡張した「だけ」というと語弊があるが、そう大きな拡張にはなっていない。

  • Photo17:内部構成。個々の詳細はまた別の機会に

命令キューのサイズとかRegister Windowsの数などは非常に慎ましやかである。またSMTのサポートの予定も無い、とはっきり断言している。Nayampally氏によればキーワードはEfficiencyとのこと。

例えばSMTをサポートすると、どうしても必要とされるリソースが増えることになる。またIn-Flight状態の命令も増えるから、Register Windowsの数も増やさないとつじつまが合わない。こうした対応は全てCortex-A76の様なターゲットには高コストになる、という判断だそうだ。

同じようにALUは3つのまま据え置きなのも、ワークロードを考えると4つにする必要は無い、という考えから。ただそうは言っても拡張すべきところはしてあり、ASIMDの2つのパイプは128bit幅に、加えてInt 8のサポートを追加したことで、ML(というかDNNにおけるMatrix 8x8の処理)が従来比4倍速になっている。従来はこれを32bit幅でやっていたのを8bitにしたのがこの高速化の主要因である。

Cortex-A76はあくまでも「モバイル」向け

ただ同社はこのCortex-A76をあくまでモバイル向けと位置付けている。「Skylake比で90%の性能」といった数字もあるが、これはあくまでモバイルワークロードの場合であって、必ずしもサーバーでも同じように性能が出るとは限らない。

これに関してNayampally氏曰く「サーバーかデスクトップ/モバイルか、は単にコアだけでなくコアの周辺のさまざまなものが関係してくる」と前置きした上で、「アーキテクチャ的に言えば、サーバーワークロードに必要とされるテクノロジーは全て搭載してはいるが、サーバーはターゲットとしていない」という返事であった。

おそらくは、サーバーワークロードではよりAGUの利用頻度が高まるとか、より並列性が高まってALUの利用頻度が上がる、あるいはIn-Flight状態になる命令数が増えるといった、現状のCortex-A76の想定したバランスとあわないのではないかと思われる。

こうした用途について「Cortex-A75はサーバーワークロードに向けた製品だ。そもそもサーバー向けの場合、モバイル向けよりももっとアーキテクチャ刷新の時間が長めになる。ということなので、当面はCortex-A75をサーバー向けに推奨してゆく」という話であった(Photo18)。

  • Photo18:非サーバーワークロードでの性能比較。同一プロセス/動作周波数における性能比である

また製品バランスについて、Cortex-A55(In-Order, 2 issue)とCortex-A76(Out-of-order, 4 issue)ではギャップが大きいのでは? という質問に対しては、DynamIQのConfigurationで変更可能であり、いまのところ中間に入るようなコアは想定していないという話だった。

Cortex-A55とCortex-A76では性能ギャップは大きいが、Cortex-A55はBaselineの製品で、これは広範に使われる製品であり、当面刷新の予定はないとか。トータルの性能は、DynamIQにおけるCortex-A55とCortex-A76のコアの比率を変更すれば好きなように調整可能である、という話であった(Photo19)。

  • Photo19:従来Cortex-A55+Cortex-A75構成だった製品をCortex-A76に切り替えることで、より高いピーク性能と幅広い性能バランスが得られる、とする。