英ARMは5月29日、COMPUTEX TAIPEI 2017に合わせて開催した製品発表会において、DynamIQに対応したCortex-A55/A75と、Mali-G71後継となるMali-G72を発表した。
Cortex-A55/A75の概要
まずCortex-A55/A75であるが、これはどちらもDynamIQに対応した製品となる。DynamIQ自身は3月に発表した、新しいマルチコアのインフラであるが、Interfaceというかbig.LITTLEの制御方法がこれまでと異なっており、従来のコアでは利用することができず、新しいコアでサポートすることになっていた。その新しいコアが今回発表の2製品である。
Cortex-A75は高性能を狙ったコアで、Cortex-A73と比較して最大50%以上の性能改善が実現できたという。このCortex-A75は、Cortex-A72とCortex-A73の両方の後継という位置付けで、
- Mobile Environment(SmartphoneのTDP枠)ではCortex-A73と比較して最大20%のピーク性能改善
- 同じくMobile EnvironmentでのSustained PerformanceはCortex-A73と同等
- Infrastructure Performance(サーバー環境)でCortex-A72より40%の性能アップ
といった数字も示されている。内部的には4命令フェッチ、3命令デコードのSuperScalar/Out-of-Order構成をとっている。
一方のCortex-A55は、Cortex-A53と比較して2.5倍の性能/消費電力比を実現するという(Photo03)。同一プロセス/周波数という条件では、以下のような数字が挙げられている。
- CeekbenchでCortex-A53比で21%%の性能改善
- Octane 2.0で同14の性能改善
- LMBench memcpyで同97%の性能改善
- SPECFP 2006で38%の性能改善
- SPECINT 2006で18%の性能改善
一方性能/消費電力比ではSPECINT 2000の場合で次のようなパフォーマンスだという。
- 性能が18%up
- 消費電力は3%up
- 性能/消費電力比は15%改善
つまり、絶対的な消費電力は微妙に増えているが、それよりもIPCの改善が著しいので効率が上がったという話で、性能を同等にするならより動作周波数が下げられるという訳だ。
内部構造は2命令のIn-Order SuparScalarであるが、内部の実行パイプラインは、Load/StoreやNEON/Integerが分離された結果、8本に増えている。こうした性能改善がありながら、絶対的な消費電力を3%upに抑えたあたりが肝ということだろう。
ちなみに両者に共通する特徴として、命令セットにARM v8.2aをサポートしたことが挙げられる。ARM v8.2aの特徴を次にまとめる。
- FP16、あるいはINT 8のdot product演算をサポート。これはCNN(Convolution Neural Network)などML(Machine Learning)の高速化に役立つものである。DynamIQの説明会でも触れられた、AI関連命令の最初のものと思われる。
- Atomic命令のサポート。これはCache Stasingに関連してサポートされるものである。説明は後述。
- Type 2 Hypervisor(KVM)に対応する新しい仮想化関連命令セット(VHE:Virtual Host Extensions)のサポート
などが挙げられる。
ARM v8.2a以外の共通点としては、まずCache Stashingのサポートだ。Cache Stasingを商用プロセッサとして最初にサポートしたのは、旧Freescaleのe500mcだと思うのだが、そのe500mcにおけるCache Stashingの説明はこちらを参照してほしいのだが、要するにキャッシュの一部に専用の領域を設け、ここには直接外部のPeripheralなどからデータを書き込めるようにする技法だ。
これはアクセラレータなどと高速にデータをやり取りする場合に効果的な技法で、e500mcでもNetwork関係のPacket Accelerationとのやり取り向けに搭載されている。Cortex-A55/A75でも同じ目的でこの機構が採用されたようだ。
ちなみにe500mcでは、Stashingエリアの管理のために専用のレジスタが追加されたが、Cortex-A55/A75ではこの管理をAtomic命令を使って行うとのことだった。
続いては、Peripheral Portのサポート。Cache Stasingと直接的な関係はないのだが、「低帯域だが低レイテンシ」な外部I/Oポートが新たに追加された。このポートはCPU毎ではなく、DynamIQで管理されるCPU Group毎に1つ提供される形だ。これは外部アクセラレータとの高速な同期などに利用できると思われる。
このほか、RAS機能の拡充:Data Poisoning、あるいはArchtectual error reportingといった「RAS機能の強化や拡充」、NVDIMMのような不揮発性メモリをDRAMの一部として利用することを念頭においたものと思われる「Clean to persistent memory」のサポートなどが挙げられた。
Cortex-A55/A75でどんなSoCが構成できるか
さて、Cortex-A55/A75でどんなSoCが構成できるかというと、これまでよりも柔軟にコアの数が変更できる(Photo05)と説明があった。
例えば、
- エントリ向けSoC:Cortex-A55×4
- メインストリームの低いほう向けSoC:Cortex-A55×8
- メインストリームのやや上向けSoC:Cortex-A55×7 + Cortex-A75×1
- ハイエンド向けSoC:Cortex-A55×4 + Cortex-A75×4
というように、全体のコア数とCortex-A55/A75の比率を自在に変えられるので、あとはPPA(Power/Performance/Area)のバランスをどこで取るかを、アプリケーション要件によって合わせればいいという話である。
そしてDynamIQではGPU以外に外部のAcceleratorも同様に接続できるので、さまざまなSoCを作りやすいという話であった(Photo06)。
従来モデルから性能向上を実現した「Mali-G72」
次がMali-G72である(Photo07)。Mali-G72そのものについて、今回は大きな変更がなく、基本的には若干のブラッシュアップである。とはいえ効率が17~25%ほど改善している(Photo08)。
一応流行ということでML関連については、FP32に加えてFP16を利用する場合もあるということで、その場合の性能/消費電力比は最大で17%ほど改善されているとされる(Photo09)。
ただCPU側と違って、INT 8をサポートする予定は一切なく、あくまでもMali-G71の延長で効率を改善することで、「AI関連でも性能がやや改善するよ」という程度のアピールでしかない。むしろ主戦場はゲームとかVRであって、こちらでの性能改善が主となる(Photo10)。
ところで効率改善をどう成し遂げたか、という理由の一端がこちらである(Photo11)。これはGamevilのAfterpulseを実施した際の、メモリへの書き込み量を比較したものである。
Mali-G72ではMRT(Multi Render Target)用のバッファの量を2倍に増やしたことで、書き込み頻度を42%削減、加えて、新たに追加されたPLS(Pixel Local Storage)を活用することで、さらに45%削減することに成功した。これにより、トータルで68%もの削減を実現した。CPUで言うならL2の増量とL3の追加により、性能が改善したというあたりだろうか。これにより効率化と性能が改善した。
説明会の内容としてはこの程度だが、実はもう少し細かい話を聞いているので、こちらは別記事として改めてお届けしたいと思う。