SOCの最大手ARMが発表した新作CPUコアと新作GPU
約1年前、ソフトバンクが英国の半導体(設計)メーカーのARMを買収したニュースが駆け巡りましたよね。
あの時、世間一般の人は「ARMってなんだ?」と騒いだものでしたが、一方で、スマホ/タブレットのファンは「ARMを買収するなんて凄い」というような反応だったことを思い出します。
スマホ/タブレットファンの方には改めて説明するまでもないでしょうが、ARMは、現在のスマートフォンの根幹となるSOCの最大手企業の1つです。
2017年6月、ARMは、新世代のプロセッサコアを2つ発表しました。1つは新作CPUコア、そしてもう1つは新作GPUでした。
と言うわけで、このARMの新作CPU、新作GPUを見ていきたいと思います。
「Cortex-A75/A55」を生み出した「DynamIQ」テクノロジーとは?
CPUとしては、64ビットアーキテクチャ(ARMV8.2-a)の性能重視のCPUコアの「Cortex-A75」、消費電力重視のCPUコアの「Cortex-A55」が発表されています。
さらに、今年は「DynamIQ」と呼ばれる、新しいマルチコアCPU構成の設計思想(アーキテクチャ)が発表されたこともホットトピックでした。
ARMは従来、big.LITTLEと呼ばれるマルチコアCPU構成のアーキテクチャを採用してきました。
これは、性能重視のCPUコアと消費電力重視のCPUコアのそれぞれを、2つのCPUクラスタに分けてマルチコア構成化するアーキテクチャです。
big.LITTLEでは、性能重視CPUコアを4基、消費電力重視のCPUコアを4基と言った具合に、性能重視CPUコアと消費電力重視のCPUコアの数を揃える必要がありました。
新しい、DynamIQでは、この枷が外れて、性能重視CPUコアを1基、消費電力重視のCPUコアを7基と言った具合に、非対称な構成が容認されるようになります。
消費電力重視のCPUコアの方は、性能に遠慮している分、コアサイズは小さく出来るので、たとえば、与えられた面積の範囲で、消費電力と性能のバランスが取れたSOCを構成しやすくなるわけです。
ハイエンドクラスのスマホ/タブレットのSOCは、これまで通り、性能重視と消費電力重視のCPUコアをそれぞれ同数搭載したものになりそうですが、メインストリームクラスのスマホ/タブレット向けのSOCは、少しユニークなマルチコアCPU構成が出てくるかもしれません。
ちなみに、この柔軟なマルチコアCPU構成を実現出来るようにするDynamIQテクノロジーは、前述した新作CPUコアであるCortex-A75とCortex-A55から利用できるようになります。
Mali-G72は32コア版でPS3とほぼ同等性能?
新GPUコアは、「Mali-G72」という名前の製品です。
これは、その型番から想像できるように、Mali-G71の後継にあたります。
公式サイトにあげられている目安のスペックとしては850MHz駆動が示されていて、クラスタ数(コア数)32の時のフィルレートは27.2ギガピクセル毎秒、8億5000万ポリゴンくらいと説明されています。
「27.2ギガピクセル毎秒」というピクセルフィルレートは、NVIDIA製のGPUでいうと、だいたいGeForce GTX 950前後くらいにあたります。
実際のスマホ/タブレット製品では32クラスタのGPUコアが採用されることはまずあり得ず、だいたい8~16クラスタとなるはずなので、「27.2ギガピクセル毎秒」の半分から4分の1程度といったところです。
Mali-G70系GPUコアは、1コアあたり、4つの単精度32ビット浮動小数点演算ユニットを4つ有し、11基あたりが1クロック毎に2FLOPS(積和算)をこなせるので、理論演算性能は32クラスタ時で217.6GFLOPSくらいと推察できます。
これは、ソニーのPS3のGPU(RSX)の224GFLOPSに近い値と言えます。
まあ、ピクセルをただ描画するだけだったらGeForce GTX 950に近い性能を発揮できますが、シェーダーを動かしての3Dグラフィックスを描画するとなると、PS3のGPUくらい……といった性能イメージかと思います。
続いて、対応APIを見ていきます。
Mali-G72は、OpenGLはES3.2に対応し、DirectXについてはDirectX12のFL11_1(Feature Level 11.1)に対応します。
Mali-G72の強化ポイントはTile Bufferの容量増強にあり?
最近では、スマホ/タブレット向けのゲームのグラフィックスも、年々、高度なレンダリングメソッドを使うようになってきています。
ハイスペックなゲームグラフィックスを実現したタイトルについては、ほとんどゲーム専用機(コンソール機)と同等のレンダリング技術を採用したものも多いです。
昨年のCG学会のSIGGRAPH2016のリアルタイムレンダリング技術発表イベント「Real-Time Live!」では、Digital Legends EntertainmentのiOS端末向けゲーム『Afterpulse』が「スマートフォン向けの最も高度なゲームグラフィックス」の事例として取り上げられていました。
Mali-G72の発表会でも、Jem Davies氏が、この『Afterpulse』の名前を挙げた上で「こうした最新のスマートフォン向けのゲームグラフィックスをハイパフォーマンスで動作出来るような改善をMali-G72に施しました」と語っていたのですが、どういう改善なのか気になりますよね。
この点について、ボクはその後、行われたインタビューで質問してみたところ、「具体的にはTile Bufferを先代のMali-G71の2倍に増やしました」という回答を得ました。
そもそもTile Bufferとは何なのか、これを知らない人も多いと思います。
これは、実は、現在のスマホ/タブレット向けGPUならではの独特なアーキテクチャに起因した機能なのです。
iPhone/iPadなどのiOS端末に採用されているImagination TechnologiesのPowerVRが元祖なのですが、ARMのMaliシリーズも、タイルベースレンダリングとよばれるレンダリングメソッドを採用しています。
携帯電話などの組み込み機器向けGPUでは、極力、グラフィックスメモリーへのアクセスを回避したいという思惑があります。
これは「組み込み機器では、グラフィックスメモリーのバス幅が狭く、さらにメモリチップ自体もあまり速くない」という弱点をカバーしたい狙いと、グラフィックスメモリーへの大量アクセスによって消費電力を増やしたくないという思惑があるからです。
そこで、タイルベースレンダリングでは、画面を16×16ピクセルくらいの塊(タイル)ごとに区切り、このタイルごとにレンダリングを仕掛けます。
具体的には、そのタイルごとに専用の超高速内蔵メモリを用意して、その中でZバッファ処理を行ったり、ピクセルシェーダーから出力されたピクセルカラーデータを書き込んだりするようなアーキテクチャにすることで、極力、グラフィックスメモリー側へのアクセスを低減させるのです。
リアルタイム3Dグラフィックスでは、既に描画済みの領域に対して新たに上書きされたりすることで、最終的には表示されないオブジェクトがあったりします。
タイルベースレンダリングでは、そうした重複描画自体を「タイル専用の超高速内蔵メモリ」だけで完結できるようにして、GPUの外にあるグラフィックスメモリに描き出すのは「そのタイルの描画が完了してからの一回だけ」に留めるわけです。
前出のAfterpulseもそうですし、最新のPC、PS4、Xbox Oneのような高性能マシン向けのゲームグラフィックスでは「Deferred Rendering」を採用するようになってきています。
Deferred Renderingでは、ピクセルの色が決定されるテクスチャの適用やらライティングやらシェーディングやらを後回しにして、その代わり、はじめに各ピクセルに対応する、ライティングやシェーディングの計算に必要な中間パラメータをレンダリング(出力)します。
この中間パラメータが出力されるバッファにはG-Bufferという名前が付いているのですが(GはジオメトリのG)、このG-Bufferは、最終的に表示される映像と同等解像度で出力される場合もあるし、縦横半分の解像度(あるいはもっと低解像度の場合もあり)で出力されたりもします。
いずれにせよ、この工程は、複数のバッファに対して同時に行われることになります。
例えば、法線ベクトル、鏡面反射強度、拡散反射要素といった3つの中間パラメータを出力しようとしたら、3つのバッファに対して同時レンダリングが行われるのです。
この複数バッファへの同時G-Bufferレンダリングは、GPUの「マルチレンダーターゲット」(MRT)と呼ばれる機能を活用して行われるのが普通です。
最新のDirectXやOpenGLでは、仕様上は、同時に8バッファに行うことができます。換言すれば8MRT出力ができるということですね。
このMRTによるG-Bufferレンダリングは、実はPowerVRやMaliなどのタイルベースレンダリングアーキテクチャのGPUと相性がよくないのです。
このG-Bufferレンダリングは、タイルベースレンダリングで行おうとすると、前述した「タイル専用の超高速メモリ」の容量が足りなくなってきてしまうからです。
足りなくなれば、不足分はグラフィックスメモリを代替利用することになって、G-Buffer出力は当然遅くなってしまいます。
Mali-G72では、この問題を解決するために「タイル専用の超高速メモリ」(Tile Buffer)を二倍に増量したというわけです。
ARMの新CPUや新GPUの採用スマホ/タブレットはいつ出てくるの?
ARMはIP(Intellectual Property:知的財産)企業であり、実際にプロセッサのチップとして製造を行うするのは、そのIPを利用するチップ製造側になります。
現在、最新型のiPad ProのA10Xプロセッサは10nmプロセスですし、QualcommのSOCのSnapdragon 835も10nmプロセスで2017年内から製造される予定です。
恐らく、ハイエンドSOCについては、10nmプロセス製造事例が今後は増えていく感じがします。
では、今回発表されたCortex-A75/Cortex-A55やMali-G72はどうなんでしょうか。
ARM側の説明によればターゲット製造プロセスルールは20nm~10nmあたりだと説明されています。
まぁ、ARMのCortex-A75/A55やMali-G72はコンフィギュレーションの自由度が高いので、メインストリームからハイエンドまで幅広い応用事例がでてくるでしょうが、当面は14nm~16nmプロセスがメインとなることでしょう。
実際の、Cortex-A75/A55やMali-G72を搭載したスマートフォンやタブレットは、早ければ1年以内、遅くても2年以内には発売されるはずです。
過去の経緯から順当に推理すれば、サムスンのSOCのExynosが採用をする可能性が高そうです。
現行最新のExynoe 9シリーズは、Cortex-A53やMali-G71(20クラスタ)を搭載していますからね。サムスンの次世代Galaxy系端末はもしかすると……というかんじです。
もちろん、スマホ/タブレットだけでなくテレビ製品、カーナビ製品といった組み込み機器向けにも採用が進む可能性もあります。
最近では、マイクロソフトが、ARMベースのSOCで、x86アプリまでを動かせるフルスペック版Windows 10を動かすデモを公開したりしていますので、エントリークラスのWindows PCにも採用があるかも知れません。
もちろん、最近、にわかに発表事例が増えてきている、AndroidベースのVR(Virtual Reality:仮想現実)対応型HMDに、これらのCPUコア、GPUコアが採用されていく可能性も高いはずです。
(C) ARM2016
(C) Digital Legends Entertainment S.L.
(C) GAMEVIL USA, inc.