※本記事はInterface誌2022年7月号に掲載されたものの原稿版になります

先見性? 自己満足? コンセプト開発

 第一回では「プロセッサコンセプト(実現したい姿)の良し悪しがプロセッサの成否を決定する」と紹介しました.第二回はこのコンセプト開発の話になります.
 図1に示しますように,プロセッサのコンセプトは市場・技術トレンド,過去知見,他製品情報を元にプロセッサ・アーキテクトが考えていくことになります.
 今回は二つの極端な例を紹介します.一つは競合ひしめくレッドオーシャン市場にて独自性を打ち出す例,もう一つは未開領域であるブルーオーシャン市場に打って出る例です.
とはいっても,将来のことは誰も正確には予想出来ません.最後は自分の先見性を信じ,自分のやりたいことの実現(半分自己満足?)にモチベートされ,周囲を説得しプロジェクトを発進させます.

図1: プロセッサ開発のプロセス概要

AIのレッドオーシャンにダイブ!

 世の中猫も杓子もAI!これをやらないわけにはいきません.しかしながら,多くの競合やプロセッサの巨人ひしめくレッドオーシャンでどう戦えば良いでしょうか.やはりここは他プロセッサとの差異を明確に打ち出す必要があります.
 図2はプロセッサの柔軟性と性能・電力(電力効率)のトレードオフの関係を示します.GPU(Graphics Processing Unit)は多様なAI処理に対応するため,ある程度電力効率を犠牲にして柔軟性を高めています.このGPUに対抗するため,特定の処理に特化することにより電力効率で差をつけるアプローチがあります.
 特定の処理に特化するとしたら,それはどのような処理なのでしょうか.図3に分類問題のニューラルネットワークで使用される二次元畳込み演算の概要(a)とその処理割合(b)を示します.分類問題の代表的なニューラルネットワーク(Mobilenet v1,VGG16)において,実に99%以上が二次元畳込み演算が占めることになります.この二次元畳込み演算に特化することにより,電力効率の高いプロセッサを実現できます.

図2: 柔軟性-電力効率のトレードオフの中で明確に差異を出せるターゲットを定める

(a)

(b)
図3:分類問題のニューラルネットワークでは二次元畳込み演算が処理の大半を占める

 さらに電力効率を高めるため,もう一つ重要なポイントがあります.それはSDRAMを代表とする外部メモリへのアクセス回数の削減です.プロセッサの演算器の電力を1とした時,外部メモリへのアクセスの電力は200という評価データもあります.
 ニューラルネットワークにおける外部メモリアクセスを削減する方法としてタイリング&レイヤフュージョン技術を紹介します(図4).従来のニューラルネットワーク処理では,レイヤ処理(図4のレイヤ1-レイヤ4)毎に中間データを外部メモリに退避するため,これが電力効率低下の原因となっていました.ここで,入力データを分割(タイリング)し、分割したデータ毎に複数のレイヤ処理の入出力を連結(レイヤーフュージョン)して処理することにより、中間データの退避を削減し、電力効率を向上することが可能になります.
 以上説明しました,二次元畳込み演算への専用化,タイリング&レイヤフュージョン技術導入,という二つのコンセプトを元に開発されたNSITEXEのML041というAIプロセッサでは,12TOPS/Wの高い電力効率を実現しています.

図4: タイリング&レイヤフュージョン技術により電力効率を大幅に向上

次世代制御のブルーオーシャンへ漕ぎ出せ

 制御とは一体何でしょうか? 図5(a)を用いて概念を説明します.操作量Xを入力するとYが出力される制御対象に対し,出力Yの値から所定のアルゴリズムを用いて操作量Xを適切に入れることで,出力Yを自由自在に操ること,が制御になります.この操作量Xをプロセッサで演算するものが電子制御であり,洗濯機,掃除機,自動車等,身の回りのあらゆるものに活用されています.
 電子制御の歴史は古く,一般的にはかなり「枯れた」分野になりますが,プロセッサ性能の向上に伴い実現可能性が出てきたモデル予測制御が注目を集めています.モデル予測制御を組込みのプロセッサで実現した例は無く,実用化で先行することでブルーオーシャン戦略を採ることが出来ます.
 モデル予測制御の概念を図5(b)を用いて説明します.モデル予測制御は制御対象のモデルを用いて制御対象の出力Yを予測し,予測された出力Yが制御の目的をどの程度満たしているかを評価関数Hで評価し,最も評価の高い出力Yを得る操作量Xをリアルタイムで探索する制御手法になります.こう書くと難しそうですが,実は私たちもモデル予測制御に近いことをやっています.例えば自動車の運転でカーブに差し掛かっているとします.直線と同じスピードでカーブに侵入すると曲がり切れないことが“予測”されるので,それに備えてどれくらい減速すればセンターラインを越えずにスムーズに走れるかを頭の中で”評価”しブレーキを踏む強さ(操作量)を決定します。モデル予測制御のイメージが出来たでしょうか?

(a)

(b)
図5: モデル予測制御の概念図

 一般的にモデル予測制御により制御の性能が飛躍的に向上し大いに普及しても良いはずですが,現状大きく二つの課題があります.

