全国高校eスポーツ選手権運営の舞台裏。MLプロセッサArmがついにマシンラーニング(ML:機械学習)専用プロセッサのIPを正式にリリースする。Network:NN)を低電力かつ高パフォーマンスに実行する。CPUやGPU、DSPの拡張ではなく、最初からML処理専用に設計された専用アーキテクチャだ。MLを投入することを、今年(2018年)2月に発表していたが、いよいよ技術的な詳細を明らかにした。Things)から車載、さらにはサーバーサイドまでのスケーラビリティを備える。second)ときわめて高い。Second)の性能となる。MLにはいくつか目立った特徴がある。Network(LSTM)」などほかのネットワークモデルにも対応できる柔軟性を持つ。そのため、CNNが向いている画像認識だけでなく、LSTMやRNNを使う音声や自然言語など多彩な認識処理に使うことが可能で、今後の新しいNNにも対応できる。整数)のみとしており、浮動小数点演算はサポートしない。柔軟な処理のために、積和ユニット(Multiply-Accumulate:MAC)アレイと、MAC拡張したプロセッサの2系統のユニットを備える。インファレンスの電力効率向上の鍵となる「プルーニング(Pruning:剪定)」にハードウェアで対応し、プルーニングによって圧縮したデータを格納するSRAMを備える。MLは現時点のNPUのなかでは、最先端的な機能と性能を備えている。プルーニングでは、メモリ圧縮だけでなくコンピュテーションの圧縮もサポートする。MLの最大構成は7倍以上となる。ML搭載チップの登場は2019年頃となる。2019年のNPUとしては、標準的なレンジの性能と機能となるかもしれない。Engine)」を中心に構成されている。MLは、最大16個までのコンピュートエンジンで構成することができる。engine:PLE)」を備える。MLにはMLプロセッサ全体を制御するMCUであるコントロールユニットがあり、各コンピュートエンジンにワークロードからタスクをディスパッチする。コンピュートエンジン同士はブロードキャストネットワークで接続されており、同期ユニットがコンピュートエンジン同士の同期を制御する。ホストインターフェイスはACE-Liteで、CPUとはI/Oコヒーレンシを取る。MLコアはCPUコアのキャッシュをスヌープできるが、その逆はできない。個々のコンピュートエンジンは、データを格納する容量がコンフィギュラブルなSRAMを備える。「重み(ウエイト:weight)」データの格納や「アクティベーション(activation)」データの格納やハンドリングは内蔵SRAMで行なう。decoder)がプルーニングによって圧縮された重みデータの読み出しとデコードを行なう。ゼロ値のデータを圧縮することで必要なメモリ容量を減らすフィーチャマップとウエイトの圧縮によって、電力を大幅に低減できるインファレンスプロセッサの効率化の鍵となるプルーニングデータのシェアリングで無駄なメモリ読み出しを低減データは演算アレイであるMACコンボリューションエンジンに送り込まれる。MACコンボリューションエンジンは、1Dのベクタ構成のMACユニットアレイとなっている。NNの2Dマトリックス演算が1Dアレイにマップされる点は、GPU(Volta以外)での実装と似ている。NPUに多い2Dアレイ構成ではないのは、プルーニングへのハードウェア対応を容易にするためかもしれない。MACアレイは、インプットとアウトプットは8-bitだが、内部精度は拡張している。8-bitとしているのは、現在のNNツールでインファレンス向けとしてサポートされている精度の主流が8-bitであるためだという。MACアレイは、ルックアップテーブルを使うことで、プルーニングされた部分の演算をスキップし、空いた演算スロットを詰めることで演算スループットを上げる仕組みを備えている。MLのMLパフォーマンスは、額面の演算性能以上に高くなる。MLのMACアレイとプルーニング対応については、別の記事でもう少し詳しく説明したい。engine:PLE)と呼ぶマイクロコントローラを備える。PLEの実体は、ArmのMCU(マイクロコントローラ)をベースにニューラルネットワーク向け拡張エンジンを加えたプロセッサだ。ベクタ命令とNN向け命令を加えており、16レーンのベクタエンジンを備える。PLEは、MACアレイからは独立したプロセッサとなっており、専用のSRAMワーキングメモリも内蔵する。コンピュートエンジンに搭載されたPLE組み込みプロセッサを拡張したPLEアーキテクチャPLEは、一言で言えば、ニューラルネットワークのなかで、MACアレイに向かない処理をすべて行なうユニットだ。NNのプーリングやアクティベーションの制御、また、プルーニングなどによる圧縮データの実行の制御などをPLEが行なう。NPUでは、この部分を専用ハードワイヤ化しているプロセッサもあるが、Armはプログラマブルプロセッサとすることで、柔軟性を持たせた。コンピュートエンジンを制御するマイクロコントローラに、NN演算機能まで持たせたものがPLEだと見なすことができる。MLは、全体の設計を見ると、画像認識のCNNを初期ターゲットとして開発されたように見える。PLEのために、ほかのニューラルネットワークモデルにも柔軟に対応ができる。これは、どんなモデルが流行するか予想が難しい現在のMLでは重要な機能だ。MLが登場する頃にはほかのNPUも似たような柔軟性を備えている可能性がある。Detection:OD)プロセッサ」も刷新する。ArmはODプロセッサをすでにリリースしており、HiveやHikvisionのセキュリティカメラに組み込みコアとして採用されている。MLとの組み合わせ構成を可能とする。MLやGPUとの組み合わせも可能ODプロセッサは、画像や動画のなかから、人や顔、クルマや道路標識などを識別する。オブジェクト検知に特化することで、リアルタイムに高精度なディテクションを可能とする。MLとの組み合わせでは、たとえば、動画のなかからODプロセッサが顔を認識し、MLプロセッサが誰の顔かを認識する。第2世代のODプロセッサでは、フルHDの60フレームの動画の中の群衆から、リアルタイムで個々の顔部分を検知するといった処理が可能となる。オブジェクトサイズは50x60ピクセルまで。MLのNNを高度化させることができる。MLのためのソフトウェアスタックも整備Armは急速にマシンラーニングへの対応を進めている。product)命令を追加。GPUでも、つい最近、ドット積命令を追加してMLパフォーマンスを大幅にアップさせた。MLを投入することで、ArmはMLについては、CPU、GPU、NPUの3つのソリューションを並べることになる。それぞれパフォーマンスレンジと、フィーチャと、電力効率が大きく異なる。MLだが、トレーニングもデバイス側で行なうとなるとCPUやGPUのほうが向いていると思われる。MLの実装パターンとしては、まず、スマートフォンやタブレット向けのモバイルSoCへの導入が考えられる。NPUコアが搭載されるケースだ。MLコアへとオフロードすることで、マシンラーニングによる認識処理を容易にする。MLは省スペース構成も可能であるため、IoT向けの組み込みチップへの搭載も予想される。MLの最大構成のパフォーマンスレンジは、今後車載も視野に入れることができる。サーバーサイドのインファレンス向けでは、省電力性が武器となる。Armは、マシンラーニングのためのソフトウェアスタックも整備する。NNAPIから透過的にArmやパートナーのMLハードウェアにアクセスできるようにする。