1. トップ
  2. 新着ニュース
  3. IT
  4. IT総合

Doomの自動プレイが可能になったNDP200 AIプロセッサーの昨今

ASCII.jp / 2023年2月27日 12時0分

 Syntiantは連載703回で取り上げた。この時はNDP100世代を中心に説明したわけだが、最後でSyntiant 2コアをベースにしたNDP200が開発を完了し、2021年9月に発表されたという話をしている。今年のISSCCでは、このNDP200の詳細が出てきたので紹介したい。

NDP200

音声認識に特化したNDP100では 性能が足りない用途に向けた後継チップ

 連載703回でも説明したが、Syntiantの最初の製品であるNDP100世代は、音声認識にターゲットを絞り、しかもメモリー兼演算素子としてNORフラッシュではなくキャパシターを使ったという思い切りの良さが特徴的な製品だ。

 それもあってすでにそれなりの数のチップを出荷するとともに、Amazon Alexaの認証を取得するなど音声の市場をうまくつかむことに成功している。

 これに続くのがNDP200で、もう少し汎用的な用途を狙ったものであるが、その「汎用的」もわりとターゲットを絞ったものであったことは好感が持てる。

NDP200のターゲットとする「もう少し汎用的な」用途。映像にも対象を広げているが、それはNDP100の延長にある

 映像で言えば、1mW未満の消費電力での人物検出(これはインテルのGNAと同じターゲットだ)や、もっと高機能な音声検出(窓ガラスの破壊音と、キッチンでコップが割れた音をきちんと区別して前者だけを通知できる)、6/9軸センサーの検出などだ。

 6/9軸センサーの場合、個々の軸からのセンサー信号そのものが増えるわけではないが、軸の数だけデータが増えるので、同時に扱おうとするとそれだけの演算性能が必要になる。NDP100や120では、軸の数だけチップを用意する必要がある。つまりNDP200は、NDP100シリーズ単体では性能が足りない用途に向けた製品であり、ただそれはNDP100シリーズで開拓した市場の延長にあるわけだ。

 そんなNDP200であるが、構造は下の画像のとおり。画像処理を意識して、直接イメージ・インターフェースを搭載しているのが新しい。加えてHiFi 3 DSPとI2S出力を搭載しているのも特徴である。これは音声処理に向けたもので、こうした用途に向けた機能強化も怠らない。

NDP200の構造。Syntiant Core 2の中核であるDNN Data Pathの詳細は後述

 先の「ガラスの破壊音とコップが割れた音の区別」にしても、もちろん全部をAIで処理することもできるが、適切な音声のフィルタリングを事前に行なうことでより精度を上げたり、AI処理の負荷を減らしたりできる。HiFi 3 DSPはこうした用途に最適である。

 もう1つおもしろいのは画像のI/Fである。昨今カメラのI/FといえばMIPI CSI-2が広範に利用されつつある。CSI-2はいわばデジタルのカメラI/Fであるのだが、NDP200はあえてDirect DVP I/Fを搭載している。

NDP200が搭載するDirect DVP I/F。例えば秋月電子通商で扱っているB0011などがこのI/Fで利用できる。ちなみにB0011は1680円で購入できる

 ごらんのとおり、8bitのPixelデータとVsync/Hsync(垂直/水平同期信号)を送り出す方式だ。産業用カメラはほぼCSI-2が普通で、この11wire(カメラから送り出す信号線は11本の意味)の方式はもっと安いカメラでしか使われない。逆に言えば、そうした安いカメラを使うような用途がNDP200のターゲットということになる。

 映像を扱う場合のネットワークであるが、2018年の研究で、MobileNetV1を実装する際にwidth multiplier(要するに画像の幅である)であるαというパラメーターを実装することで、ネットワーク規模を大幅に抑えられるという話は知られている。

入力画像を絞ると当然精度は落ちることになるが、それこそ人間かどうかの確認であればこの程度の精度でも十分、と言う見極めもできるわけだ

 ImageNet V1は224×224ピクセルがデフォルトの画像サイズだが、α=0.25というのは画像サイズが56×56ピクセルまで落ちることになる。ただここまで落とすと、パラメーターの数は500K個に抑えられる。パラメーターは当然8bitなので、パラメーターの保持には500KBが必要と言う計算になる。

 NDP200はパラメーター用に640KBのSRAMを内蔵しているので、0.25ImageNet V1を動かすのであれば、外部のメモリーを一切利用せずに内部のSRAMだけで処理が完結することになる。

 ただここまで解像度を落としてどの程度の精度で処理ができるのか? という話だがこれも先行研究があり、入力画像を1000クラスの動物に分類するという処理で86.4%の精度を実現したとしている。顔検出であれば十分な精度としていいだろう。

これは入力画像を0.25MobileNet-128、つまり32×32ピクセルまで減らしたケースで、これならパラメーターは200KBで済む計算になる

 下の画像が実際のSyntiant 2コアの構成である。

