• 検索結果がありません。

モデルベース開発されたリアルタイム制御系ソフトウェアの 評価環境

3.8 粗粒度タスク並列処理よるモデルベース開発ソフト ウェアの性能評価ウェアの性能評価

3.8.2 モデルベース開発されたリアルタイム制御系ソフトウェアの 評価環境

リアルタイム制御系ソフトウェアの評価には情報家電用マルチコアRP2とV850E2R を使用する.

RP2

RP2は図3.23に示す構成である [IHY+08].RP2はSH4Aコアを8基搭載した ホモジニアスマルチコアプロセッサである.2020年前後の車載マルチコアが2コ アから3コアで高々4コア以下であることを想定して[MGW15],RP2上では2コ アから4コアまでを評価で用いる.また,各コアには,中央演算処理装置(CPU), ローカルデータメモリ(OLRAM),分散共有メモリ(URAM)を持つ.分散共有メ モリは各コアがローカルに持つが,他コアからもデータの書き込みができ,同期 やデータ転送を低オーバーヘッドで行うことができる.チップ上の全てのコアは,

SHwyバスによってオンチップ集中共有メモリ(CSM)やオフチップ集中共有メモ

リ(DDR2 SDRAM)に接続されている.RP2上での評価ではメモリアクセスオー

バーヘッドを削減するために,入力データ等はそれぞれのローカルデータメモリ に配置する.また,スタティックタスクスケジューリング時のMT間の同期情報の 授受には,分散共有メモリを使用する.分散共有メモリの使用により,同期フラ グチェックによるビジーウェイトがSHwyバスを使用せずにPE内部で行われるた め,効率の良い同期やスケジューリング情報の授受が可能である.他はオンチッ プ集中共有メモリに配置し,SHwyバスを使い,供給を行う.また,RP2上では逐 次コンパイラとしてSH Cコンパイラを用いる.

図3.23: RP2の構成図

V850E2R

V850E2Rは図3.24に示す構成であり,市販化されているV850プロセッサベー

スの車載用マルチコアプロセッサである.V850E2Rは2コアでそれぞれのCPU において,他のCPUからPE間バスを経由して,アクセス可能な分散共有メモリ

(RAM1,RAM2)を持ち,数サイクルの低レイテンシのデータアクセスが可能であ

る.特に入力データに関しては,各RAMに配置し,PE間バスアクセスが生じな いようにする.同期命令や他のデータはPE間バスアクセスを最小化するように各 RAMに分散して配置を行う.また,命令に関してはフラッシュメモリとキャッシュ メモリを利用しながら命令供給を行う.フラッシュメモリは共有で,両PEに命令 供給するが,命令キャッシュメモリは独立である.また,V850上では逐次コンパ イラとしてGreen Hillsコンパイラを用いる.

図3.24: V850E2Rの構成図

3.8.3 粗粒度タスク並列処理によるモデルベース開発ソフトウェア

の評価結果

図3.25にRP2上でのリアルタイム制御系ソフトウェアの性能評価結果を示す.

基本的なエンジン制御に関しては,逐次実行と比較して,2コア並列化で1.89倍 の速度向上が得られた.3コア以上での性能向上は確認できなかったが,2コアを

使って2.1の並列度(Para)の9割を満たす速度向上を実現できた.燃料噴射制御に

関しては,逐次実行と比較して,2コア並列化で1.81倍,4コア並列化で3.76倍 の速度向上が得られた.4コアまで速度向上を確認でき,4コアを使って4.3の並

列度(Para)の8割以上を満たす速度向上を実現できた.

一方,第3.4節の並列性向上手法を用いない場合には,両者ともに並列度(Para) が1.0であり,並列性が全く抽出できないため,速度向上が確認できなかった.ま た,第3.5節のオーバーヘッド削減手法を用いない場合には,実行時オーバーヘッ

ド(ダイナミックスケジューリングや同期命令等)がリアルタイム制御系ソフトウェ アの各粗粒度タスクの実行時間(数十から数百サイクル)を超えてしまい,両者と もに10倍以上の速度低下を確認した.さらに,第3.7節のローカルメモリ有効利 用手法を用いない場合には,基本的なエンジン制御に関して,2コア並列化で1.72 倍の速度向上であり,ローカルメモリと分散共有メモリの利用の有無で約10%の 性能改善を確認した.燃料噴射制御に関しては,2コア並列化で1.76倍,4コア並 列化で3.57倍の速度向上であり,ローカルメモリと分散共有メモリの利用の有無 で2コア並列化で約2%,4コア並列化で約5%の性能改善を確認した.すなわち,

第3.4節の並列性向上手法のと第3.5節のオーバーヘッド削減手法を用いることで,

速度向上が実現し,第3.7節のローカルメモリ有効利用手法を用いることでさらな る速度向上が実現したと言える.