[課題1]高精度なモデル構築

 モデル予測制御では,制御対象の出力Yの予測結果を用いて最適操作量Xを探索しますが,そもそも予測の精度が高くないと全く性能が出ないどころか不安定化すらしてしまいます. モデル予測制御は高精度なモデルが取得出来ていることを前提とした制御アルゴリズムと言えます.
 図6(a)に一般的なモデル開発フローを示します.まず制御対象を分析し,制御対象の物理式を定式化します.次に物理モデルをアルゴリズムで実装し,最後に実機評価にて物理パラメータ同定とモデル精度の確認をします.ここで所望の精度が得られない場合,最初の分析に戻り,所望の精度が出るまでこれらの工程を繰り返すことになります.複雑な制御対象となると反復回数も多くなり,制御を開発しているのか,モデルを開発しているのか,何をやっているんだろう?状態になります.
 この高精度モデルの開発工数を削減するため,ニューラルネットワークモデルの活用が注目されています(図6(b)).まず,ニューラルネットワークの学習用に制御対象の実機データを大量に取得します.次にこれらのデータを用いてニューラルネットワークを学習,ニューラルネットワークモデルを取得します.得られたモデルは元のデータと比較することで精度を確認し,所望の制御が得られない場合は,ネットワークのパラメータを調整します.ある程度の反復は必要ですが,データ収集と学習は自動化が可能であり,高精度モデル作成の工数を大幅に削減することが出来ます.

(a)

(b)
図6: ニューラルネットワークを活用した制御対象モデルの開発により,高精度モデルを短期に開発する

[課題2]最適化ソルバの安定化と高速化

 モデル予測制御を数学の言葉で説明すると,評価関数Hを最小化するXを解く最適化問題となります.最適化問題を解くためのアルゴリズムを最適化ソルバといいますが,評価関数Hの形によって適切な最適化ソルバを選定する必要があります.
 最適化問題を,評価関数Hを標高とし,最も低い地点Cを探す問題に例えて説明します(図7(a)).一般的に制御対象モデルを含む評価関数は非線形であり,この例では“山あり谷ありの地形”になります.最適化ソルバに勾配法を選択した場合のアルゴリズムの挙動をハイカーに例えて説明します.ハイカーは自分の周りで最も下り勾配が大きい方向を選択し少し進みます.進んだ所でまた周囲を見渡し,下り勾配が大きい方向を選択して進む,を繰り返していきます.最終的には下り勾配が見つからなくなり地点Bにて探索終了となります.本来はひと山超えた地点Cに行く必要がありますが,近くに下り勾配が無いため地点Bが最も低い地点(最適解)と判断しています.この状況をモデル予測制御にあてはめた場合,最適な操作量による制御とはならず,場合によっては制御が不安定化します.
 この問題を解決するため,最適化ソルバにメタヒューリスティックスソルバを活用します.メタヒューリスティックスソルバは,蟻や蜂の群れの捕食行動からヒントを得た,”理論は無いが経験的にうまくいく”最適化ソルバの総称です.メタヒューリスティックスソルバの動作を落下傘部隊によるC地点探索に例えて説明します(図7(b)).勾配法では一人のハイカーがC地点を探しますが,メタヒューリスティックスソルバでは落下傘部隊が空から舞い降りて到着地点の標高を本部に報告します.本部は到着地点の報告より,最も標高が低い地点Cの場所を突き止めます.このようにメタヒューリスティックスソルバを活用することにより,任意の評価関数(地形)であっても最適解を求めることが出来るので,モデル予測制御の安定化に寄与します.

 

(a)

(b)
図7: メタヒューリスティックスソルバにより力技で最適値を探索する

 しかしながらメタヒューリスティックスソルバは“落下傘部隊”を活用することから(場合によっては第二陣,第三陣も出撃!)演算量が多く,リアルタイム制御に活用するためには高速化が必須です.そこで,複数の解候補Xの生成をマルチスレッドで,ニューラルネットワークモデルによる予測と評価関数の演算をベクトルプロセッサでそれぞれ並列実行することにより,モデル予測制御を高速実行することが出来ます(図8).

図8: マルチスレッド,ベクトル演算によりメタヒューリスティックスソルバを活用したモデル予測制御を高速に実行する

 以上のコンセプトを取り入れたNSITEXEのDR1000Cプロセッサ上で動作するモデル予測制御は,自動運転における速度制御を制御周期100msecで実現しています.

おわりに

 今回レッドオーシャン市場向け,ブルーオーシャン市場向けの両極端なコンセプト開発の例を紹介しました.両極端ではありますが,“これが当たる(当たってくれ!)”という想いで開発したコンセプトになります.
 本記事が読者の皆さんにとって,日頃の開発業務の元にあるコンセプトに立ち戻り,開発の方向性を再確認するきっかけになれば幸いです.

****
ひろつ てっぺい
****

 

関連製品

今回紹介したタイリング&レイヤフュージョンを採用したAIアクセラレータ MLシリーズはこちら

モデル予測制御を実現するMCU向けアクセラレータ DR Family DR1000Cモデル予測制御 Akaria MPC Solution のご紹介