周囲の3Dマップを作るGoogleの「Project Tango」に「Myriad 1」プロセサが採用されて、一躍、名前を知られるようになったMovidiusが、Hot Chips 26において第2世代のMyriad 2ビジョンプロセサを発表した。

Myriad 2を発表するMovidiusのDavid Moloney氏

普通のカメラは、レンズを通して、そのままのイメージを写すだけであるが、Computational Photographyでは、コンピュータによる処理で超高速のオートフォーカスやズームを行ったり、高ダイナミックレンジや非常に暗いところでの撮影などでも綺麗な画像が得られるように処理を行う。さらにVisual Awarenessの段階では、3Dモデリングや室内のナビゲーション、顔などの対象認識などを行う。

Computational Cameraは何ができるのか?(出典:この記事のすべての図は、Hot Chips 26でのMoloney氏の発表資料の抜粋である)

単純な撮影の場合は100GB/sのデータで、ビジョンプロセサの性能は500GOPSもあれば良いが、コンピュータビジョンの場合は200GB/s程度のデータとなり、1000GOPS程度の性能が必要。さらに、Computational Photographyでは400GB/s程度のデータとなり1500GOPSクラスの性能が必要になるという。

Myriad 2は、構成が可変できるイメージ処理とビジョン処理を行うハードウェアエンジン群(アクセラレータ)と、プログラムで複雑な処理を行うベクトルVLIWプロセサをメモリファブリックで繋いだという構造になっている。ハードウェアアクセラレータは定型的な処理を効率よく実行でき、600Mpixel/sの処理能力を持っており、複数台のカメラからの入力にも対応できる。VLIW部はプログラム処理なので、複雑なビジョン処理にも対応できるという構成になっている。

Myriad 2ビジョンプロセサの概要

ベクトルプロセサ部は、SHAVE(Streaming Hybrid Architecture Vector Engine)と呼ぶ128bit幅のSIMD-VLIWプロセサを12台持ち、各プロセサはロードストアユニットを2個、整数ユニットを1個、スカラユニットとベクトルユニット、比較ユニットを各1個持っている。また、このプロセサは比較結果を使ってプレディケート実行ができるようになっている。

扱えるデータは、8/16/32bitの整数と16/32bitの浮動小数点数であり、レジスタとしては、32要素のベクトル用のVRFと整数用のIRFがあり、VRFは128bit幅、IRFは32bit幅である。VLIWプロセサは、CMXと呼ぶ2MBのオンチップのSRAMと256kBのL2キャッシュをアクセスして処理を行う。

ベクトルプロセサ「SHAVE」のブロック図

ハードウェアアクセラレータ部は、次の図に書かれているOpenCVなどで規定された20種以上各種のフィルタ処理を実行するSIPP(Streaming Image Processing Pipeline)と呼ぶユニットから構成されており、複数のSIPPを繋いでパイプライン的に処理を行うことができるようになっている。

通常、SIPPは5×5のピクセルを対象に処理を行い、1サイクルに1pixelの処理を行うことができ、600MHzのクロックで600Mpixel/sの処理を行うことができる。

OpenCVなどで規定されている各種の処理を1pixel/cycleで実行するSIPP

Myriad 1では180MHzクロックのSHAVE 8台で処理を行っていたのに対して、Myriad 2では600MHzクロックで12台となり、この部分の性能は5倍に向上している。また、Myriad 1ではSIPPがなく、すべてSHAVEでの処理で、ピクセルあたり1.5から数10サイクルを必要としていたと比較すると、Myriad 2の性能はMyriad 1の15~25倍になっている。

Myriad 2では、次の図に見られるように、2MBのCMXと呼ぶマルチポートのメモリにSIPPと12台のSHAVEが、接続された構成となっている。

Myriad 2チップの全体ブロックダイアグラム

Myriad 2はTSMCの28nm HPMプロセスで作られ、次の図に見られるように、CMXメモリを中心に、上側にSIPP、左右と下側に12個のSHAVEが配置されている。Myriad 2は、1GbitのLPDDR2 DRAMチップを積層した製品と、DRAMを外付けする製品があり、パッケージのサイズが少し違っている。チップサイズは公表されていないが、小さい方のパッケージから推測すると4mm角程度であり、比較的小さなチップに収まっている。お値段は10ドル程度と見られ、それほど大きなチップではコストが高くなりすぎてしまう。

Myriad 2のチップ写真とパッケージ

対象にメッシュパターンなどを投影し、そのひずみから奥行を求める処理は、6台のSHAVEプロセサと2個のSIPPユニットで、毎秒30フレームの処理を行うことができ、消費電力は250mW以下で済むという。

パターンを投影して奥行を検出する例では,6個のSHAVEと2個のSIPPを使い毎秒30フレームの処理ができる