後藤弘茂のWeekly海外ニュース

Armが深層学習向けに拡張された新GPU「Mali-G52」などを発表

北京でのMali新シリーズの発表風景

Maliのアーキテクチャを大幅に拡張

 Armがマシンラーニング(機械学習)に本格的に踏み出した。同社のGPU「Mali」シリーズのメインストリーム向けコアIPに、機械学習向け命令を組み込み、具体的には機械学習のインファレンス(Inference:推論)向けに、8-bit整数(Int8)の特殊な演算命令を加えた。

 また、GPUのマイクロアーキテクチャも大幅に変更。SIMT(Single Instruction, Multiple Thread)の実行レーンを、従来の4レーンから8レーンに拡張している。

 Armは北京で新IPの発表イベントを開催、GPU関連の4種のIPを発表した。メインストリーム向けGPUコア「Mali-G52」、エントリー&デジタルTV向けGPUコア「Mali-G31」、メインストリーム向けディスプレイプロセッサ「Mali-D51」、メインストリーム向けビデオプロセッサ「Mali-V52」だ。

 GPUコアはArmの現在の「Bifrost(バイフロスト)」GPUアーキテクチャをベースとしているが、G52では大幅な改良が加えられている。

新Maliを発表するIan Smythe氏(Senior Director, Client Line of Business, Arm)

 発表会の冒頭でIan Smythe氏(Senior Director, Client Line of Business, Arm)は、ArmのMali-GPUコアIPが、2017年には12億ユニットも出荷されたと説明。スマートフォンの50%などモバイル市場に浸透していることを強調。デジタルTVでは8割を抑えて占有していることを説明した。

 実際、メインストリームやエントリのスマートフォンSoCではMali-GPUコアが圧倒的となっており、同コアは市場での存在感が大きい。

モバイルGPUのリーディングコアとなったArmのMaliシリーズ
次のステップはメインストリームモバイルへの機械学習の浸透
AI機能を取り入れた製品の90%はCPUコアIPにArmを採用しており、Armがソリューションを提供する余地がある

 その上で、次のステップとしてArmが目指すのは、包括的な機械学習ソリューション「Arm Project Trillium」であると説明。とくに、モバイル市場は機械学習のアプリケーションでリードしていると認識を示した。そこで、モバイルでの機械学習を促進するために、メインストリーム向けGPUコアの機械学習機能の強化を行なったという。

 画像認識や音声認識などをスマートフォンなどの端末側で高性能化できるとし、従来のタッチパネルにナチュラルユーザーインターフェイスを加えたマルチインプットを可能にする。オブジェクト認識によって、高度なAR(拡張現実)も実現する。

 また、こうしたナチュラルユーザーインターフェイスを、デジタルTVにももたらす。このようなビジョンのために、低コストな機械学習ソリューションとしてArmが提供するのがMali-G52だ。

より没入的なユーザーインターフェイスなどメインストリームのグラフィックスに求められる機能が増大している
オブジェクト認識によって現実とCGを融合させたARが高度になる
デジタルTVでもユーザーインターフェイスの改革が求められている

SIMTのレーン数を倍増、int8の命令を強化

 Armは、Bifrostアーキテクチャでは、高性能GPU「G71」、「G72」と、メインストリームGPU「G51」をすでに投入している。

 今回のG52は4つ目のアーキテクチャだが、ここからアーキテクチャが革新される。G52アーキテクチャの詳細は後の記事で説明するが、最大の違いは並列実行できるレーン数とディープラーニング(深層学習)向け命令拡張だ。

 従来のBifrostアーキテクチャでは、演算クラスタである「Execution Engine(エグゼキューションエンジン)」に、それぞれ4レーンの32-bit演算レーンを備えていた。NVIDIAやAMDの用語での“コア”が、Armのレーンにあたる。4レーン構成であるため、4個の32-bit演算を並列に行なうことができた。

 それに対して、新しいG52アーキテクチャでは、32-bit演算レーンを8つ備えている。8個の32-bit演算を並列に行なうことができる。各レーンはマスクレジスタによるプレディケーションフローコントロールが可能なので、SIMTとなる。

 演算レーンを倍増させたことで、G52では、各Execution Engineのサイクルあたりの演算性能は最大で2倍となった。G52では、GPUとしての最小単位であるGPUコアに、2個または3個のExecution Engineを搭載できる。

 また、GPUコアは最大4コアまで拡張できる。1個のGPUコアで24レーン、最大の4GPUコアで96レーンとなる。メインストリームGPUコアとしては、十分な拡張性だ。

