4.4 SILS 環境でのモデルベース開発ソフトウェアの性能 評価評価
4.4.2 SILS 実行環境
SILSの実行環境を表4.3に示す.使用するプロセッサは3.40GHz動作の4コア をもつXeon E31240 v3である.OSはWindows7,MATLAB/Simulinkのバージョ ンはR2014aを使用する.MEXコンパイラにはMicrosoft Visual C++ 2010を使用 し,並列化ソフトウェアの実行にはOpenMPを使用する.
並列化ソフトウェアを組み込んだSILS環境のイメージを図4.12に示す.上段の サブシステムにはS-Functionとして自動生成ソフトウェアを埋め込む.下段の赤の サブシステムにはS-Functionとして,並列化ソフトウェアを埋め込む.各Out1信 号,Out2信号は計算結果,実行時間を出力している.このモデルを動作させること により,図中のDiffブロックにより逐次ソフトウェアとの一貫性と図中のSpeedup ブロックにより並列化性能の確認を行うことができる.
図4.12を4プロセッサコア上で実行した際の動作イメージを図4.13に示す.は じめに,画像の読み込み等の入力をCore 0で実行する.入力の読み込み終了時に,
Core 0上で自動生成コードを動作させる.このとき,逐次の自動生成Cコードの
実行に要した時間をtxとする.次に,Core 0,Core 1,Core 2,Core 3上で並列化 Cコードを動作させる.このとき,並列化Cコードの実行に要した時間をtpxとす る.その後,逐次Cコードと並列化Cコードの出力誤差確認,txからtpxを割って 算出した速度向上率を出力する.この工程をシミュレーション終了まで継続する.
図4.12: 並列化ソフトウェアを組み込んだSILS環境イメージ
4.4.3 SILS 上での並列化ソフトウェアの性能評価
SILS上での並列化ソフトウェアの性能評価を図4.14に示す.評価を行うモデル ベース開発ソフトウェアは4.3.1節のモデルベース開発認識系ソフトウェアである.
並列化Cコードには粗粒度タスク並列化Cコードとマルチグレイン並列化Cコー ドを用いる.粗粒度タスク並列処理の場合,道路追従では1.68倍,血管抽出では 2.66倍,異常検出では2.87倍の速度向上が得られた.マルチグレイン並列処理の 場合,道路追従では3.10倍,血管抽出では3.69倍,異常検出では3.51倍の速度向 上が得られた.粗粒度タスク並列処理のみの実行に比べて,マルチグレイン並列 処理では道路追従では1.85倍,血管抽出では1.38倍,異常検出では1.22倍の速度 向上が得られ,4.3.3節と同様にマルチグレイン並列処理の方が優位な性能が得ら れている.これにより,ソフトウェア設計を行う工程で並列化ソフトウェアを扱う ことが可能となり,ターゲットプロセッサへの実装を行う前の工程で並列化コー ドの検証と性能向上の確認が実現した.
図4.13: SILS環境上の並列化ソフトウェアの動作イメージ
4.5 まとめ
本章では,モデルベース開発ソフトウェアに対して第3章の手法に加えて,マル チグレイン並列処理を応用した.はじめに,粗粒度タスク並列性を改善できるよ うに,ステートメントレベルで依存関係のないループ処理の分割を行う.その後,
マルチグレイン並列性を利用できるように,ターゲットとなるマルチコアプロセッ サのコア数に合わせて,並列化可能ループをあらかじめ分割する.このようにし て,ループ並列性を粗粒度タスク並列性に併せることで粗粒度タスク並列度を向 上させる.本章では,モデルベース開発の道路追従と血管抽出と異常検出の3つの ソフトウェアのマルチグレイン並列処理を行った.その結果,ARM Cortex-A15で 4コアを使って,道路追従では3.38倍,血管抽出では3.56倍,異常検出では3.24 倍の性能向上が得られた.さらには,XeonX5670上で6コアを使って,道路追従 では4.21倍,血管抽出では5.80倍,異常検出では4.10倍の性能向上が得られた.
そのため,マルチグレイン並列処理を応用して,モデルベース開発ソフトウェア でさらなる性能向上が実現できた.また,SILS環境においても,同様な性能向上 が確認でき,モデルベース開発の中でシームレスに並列化コードを扱うことがで
図4.14: SILS環境上でのモデルベース開発された認識系ソフトウェアの評価
きるようになった.