データバッファが2つあるのはダブルバッファリング(例えば画面の取り込みであれば、片方のバッファから前フレームの画面データを読み込んで処理するのと並行して、もう1つのバッファに現フレームの画面データを取り込む)を行なえるようにするためだろう

 肝心のプロセッサーエレメントというか、Syntiant風に言うならMACユニットの数そのものは公開されていないが、MACデータパスブロックには2つのデータバッファ(それぞれ192KB)と640KBのパラメーターバッファがそれぞれ3.2GB/秒の帯域で接続され、最大で9.6GB/秒の帯域を利用できるとする。

 これ、AIプロセッサーの内部メモリー帯域としてはかなり低い方の部類に入るのだが、消費電力が1mW台のプロセッサーということを考えればかなり高い帯域なのがわかる。1W相当まで動作周波数を上げたら、9.6TB/秒におよぶ計算になるからだ。

 このMACユニットは、8bitなら32個、16bitなら16個の同時演算が可能になっている。もっともこれで縦幅が32個なのか? というとそれはおそらく早計で、これが縦横に複数個並んでいると考えるべきだと思われる。

畳み込みでは8bit出力で問題ないが、アクティベーションのための総和の計算は8bitではあふれるおそれがあるので、16bit幅にする必要がある。このあたりは柔軟に構成を変更できるようだ

 すでにこのNDP200を搭載した開発ボードも完成しているそうで、Raspberry Piの上にこれを乗せて利用できる格好だ。

オンボードでQVGA CMOSイメージセンサー(Pixart PGA7920)を搭載しており、これを利用しての画像処理アプリケーションがすぐ手掛けられる。ちなみにPAG7920の下に位置しているのは、8×8ピクセルの熱センサーであるPixArtのPAF9701。他にボッシュの6軸加速度センサーも実装されている

AIにDoomをプレイさせる トレーニングは3日で完了

 実際に人物検出のデモなども行なわれたが、実はこの程度のことであれば他のAIプロセッサーでも当然可能なわけで、性能を示すためにはあまり役に立たない。

0.25 MobileNetV1を利用して、90%の確率で人物認識ができるとのこと

 Syntiantもそう思ったのだろうか? なかなかユニークなデモを行なってくれた。Doomをプレイさせるというものだ。下の動画の8分57秒あたりから説明がある。

 Doomといっても本物のDoomではなく、VizDoomを利用している。VizDoomそのものは2016年から提供されている、AIで操作させるプレイヤーのため開発されたDOOMのプラットフォームであり、プレイヤーは画面の情報「だけ」を利用して操作することが許されている。このVizDoomをNDP200に移植した。

VizDoomをNDP200に移植。3層のネットワークでパラメータは606K個だそうで、ギリギリパラメータバッファに収まるサイズに調整したようだ

 まず最初は円形の部屋のど真ん中に位置し、そこで数千回ものプレイを学習して、モンスターを撃ち殺すことと360度の回転を学習。その後に移動することを学習したという。

先の動画で言えば12分12秒あたりから、この“Defend the Center”の動画が再生される

 ここである程度の学習を終えた後で、もう少し複雑な迷路内のプレイに移行し、こちらでのトレーニングを完了するのに3日ほどかかったという。

動画で言えば12分51秒あたりから、この“Deadly Corridor”の動画が再生される。動作は7種類(前後左右の移動と左右の回転、射撃)に増えたそうだ

 ただ、こんなローエンド向けのチップでたったの3日でトレーニングが完了した、というあたりからもNDP200の性能の高さをうかがい知ることができる。

 もう少し定量的なベンチマークとしては、ArmのCortex-A53コアと比較した場合の数値がある。それが下の画像だ。0.25 MobileNetV1の処理性能は30倍以上、性能効率は100倍にもおよぶとしている。

Cortex-A53コアとの性能比較。これはシミュレーションを利用した推定値ではなく、40nmプロセスで製造した実シリコンを使っての実測値であることに注意

 実際の使い方としては、それこそ冒頭で書いたように人物検出などであれば端的に言えば1~2fpsでも普通は足りるわけで、6fps(つまり0.1秒ごとに検出)の場合の消費電力は1mWに過ぎないとされる。これは相当に低い数字であることがわかるだろう。

 すでにNDP200は評価ボードだけでなくチップでのサンプル出荷も開始されている。製品ページには40ピンのQFP(Quad Flat Package:リード線が四辺に出ている平面実装パッケージ)とあり、複数のパッケージオプションがありそうである。

サンプル出荷されたチップ。こちらはWSCSPかなにかのパッケージのようだ
カタログの写真では確かにQFPなのだが……

 メモリー搭載量の増加などもあって若干NDP100シリーズよりは大型化しているが、それでも十分小さい(7.8mm2)サイズであり、組み込み機器への導入も容易だろう。引き続きSyntiantは、こうしたEndpoint AI向けのソリューションに注力している、ということがよくわかる発表であった。

この記事に関連するニュース

トピックスRSS

ランキング

記事ミッション中・・・

10秒滞在

記事にリアクションする

記事ミッション中・・・

10秒滞在

記事にリアクションする

デイリー: 参加する
ウィークリー: 参加する
マンスリー: 参加する
10秒滞在

記事にリアクションする

次の記事を探す

エラーが発生しました

ページを再読み込みして
ください