63
1 Parallel & Distributed Systems Lab. モデルベース並列化 (Lab. URL: https://www.pdsl.jp/) 2018年11月 名古屋大学大学院情報学研究科 枝廣・本田研究室 (お問い合わせは [email protected] 枝廣へ) デモ動画2018: https://youtu.be/X3dpnmVj4Zk

モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

1Parallel & Distributed Systems Lab.

モデルベース並列化(Lab. URL: https://www.pdsl.jp/)

2018年11月

名古屋大学大学院情報学研究科

枝廣・本田研究室(お問い合わせは [email protected] 枝廣へ)

デモ動画2018: https://youtu.be/X3dpnmVj4Zk

Page 2: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

2Parallel & Distributed Systems Lab.

アウトライン

• モデルベース開発(MBD)とクロスレイヤ設計

• クロスレイヤ設計に必要な技術

• 付録:組込みマルチコアコンソーシアムについて

Page 3: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

3Parallel & Distributed Systems Lab.

モデルベース開発(MBD)

MATLAB/Simulink

1.数理モデル化

2.制御器の数理モデル設計(シミュレーションベース)

3.実装コード化

制御

制御対象(プラント)

制御器(コントローラ)

Page 4: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

4Parallel & Distributed Systems Lab.

MBDの現状(レイヤード設計)

マルチ・メニーコア・ターゲットプラットフォーム上

実装設計

制御モデル設計(数式・アルゴリ

ズム設計)

モデル(シミュレーション可能な仕様)

Page 5: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

5Parallel & Distributed Systems Lab.

MBDレイヤード設計:マルチコア化の課題(1)

マルチ・メニーコア・ターゲットプラットフォーム上実装設計(コードレベル並列化)

制御モデル設計(数式・アルゴリ

ズム設計)

モデル(シミュレーション可能な仕様)

別会社別部門

ターゲットプラットフォーム上での性能・並列動作未考慮性能未達時にモデル(=仕様)変更困難

Page 6: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

6Parallel & Distributed Systems Lab.

MBDレイヤード設計:マルチコア化の課題(2)

マルチ・メニーコア・ターゲットプラットフォーム上実装設計(並列化コード検証)

制御モデル設計(数式・アルゴリ

ズム設計)

モデル(シミュレーション可能な仕様)

現在の設計手法

マルチコア化で実行順序の自由度が大幅増大。入出力値検査においてシミュレー

ション時間が大幅増加

Page 7: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

7Parallel & Distributed Systems Lab.

MBDにおけるクロスレイヤ設計とは

ターゲット情報を利用しながら制御設計をおこない、その結果を用いて実装する協調設計手法

Page 8: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

8Parallel & Distributed Systems Lab.

クロスレイヤ設計 手順とメリット

1. ハードウェア抽象化記述SHIMを用い、ターゲット情報を抽象化し、モデルレベルで利用可能にする

2. モデルベース並列化(MBP)により、ターゲット情報を用いてモデルレベルで自動並列化設計・検証、ターゲット向け並列化コード生成

3. 並列性能・動作をモデルにフィードバックし、並列動作を意識した制御設計を支援

• メリット– 協調設計による設計収束時間短縮– 上流での並列動作設計による検証容易化– 次世代ターゲット向け制御アルゴリズム開発加速

Page 9: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

9Parallel & Distributed Systems Lab.

事例

モデルベース開発からTOPPERS搭載システムへのクロスレイヤ自動設計を利用したマルチコアモータ制御実装

~第7回TOPPERS活用アイデア・アプリケーション開発コンテスト 銅賞

~ 組込みシステムシンポジウム2017優秀ポスター賞

デモ動画: https://youtu.be/eszVE9wc__c

Page 10: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

10Parallel & Distributed Systems Lab.

システム全体イメージ

• PS3コントローラで操作

• RH850/F1H(デュアルコア)を利用

• TOPPERS/ATK2-SC1-MC上で動作

• ブラシレスモータ制御はクロスレイヤ設計手法によってモデルから自動生成された並列タスクで実行

Page 11: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

11Parallel & Distributed Systems Lab.

ハードウェア

F1Hボード(HSBRH850F1H176)

Bluetoothモジュール(SBDBT5V)

ブラシレスモータサーボモータ組込用小型

モータドライバボード

ボディ(ヘッドライト,ブレーキランプ,ブザー等が搭載)

本体PS3コントローラ

Page 12: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

12Parallel & Distributed Systems Lab.

ブラシレスモータ制御モデル

• クロスレイヤ設計手法を用いて,制御設計および自動並列化したモデル10ms周期ブロック

※色分けはコア割当を表す

ベースレート : 100us

Page 13: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

13Parallel & Distributed Systems Lab.

並列コードの性能評価

• 出力比較

シミュレーション結果 実際の結果

Page 14: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

14Parallel & Distributed Systems Lab.

並列性能比較

• 実行時間

• 100us周期タスク 1.62倍• 100us周期タスク + 10ms周期タスク 1.82倍

Page 15: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

15Parallel & Distributed Systems Lab.

アウトライン

• モデルベース開発(MBD)とクロスレイヤ設計

• クロスレイヤ設計に必要な技術

• 付録:組込みマルチコアコンソーシアムについて

Page 16: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

16Parallel & Distributed Systems Lab.

クロスレイヤ設計に必要な技術

• 性能見積

– ハードウェア抽象化記述SHIMにより処理時間見積

• Simulinkブロックのコアマッピング

– 負荷分散,通信最小化を意識したコア割当を自動算出

• 並列コード生成

– コア割当をもとに並列実行可能なコードを自動生成

• 並列動作検証

– デッドロック,読み書き順序逆転等の並列動作による問題発生を検出

• 可視化

– コア割当をモデルに反映させ,更なる高並列制御設計につなげる

Page 17: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

17Parallel & Distributed Systems Lab.

クロスレイヤ設計に必要な技術

• 性能見積

– ハードウェア抽象化記述SHIMにより処理時間見積

• Simulinkブロックのコアマッピング

– 負荷分散,通信最小化を意識したコア割当を自動算出

• 並列コード生成

– コア割当をもとに並列実行可能なコードを自動生成

• 並列動作検証

– デッドロック,読み書き順序逆転等の並列動作による問題発生を検出

• 可視化

– コア割当をモデルに反映させ,更なる高並列制御設計につなげる

Page 18: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

SHIMとはSoftware-Hardware Interface for Multi-many-core• 多様なマルチコアチップを抽象化したXML記述

– コア種類・数、メモリ配置、アドレスマップ、通信、コア→メモリ性能情報等が、数百ページの説明書を読まずとも、機械的に読める

– 性能情報の例︓コアAからメモリ番地Xにアクセスしたときの(best, typ, worst)レイテンシ(右下図参照)

– ツール群、OS等がSHIM対応することにより、多様なマルチコアチップを共通的に扱えるようにすることが⽬的

SHIM仕様書 http://www.multicore-association.org/workgroup/shim.phpOpen SHIM Github https://github.com/openshim/shim

18

コア→メモリ性能情報SHIM記述例

SHIM対応ツール群並列化⽀援

システム解析 ・・・

SHIM対応マルチコアOS

マルチコアチップ

国際標準化

仕様検討SHIM WG

SHIMコア、メモリ、性能情報

Page 19: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

SHIMのユースケースとメリット

• マルチコアにおけるアプリケーション実⾏性能⾒積• マルチコア選定時のアプリケーション実⾏性能⽐較• 異なるマルチコアへのアプリケーション移植の際の性能⾒積• 複数マルチコアをターゲットとしたソフトウェア部品開発• 特定アプリケーション向けに特化したマルチコアを企画する際の性

能評価• マルチコア向け開発⽀援を⾏う各種ツールの開発コスト低減と

SHIM対応ツールエコシステム

19

• システム性能⾒積• ハードウェアモデリング/

複数HWの対応• ツールコンフィギュレー

ション

Page 20: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

20Parallel & Distributed Systems Lab.

SHIM見積精度評価実験

353.3

155.32

332.03

1141.67

0

200

400

600

800

1000

1200

実機 ALL BEST 提案手法 ALL WORST

Fibonacci

5381.76

2601.81

5493.42

14182.1

0

2000

4000

6000

8000

10000

12000

14000

16000

実機 ALL BEST 提案手法 ALL WORST

モータ制御

4.53E+063.67E+06

5.23E+06

1.24E+07

0.00E+00

2.00E+06

4.00E+06

6.00E+06

8.00E+06

1.00E+07

1.20E+07

1.40E+07

実機 ALL BEST 提案手法 ALL WORST

Dhrystone

誤差率 : -6.02%

誤差率 : 2.07%

誤差率 : 15.41%

Cyc

le

Cyc

leC

ycle

提案手法:メモリアクセス比率を用い、best, worst値から計算

実機と比較して平均絶対誤差 7.83%

上流工程としては精度の高い見積

誤差の要因

・未計測の命令が存在(擬似命令)

・標準ライブラリの考慮 など

Page 21: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

21Parallel & Distributed Systems Lab.

SHIMulator

• SHIMのアーキテクチャ情報、性能情報を使って動作するISS(命令レベルシミュレータ)

• 動的見積、静的見積の双方に利用可能

LLVMフロントエンド

SHIMLLVM-IRシミュレータ

LLVM-IR

性能見積

モデルから

自動生成した汎用Cコード

メモリアクセスログ・カバレッジ結果

汎用PC上で動作

入力データセットが課題

Page 22: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

22Parallel & Distributed Systems Lab.

ターゲットSHIMLLVM-IRコードプラントモ

デル制御

モデル

モーターPID制御モデル

SHIMulator

MATLAB/Simulink

TCPIP通信

ライブラリ

プラントモデル

TCPIP通信

ライブラリ

SHIMulator PILSプログラム

モーターPID制御モデルに対するSHIMulator PILSの実行

SHIMulator PILSデモ動画をご覧ください

入力データセットの課題をMATLAB/Simulinkとの連携により解決

Page 23: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

23Parallel & Distributed Systems Lab.

クロスレイヤ設計に必要な技術

• 性能見積もり

– ハードウェア抽象化記述SHIMにより処理時間見積

• Simulinkブロックのコアマッピング

– 負荷分散,通信最小化を意識したコア割当を自動算出

• 並列コード生成

– コア割当をもとに並列実行可能なコードを自動生成

• 並列動作検証

– デッドロック,読み書き順序逆転等の並列動作による問題発生を検出

• 可視化

– コア割当をモデルに反映させ,更なる高並列制御設計につなげる

Page 24: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

24Parallel & Distributed Systems Lab.

モデルベース並列化

• Simulinkブロックレベルでの並列化– 新規開発アルゴリズム:二重階層クラスタリング法

• eSOL社から製品化– https://www.esol.co.jp/embedded/mbp.html

Page 25: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

25Parallel & Distributed Systems Lab.

Renesas RH850マルチコアPILSとの連携

RH850 マルチコア・モデルベース開発環境紹介動画https://www.youtube.com/embed/hVZz244-NZE

Renesas社 “RH850 マルチコア・モデルベース開発環境“ より引用https://www.renesas.com/mbd-rh850-multicore

Page 26: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

26Parallel & Distributed Systems Lab.

性能情報等フィードバック

モデルベース並列化(MBP)設計検証フロー

Simulink

ハードウェア抽象化記述SHIM

ブロックレベル実装中間言語/コード生成/ユーザ作成コード

BLXML&BL-GRAPH

並行動作振る舞い検証

性能等実測

コアへのブロック配置

コード生成可能モデル

ブロックレベル構造情報

並列化コード生成

並行モデル生成 (CSP生成ツール)

性能見積

実装最適化ループ

制御モデル設計ループ

デモ動画をご覧ください

Page 27: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

27Parallel & Distributed Systems Lab.

4コア配置の例

Page 28: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

28Parallel & Distributed Systems Lab.

コア割当の色分け表示

Page 29: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

29Parallel & Distributed Systems Lab.

実験結果(1)

• 4種のデータ(パワートレイン制御)

– DATA1 (143ブロック)

– DATA2 (502ブロック)

– DATA3 (2158ブロック)

– DATA4 (177ブロック)

• 2コアと4コアで実験

• 3種のアルゴリズム

– 高速化クリティカルパス法(高速化CP)

– 階層クラスタリング法 (hMETIS)

– 二重階層クラスタリング法(提案手法)

Page 30: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

30Parallel & Distributed Systems Lab.

実験結果(2)

• 提案手法により10~30%性能向上

• 計算時間は、すべて1秒未満

2コア配置 4コア配置

0

0.5

1

1.5

2

2.5

3

DATA1 DATA2 DATA3 DATA4 DATA1 DATA2 DATA3 DATA4

各手法の比較(性能向上)

高速化CP hMETIS 提案手法

Page 31: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

31Parallel & Distributed Systems Lab.

実験結果(3)

• Karp-Flattの指標(実行時間中の逐次動作率)

– 高速化CP法と比べ29%~95%減少

– 階層クラスタリング法と比べ4%~80%減少

2コア配置 4コア配置

0

10

20

30

40

50

60

70

80

90

DATA1 DATA2 DATA3 DATA4 DATA1 DATA2 DATA3 DATA4

実行時間中の逐次動作率[%]

高速化CP hMETIS 提案手法

45%減

72%減

51%減

95%減 56%減 29%減

37%減

45%減

Page 32: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

32Parallel & Distributed Systems Lab.

ツール実行時間

• 前記実験データでは1秒未満

• 約10,000ブロックで10秒

• 約24,000ブロックで18秒

Page 33: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

33Parallel & Distributed Systems Lab.

クロスレイヤ設計に必要な技術

• 性能見積もり

– ハードウェア抽象化記述SHIMにより処理時間見積

• コアマッピング

– 負荷分散,通信最小化を意識したコア割当を自動算出

• 並列コード生成

– コア割当をもとに並列実行可能なコードを自動生成

• 並列動作検証

– デッドロック,読み書き順序逆転等の並列動作による問題発生を検出(CSPによるモデル検査、産総研と共同研究)

• 可視化

– コア割当をモデルに反映させ,更なる高並列制御設計につなげる

Page 34: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

34Parallel & Distributed Systems Lab.

並列化コードに対する課題

• 並列・並行実行により、タイミングに関する自由度が指数関数的に増大

タスク1(DataStore)

タスク2(DataStore)

タスク3(DataStore)

コア1 コア2 コア3

デッドロック? 読み書き順序逆転?

Page 35: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

35Parallel & Distributed Systems Lab.

自動コード生成ツールに対する課題

• もとのSimulinkモデルと並列化コードは等価なのか?

Page 36: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

36Parallel & Distributed Systems Lab.

a. 並列化が原因で発生する問題の検証

• 生成されたCSPモデルを用いてモデル検査

– 機能要件• デッドロック:deadlock-freeを利用して検証

• 読み書き順序逆転:LTL(線形時相論理)を利用した順序保証検証

– 非機能要件• デッドラインミス:時間情報付CSPモデルとdeadline制約で検証

(deadline制約:deadline以内に終了しないとデッドロックする)

Simulinkモデル 逐次コード

BLXML(*)

並列コード

実行順序ファイル

実行順序付きBLXML

並列コードのCSPモデル

Mathworks社ツール

XML生成(独自)

実行順序埋め込み

並列コード生成(独自)

シミュレーション

CSP生成(独自)

(*) BLXML: Block-Level-structure XMLブロック構造とコードを結合したMBPの内部表現

Page 37: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

37Parallel & Distributed Systems Lab.

CSP生成ツール

• 「コア割当て」と「実行順序情報」を保持するXML(BLXML: MBPの内部データ表現)からCSPモデルを自動生成するツール

– デッドロック、実行順序逆転、デッドラインミスの検証モデルを自動生成が可能

– 生成されたCSPモデルを検証ツールに通すことでデッドロックなどの検証が可能

– 検証を行う際の状態爆発の対応策として、AtomicSubsystemによる分割を行った状態で検証を行える階層分割が可能

Page 38: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

38Parallel & Distributed Systems Lab.

CSP生成ツール

• 生成されたCSPモデルをPATに通すことで自動的に検証を行うことが可能

デモ動画をご覧ください

Page 39: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

39Parallel & Distributed Systems Lab.

CSP生成ツール

• 現在、CSP生成ツールにおける2つの課題を検討中

1. 大きなモデルに対する検証の高速化について

• AtomicSubsystemごとに階層化を行い、各サブシステムごとに検証を実施

2. データ依存関係を使用するモデルの実行順序取得について

• データ読み書きの並列化アルゴリズムを明確化

Page 40: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

40Parallel & Distributed Systems Lab.

並列化アルゴリズムの正当性の証明

• 並列化アルゴリズム自身をCSPで厳密に記述し、その正当性を証明する

– 機能要件• 並列コードはSimulinkモデルのブロック間依存関係を満たすこと

• 逐次コードと並列コードの出力が等しくなること

Simulinkモデル 逐次コード

BLXML

並列コード

並列化アルゴリズムのCSPモデル

Mathworks社ツール

XML生成(独自)

並列コード生成(独自)

形式化

並列化アルゴリズムの正当性証明(現在産総研と共同で推進中)

関係の明確化

Page 41: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

41Parallel & Distributed Systems Lab.

並列化の例

• 並列化アルゴリズム

タスクブロック依存関係グラフ

モデルベース並列化システム

依存関係に基づく並列化

タスクマネージャー1

タスクマネージャー2

1

4

5

2

3

B1 B12 バッファ

コア2

コア1

並列化アルゴリズム:依存グラフからタスクマネージャを生成する

並列化アルゴリズムを形式仕様記述言語CSPで形式的に記述状態遷移図を比較し確認しながら証明を行う

Page 42: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

42Parallel & Distributed Systems Lab.

並列化アルゴリズムの証明

• 任意の依存グラフの状態遷移図を比較概要

任意の依存グラフDGのCSPモデル

S 並列化アルゴリズム

DGの並列実行モデルのCSPモデル

コア1 コア2

S1 S2

S,S1,S2:各モデルにおける実行済みのタスクの集合

(S1,S2)

並行合成コア間通信により実行済みのタスクの情報を共有

並列実行モデルにおいてあるタスクを実行する際にそのタスクの前に実行されるべきタスクが実行済みタスク集合に含まれていることを証明

Page 43: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

www.embeddedmulticore.org

組込みマルチコアコンソーシアムハードベンダ/ソフトベンダ/メーカを繋ぎマルチコア活⽤を⽀援

2018-11名古屋⼤学 枝廣 正⼈イーソル(株) 権藤 正樹

ガイオテクノロジー(株) 岩井 陽⼆

Page 44: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

Agenda• インテリジェント化する組込みシステム• 海外の組込みマルチコア活動• 組込みマルチコアの課題• 組込みマルチコアコンソーシアム 活動と会員メリット• これまでの成果• 今後の活動• メンバーシップ

Embedded Multicore Consortium44

Page 45: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

インテリジェント組込みシステム⾃動運転システム

Embedded Multicore Consortium45

「JETSON TK1」を搭載した⾞両による⾃動運転デモ

Mercedes Future Track2025 ⾃動運転

※⽇経エレ2014年10⽉13⽇号

• ⾃動運転技術はロボット技術とも多くの共通要素を持つ、今後有望視されるインテリジェント組込みシステムの⼀つ

• ⾃動運転に⾄るまでの多くの技術が段階的に実⽤化されつつある

• ⾃動運転における認知、判断では⾮常に⼤きなコンピューティングパワーが必要

• 操舵においても、例えば欧州OEMでは3コアは量産済み、次は6コアと述べている

Page 46: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

インテリジェント組込みシステム医療機器におけるリアルタイム画像処理

Embedded Multicore Consortium46

• 多くの先端診断⽀援機能が⾼度かつリアルタイムな画像処理技術によって実現されている

• アルゴリズムの多様化、複雑化、機器の間での部分的再利⽤などの開発効率向上などの課題がある

• 現在ハードウェアで実現しているものをソフトウェアで実現することで解決する課題は少なくない

• それには強⼒で信頼性の⾼いマルチコアが必要

Page 47: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

海外での組込みマルチコア活動• EUのマルチコア向けプロジェクト(⾃動⾞/航空/鉄道)

– ARAMIS II︓安全系マルチコアプラットフォーム(24Mユーロ)– APP4MC︓オープン・マルチコア開発環境(旧AMALTHEA)– PROXIMA: マルチコア・確率的時間解析(7Mユーロ)– ALMA: 並列アルゴリズム(3Mユーロ→スピンアウト)など

• Multicore Association︓⽶国中⼼のマルチコア技術標準化団体

47

Page 48: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

組込みマルチコアの課題• マルチコアプロセッサはアーキテクチャの⾃由度が⾼く、

各種ツールやプラットフォーム⽀援が重要• 様々な並列化⼿法、ライブラリ、ツールを組合せるには

様々な知⾒が必要• システムベンダから半導体ベンダまで、すべての関連技

術の協働が必要• 関連業界で協⼒・連携し、(1) 活⽤⽀援、(2) ビジネ

ス推進、(3)市場の活性化貢献を実現することが必要様々なベンダや⼤学が集まり連携するための場が求められている→2014年10⽉組込みマルチコアコンソーシアムを設⽴

48

Page 49: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

コンソーシアム活動• マルチコア向け開発⽀援ツールのためのハードウェア抽象

化記述SHIM標準化と導⼊⽀援(SHIM委員会)– SHIM (Software-Hardware Interface for Multi-Many-Core) – SHIM WG, Multicore Association (Chair: M. Gondo (eSOL))– NEDO省エネPJから仕様提案、2015年2⽉公開

• リファレンスとしてSHIMを利⽤したマルチコア向け設計⽀援ツール群を開発– MCAとしても公開するSHIM Editorと性能計測ツールに加え、設

計⽀援ツール群を会員向けに無償公開。所定の期間経過後に⼀般にも公開する可能性有

– モデルベース並列化委員会• 様々な並列化⼿法の知⾒共有とガイドラインの検討

– マルチコア適⽤委員会• セミナー開催、技術情報提供、MCAとの連携

49

Page 50: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

SHIM委員会• WG構成

– 委員⻑︓権藤(イーソル)• 活動計画

– 定例委員会を開催• 期間︓2015/3〜2019/3(原則として継続)• 対象︓SHIM仕様及びその適⽤• 最近の話題

– SHIM v2.0– 講演で紹介

「産業⽤途のマルチコア解析と最適化ツールのためのSHIM2.0適⽤と重要性」

50

Page 51: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

SHIMとはSoftware-Hardware Interface for Multi-many-core• 多様なマルチコアチップを抽象化したXML記述

– コア種類・数、メモリ配置、アドレスマップ、通信、コア→メモリ性能情報等が、数百ページの説明書を読まずとも、機械的に読める

– 性能情報の例︓コアAからメモリ番地Xにアクセスしたときの(best, typ, worst)レイテンシ(右下図参照)

– ツール群、OS等がSHIM対応することにより、多様なマルチコアチップを共通的に扱えるようにすることが⽬的

SHIM仕様書 http://www.multicore-association.org/workgroup/shim.phpOpen SHIM Github https://github.com/openshim/shim

コア→メモリ性能情報SHIM記述例

SHIM対応ツール群並列化⽀援

システム解析 ・・・

SHIM対応マルチコアOS

SHIM対応マルチコアOS

マルチコアチップ

国際標準化

仕様検討SHIM WG

SHIM

情報

SHIMコア、メモ

リ、性能情報

51

Page 52: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

SHIMのユースケースとメリット

• マルチコアにおけるアプリケーション実⾏性能⾒積• マルチコア選定時のアプリケーション実⾏性能⽐較• 異なるマルチコアへのアプリケーション移植の際の性能⾒積• 複数マルチコアをターゲットとしたソフトウェア部品開発• 特定アプリケーション向けに特化したマルチコアを企画する際の性能

評価• マルチコア向け開発⽀援を⾏う各種ツールの開発コスト低減と

SHIM対応ツールエコシステム

• システム性能⾒積• ハードウェアモデリング/

複数HWの対応• ツールコンフィギュレー

ション

52

Page 53: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

SHIM委員会と会員メリット

SHIM標準ドラフト / 関連標準化WG

EMC会員

EMC SHIM WG

SHIM標準へのインプット

SHIM、その他関連標準化動向情報収集

権藤⽒(MCA SHIM WG Chair)、安積先⽣(埼⽟⼤、IEEEへWG設⽴提案中) 他

53

Page 54: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

モデルベース並列化委員会 (MBP)• WG構成

– 委員⻑︓枝廣(名⼤)• 活動計画

– 定例委員会を開催• 期間︓2015/3〜2019/3(原則として継続)• 対象︓Simulinkモデルベースからマルチコア向けの設計⽅法論

• 資料参照(名古屋⼤学ブースB-16-⑨で紹介)

54

Page 55: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

モデルベース並列化 (MBP)

制御設計での並列性考慮が実機での制御性能・実装性能の鍵

モデルレベルで並列性を抽出し、並列化コード⽣成

制御設計にフィードバック

Page 56: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

MBP委員会と会員メリットEMC会員

EMC MBP WG

研究へのインプット並列化, SHIM⾒積他研究成果情報収集

共同研究各社共同研究各社共同研究各社

個社依存秘密情報を除いた形で発表許諾

OEM、サプライヤ、ツール、半導体他

他レイヤの専⾨家からのコメント

(実⽤化促進)

背景︓研究資⾦は、基盤事業的に分配される時代から調達(成果利⽤に制約発⽣)する時代に56

Page 57: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

マルチコア適⽤委員会 (WG3)• WG構成

– 委員⻑︓岩井(ガイオテクノロジー)• 活動計画

– 定例委員会を開催• 期間︓2017/1〜2019/3(原則として継続)• 対象︓マルチコアを積極的に活⽤する⽅法やマテリアル• 最近の話題

– 「はじめてのマルチコア」– 講演で紹介

「『マルチコア技術導⼊ガイド』の紹介」「⾃動⾞機能安全でのマルチコア適⽤」

57

Page 58: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

マルチコア適⽤委員会と会員メリットEMC会員

EMC WG3 WG

⼀部貢献(執筆)他レイヤの専⾨家との議論、情報収集、会員公開版⼊⼿

利⽤事例、ツール情報、海外情報

(現在は会員にのみ公開)

⾃社で調べたいことは、多くの場

合、他社でも調べたい、かつ⾮競争

領域

58

Page 59: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

これまでの⼀般向け公開成果• MCA MPP和訳 (Multicore Programming Practice)

– マルチコアを利⽤するための基本知識とベストプラクティス集– 2017.3組込みマルチコアコンソーシアム ダウンロードページに公開– 2018.10末現在 約2300アクセス、443ダウンロード– 新版にはモデルベース並列化採⽤→今年末和訳公開予定

• モデルベース並列化サンプル– 簡単なサンプルモデルと結果

並列化モデル MPP

データ読み書き間の依存性は計算の部分的な順序を決定する。順序を制限するデータ依存には3つのタイプがあり、真のデータ依存、逆依存、出力依存がある。(図8)真のデータ依存は、あるデータ値への書き込みが終

わるまでは読み込みができないような操作間の順序を示す。これはアルゴリズム内の基本的な依存であるが、このデータ依存性の影響を最小化するようアルゴリズムを改良することもできる場合もある。

59

Page 60: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

これまでの会員向け公開成果• SHIM利⽤⽂書およびサンプルプログラム類

– SHIM仕様(⽇本語版)– アクセス関数、SHIM利⽤性能⾒積サンプルプログラム– SHIM Editor, 性能計測ツール(評価環境での性能⾃

動計測、SHIMへの⾃動⼊⼒)• モデルベース並列化プログラム類

– 簡単なモデルで動作する評価版バイナリ

SHIM Editor性能計測ツール

60

Page 61: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

今後のEMC• SHIM2.0の公開、普及、標準化、さらなる改良

• MBPをはじめとしたツール類の試作

• マルチコア設計ガイドの改良、海外動向調査

• マルチコア設計に関する仮想プロジェクト

61

Page 62: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

メンバーシップ• 会員(2018年11⽉現在15団体)

– アイシン精機、dSPACE、ルネサス エレクトロニクス、NSITEXE、eSOL、ガイオテクノロジー、CATS、萩原エレクトロニクス、⼤阪⼤学、埼⽟⼤学、名古屋⼤学、早稲⽥⼤学アドバンスドマルチコアプロセッサ研究所、他

– 相互協⼒︓JASA、MCA(Multicore Association)• メンバーシップ構成

– 正会員(⼊会⾦なし、年会費20万)準会員、特別会員– 詳細は http://www.embeddedmulticore.org/

• (参考)SHIM WG Primary Contributing Members– Cavium Networks, CriticalBlue, eSOL, Freescale, Nagoya

University, PolyCore Software, Renesas, Texas Instruments, TOPS Systems, Vector Fabrics, and Wind River.

62

Page 63: モデルベース並列化 - s8764fb6234f9c41a.jimcontent.com · 化コード検証) 制御モデル設計 (数式・アルゴリ ズム設計) モデル (シミュレーショ

www.embeddedmulticore.org

www.embeddedmulticore.org