Execution Engine内の演算レーンを4から8に倍増させ、int8の命令を拡充

 加えて、Mali-G52には、8-bit整数のドット積(Dot Product)命令が加えられた。もともとBifrostアーキテクチャでは、32-bitの演算レーンを、4個の8-bitサブレーンに分割できる。各レーンごとに、4個の8-bit整数の演算をSIMD(Single Instruction, Multiple Data)として並列実行可能だ。

 Bifrostでは、これまでも8-bit SIMDで通常の演算命令をサポートして来たが、G52でより効率的な新命令を加えた。

深層学習に向けた8-bit整数命令

 G52の新命令では、4-wayの8-bit整数(Int8)を、4-wayの8-bit整数と掛け合わせ、4-wayの乗算結果の値をすべて加算した値を1サイクルスループットで出力できる。

 これは、現在のニューラルネットワークベースの機械学習で多用される演算だ。従来では、複数命令が必要だった処理を1命令で1サイクルスループットで実行できるようになり、G52ではニューラルネットワークの性能が大幅に上がった。NVIDIAが似たような実装をしていた。

 ニューラルネットワークでは、トレーニング(学習)には16-bit浮動小数点(FP16)など相対的に高いビット精度が必要だが、推論では8-bit整数程度の精度が今は主流だ。現在のGPUでは、推論向けでは8-bit整数のサポートがカギとなっている。

 G52では、Int8は各レーン4-wayのドット積が可能となり、レーン数もExecution Engineあたり8レーンとなった。Execution Engineあたりで32並列のInt8演算が可能だ。GPUコア全体では、384並列のInt8演算となる。

 ちなみに、トレーニングで多用されるFP16については、Bifrostは2-way SIMDをサポートしている。

演算レーンは従来の2倍の8レーン、各レーンがint8の4-way SIMDでドット積演算が可能
Mali-G52のブロック図

 こうしたアーキテクチャ拡張によって、Mali-G52は前世代のG51に対して、3.6倍の機械学習性能を達成するという。

 アーキテクチャ面で大幅な拡張となったG52だが、Execution Engine自体のダイエリアの拡張は22%程度に抑えられた。GPUコア全体でのエリアの拡張では11%程度だという。GPUコア設計自体も改良もあって、G52はG51に対して同プロセスであっても性能密度は30%向上。電力効率は15%アップしている。

エリアあたりの性能を30%高めたG52
機械学習での性能向上幅が大きいG52

 言い換えれば、Mali-G52は従来G51が搭載されていたようなメインストリームのスマートフォン向けのモバイルSoCにフィットする。コストや電力を大幅に増すことなく、SoCに統合できるコアとなっている。想定するターゲットプロセスは16nmクラスだが、ソフトマクロとしてどのプロセスにも載せることはできる。

コアエリアを抑えることにフォーカスしたMali-G31

 Armはメインストリーム向けのMali-G52ではアーキテクチャを拡張した。それに対して、エントリモバイルやデジタルTV向けのMali-G31では、アーキテクチャは従来のBifrostままで、リソースを抑えてコアサイズや電力を抑えることにフォーカスした。

 GPUコアはG51世代と同じで、Execution Engineのなかに4個の演算レーン。GPUコアは1個または2個のExecution Engineで構成される。FP32積和算ユニットは4または8個の構成で、シェーダGPUとしてはミニマムだ。G51と比べるとGPUのトータルのエリアは20%少ない。しかし、設計のチューンなどによって性能密度は20%向上している。

 Mali-G31の最大のポイントは、ミニマムなGPUでありながら、最新のAPIをサポートする点。OpenGL ES 3.2とVulkanをサポートする。ソフトウェアの互換性をメインストリームGPUと保つことができる。

Mali-G31
Mali-G31のアーキテクチャ

 Mali-G31がターゲットとするのは低電力のCortex-A55系CPUコアだけで構成されるようなバリュースマートフォン向けモバイルSoCだ。

 それに対して、Mali-G52は、より性能の高いレンジのCPUクラスタとの組み合わせを想定している。ArmのCPUコアは、新しいクラスタアーキテクチャ「DynamIQ」によって、CPUコアの組み合わせの自由度が増した。シングルスレッド性能の高いCortex-A75を1個に、低電力のCortex-A55を7個といった組み合わせも可能となっている。こうした新しいメインストリーム向けCPUクラスタとMali-G52はフィットする。

Mali-G52とG31のシステム構成例
DynamIQによる新しいCPUクラスタの構成例