同様に,図3.26にV850E2R上でのリアルタイム制御系ソフトウェアの性能評 価結果を示す.基本的なエンジン制御に関しては,逐次実行と比較して,2コア並 列化で1.91倍,燃料噴射制御に関しては,逐次実行と比較して,2コア並列化で 1.79の速度向上が得られた.車載用マルチコアV850E2Rに関しても,RP2の2コ ア上の速度向上と同等な速度向上を確認できた.

図3.21と図3.22のようなサブシステムレベルで並列化が困難なモデルに対して,

ソースコード全域にわたって算術代入文,条件分岐,関数間で粗粒度並列性を抽 出し,オーバーヘッドをかけずに各コアにタスクを静的に割り当てることで,理 想的な並列度に近い性能向上が得られた.また,粗粒度タスク並列処理によりリ アルタイム制御で代表的なエンジン制御においてマルチコアプロセッサを使って 高速化が実現したため,今後の自動車でのマルチコアプロセッサの利用の可能性 を示すことができた.

図 3.25: RP2上でのモデルベース開発されたリアルタイム制御系ソフトウェアの 評価

3.9 まとめ

本章では,モデルベース開発ソフトウェアの粗粒度タスク並列化手法について 述べた.少ない並列性から最大限並列性を抽出できるように,基本ブロック分割,

一時変数のリネーミング,インライン展開を行った.また,極限までにオーバー ヘッドを削減するために,条件分岐隠蔽のためのマクロタスクタスク融合と粒度調 整のためのヒューリスティックタスク融合を行った.その後,実行時不確定性をも つ粗粒度タスクの実行コストの精度を向上するために,プロファイル情報に基づ くスタティックスタスクケジューリングを行った.スタティックスタスクケジュー リング後,リアルタイム制御特有のローカルメモリを有効活用するために,アク セス頻度に基づくローカルメモリ配置を行った.

これらの手法を用いて,リアルタイム制御で代表的なエンジン制御を粗粒度タ スク並列処理を行った.その結果,RP2上で2コアから4コア使って,基本的な エンジンでは1.89倍,燃料噴射制御では3.76倍の性能向上が得られた.また,車

図3.26: V850E2R上でのモデルベース開発されたリアルタイム制御系ソフトウェ アの評価

載用のV850E2R上で2コアを使って,基本的なエンジンでは1.91倍,燃料噴射制

御では1.79倍の性能向上が得られ,同様な性能向上が得られた.これらの結果か ら,提案手法を用いて,複数のソフトウェアと複数のマルチコアプロセッサの環 境で理想的な並列度に近い値が得られ,提案手法の有効性を確認した.

第 4

モデルベース開発ソフトウェアのマル チグレイン並列処理の応用

本章は論文「組み込み向けモデルベース開発アプリケーションのプロファイル情報を用いたマ ルチコア用マルチグレイン並列処理」に基づく.

4.1 まえがき

モデルベース開発ソフトウェアの並列化に関して,現在までにサブシステムレベル 並列化[MSKKH11, MSKKH12],ブロックレベル並列化[久村11, TYN+12, TFL15]

等が提案されている.これらの手法ではSimulinkのモデルファイルを入力に並列 性を抽出する.そのため,ソフトウェア全体での並列化が困難である.例えば,ブ ロック内部に持つ並列性やライブラリブロックから並列性を引き出すことができ ない.一方,第3章ではモデルベース開発ソフトウェアの自動生成コードからコー ド全域に渡って,粗粒度タスク並列処理を行った.

本章ではさらなる並列処理性能効果を引き出せるように,第3章の手法をベー スにマルチグレイン並列処理[小幡03]を応用する.このマルチグレイン並列処理 は粗粒度タスク並列処理に加えて,ループイタレーション間のループ並列処理や ステートメント間の細近粒度並列処理を複合的に行う手法である.特に,本章で はモデルベース開発された認識系ソフトウェアが持つ粗粒度タスク並列性とルー プ並列性に着目し,より効果的に並列処理を実現する.さらには,認識系ソフト ウェアの代表例としてモデルベース開発されたADAS,医療画像処理,産業用パ ターン認識ソフトウェアに対して,提案手法を使った性能評価を行い,その結果 について述べる.

本章の構成は以下の通りである.まず,第4.2節では粗粒度タスク並列処理を ベースとしたモデルベース開発ソフトウェアのマルチグレイン並列処理手法につ いて述べる.そして,第4.3節では本章が提案するマルチグレイン処理を使ったモ デルベース開発された認識系ソフトウェアの性能評価について述べ,第4.4節では SILS環境上でモデルベース開発された認識系ソフトウェアの性能評価について述 べる.最後に第4.5節では本章のまとめを述べる.

4.2 モデルベース開発ソフトウェアのマルチグレイン並