スライド 1

Computer
Computer
Aided
Aided
Design
Design
線形計画法に基づく逐次化を利用した
システムレベル設計での動作並列化
前後での等価性検証手法
松本 剛史(1), Thanyapat Sakunkonchak(1),
齋藤 寛(2), 小松 聡(1), 藤田 昌宏(1)
(1) 東京大学, (2) 会津大学
Fujita Lab, University of Tokyo
発表内容
Computer
Computer
Aided
Aided
Design
Design
研究の背景と目的
 既存検証技術の紹介
 線形計画法ソルバーを利用した逐次化
 実験結果
 まとめと今後の課題

2
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
発表内容
Computer
Computer
Aided
Aided
Design
Design
研究の背景と目的
 既存検証技術の紹介
 線形計画法ソルバーを利用した逐次化
 実験結果
 まとめと今後の課題

3
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
システムレベル設計における等価性検証

Computer
Computer
Aided
Aided
Design
Design
システムレベル設計
仕様からアーキテクチャ決定までの設計を行う
 利点

 柔軟なHW/SW分割
 高速なシミュレーション
 少ない記述量
Cベース設計言語が使われることが多い
 動作の並列化やスケジューリング変更を伴う

 アーキテクチャ変更などの際に

システムレベル設計における等価性検証

動作の等価性を保ったまま変更する場合が多い
 並列化・スケジューリング変更が典型的な例
4
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
本研究の目的

並列化・スケジューリング前後での等価性検証
手法の提案・評価


Computer
Computer
Aided
Aided
Design
Design
記述言語はSpecCを対象とする
研究の特徴

既存のプロパティ検証フレームワークを応用して、並
列動作を逐次化
 依存関係に基づくプロパティ検証により、逐次化可能である
ことを保証する
 検証エンジンとしてILPソルバーを用いる

逐次化された設計間で形式的等価性検証を行う
 記号シミュレーションによる
5
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
SpecC言語における並列・同期
Computer
Computer
Aided
Aided
Design
Design
並列: par 構文で表現
 同期: notify/wait 構文で表現

main() {
x = 0; //st0
par { A.main(); B.main(); }
}
behavior A {
main() {
wait(e);
a = x + 10; //st1 }
}
behavior B {
main() {
x = 20; //st2
notify(e); }
}
6
A.main
st1
st0
B.main
st2
Time
st2 is always executed followed by st1
Tstart_A = Tstart_B, Tend_A = Tend_B (parより)
Tstart_A <= Twait <= Tstart_st1 < Tend_st1 <= Tend_A
Tstart_B <= Tstart_st2 < Tend_st2 <= Tnotify <= Tend_B
Tnotify < Twait
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
関連研究

Computer
Computer
Aided
Aided
Design
Design
FSMDモデル上での検証 [3,4,5]

FSMD中のパスごとに検証  パス数が増加するため、規模が
大きい設計は検証できない
高位合成ツールの情報によって対応付け [5]
 変数名によって対応付け [3]



本研究では、大規模設計における並列化・スケジューリングの
検証を目指す
規則に基づく検証 [2]


事前に定義して等価な変換モデルに該当するかどうかを調べ
る
関数単位での並列化・スケジューリングが対象


7
関数内部の変更は対象としない
本研究では、並列化・スケジューリングに伴う関数内部の変更
も検証できる
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
発表内容
Computer
Computer
Aided
Aided
Design
Design
研究の背景と目的
 既存検証技術の紹介
 線形計画法ソルバーを利用した逐次化
 実験結果
 まとめと今後の課題

8
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
ILPソルバーを利用した同期検証 [6]

対象


Computer
Computer
Aided
Aided
Design
Design
並列・同期を含むシステムレベル設計
手法 (概要)
1. 各 statement が実行される時刻が満たす条件式
を設計記述から作成
 2. 検証するプロパティを実行時刻の等式・不等式で
表現

 デッドロックの場合、Twait
< Tnotify
3. プロパティを満たす代入値があるかをILPソルバー
によって求める
 CEGAR (Counter-Example Guided Abstraction
Refinement) を採用しており、1-3 を繰り返す

9
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
同期検証の流れ
behavior A (…) {
void main() {
y = x – 1;
notify e;
if(x==10) z=1;
}
}
Original SpecC
Abstraction
Refinement of
abstraction
Computer
Computer
Aided
Aided
Design
Design
behavior A (…) {
void main() {
…
notify e;
if(c0) …
}
}
Boolean SpecC
(Abstracted)
No
Is the trace feasible?
Yes
Synch.
property
Fail with a trace
Pass
Synch. error is found
10
Extract equalities/inequalities
and solve them by ILP solver
No synch. error
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
記号シミュレーションによる等価性検証 [7]

逐次動作記述に対する等価性検証手法


Computer
Computer
Aided
Aided
Design
Design
本研究では、逐次化された設計記述間での等価性検証に利用
手法 (概要)
設計記述を記号的に実行する
 代入文などから得られる等価関係をEquivalence Class
としてまとめていく
 入力を等価と仮定して記号シミュレーションを行い、出力
が等価であるかどうかを調べる

11
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
発表内容
Computer
Computer
Aided
Aided
Design
Design
研究の背景と目的
 既存検証技術の紹介
 線形計画法ソルバーを利用した逐次化
 実験結果
 まとめと今後の課題

12
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
全体の流れ
System-level
Design 1
Computer
Computer
Aided
Aided
Design
Design
System-level
Design 2
Fail
Synchronization check
Pass
Sequentialization
Sync. Error (i.e. deadlock)
Fail
Error
Pass
Sequential
Design 1
Sequential
Design 2
Equivalence checking
13
Result: Eqv. or Ineqv.
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
逐次化可能な場合

逐次化可能な並列動作の条件

条件1: デッドロックがない


既存手法で検証可能
条件2: 任意の実行順序に対して、等価な実行結果が得られる


Computer
Computer
Aided
Aided
Design
Design
SpecC言語では、ある時点で、1つの statement だけが評価・実
行されることになっている
条件2を調べる手法

依存関係のある statement 間で実行順序が常に同じであるか、
を調べる
実行順序が異なっても結果が等価になる場合は、本研究では対
象としない
 依存関係がなければ、並列動作間の実行順序に制約はない

14
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
プロパティの導出 (1)
Computer
Computer
Aided
Aided
Design
Design

依存関係のある statement 間で実行順序が常
に同じであるか?

依存関係のある2つの statement st1, st2 が
P1: T(st1) > T(st2)
⇒「st1 は必ず st2 の後に実行される」
 P2: T(st1) < T(st2)
⇒「st2 は必ず st1 の後に実行される」

15
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
プロパティの導出 (2)

Computer
Computer
Aided
Aided
Design
Design
検証結果による場合分け
P1: T(st1) > T(st2)
 P2: T(st1) < T(st2)

(P1, P2) = (pass, pass)
(P1, P2) = (fail, pass)
(P1, P2) = (pass, fail)
(P1, P2) = (fail, fail)

逐次化
可能
実際の検証はベーシックブロックを単位として
行う

16
起こりえない
必ず st1st2 の順に実行
必ず st2st1 の順に実行
実行順序は一意ではない
ここでは、par/wait/notify/条件分岐 を含まない一連
の statement をベーシックブロックとする
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
逐次化の例

Computer
Computer
Aided
Aided
Design
Design
依存関係があり、並列動作するBB
BB1, BB3 … 検証結果: BB1  BB3
 BB2, BB3 … 検証結果: BB3  BB2

BB1
c1 = a1 + b1;
c2 = a2 + b2;
notify e1;
wait e2;
d2 = (c2-c1)/d1;
BB2
17
wait e1; BB3
d1 = c1 * c2;
if(d1 != 0)
notify e2;
else
ERROR();
BB4
逐次化
c1 = a1 + b1;
c2 = a2 + b2;
d1 = c1 * c2;
if(d1 != 0)
d2 = (c2-c1)/d1;
else
ERROR();
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
発表内容
Computer
Computer
Aided
Aided
Design
Design
研究の背景と目的
 既存検証技術の紹介
 線形計画法ソルバーを利用した逐次化
 実験結果
 まとめと今後の課題

18
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
例題

IDCT







VocSpec: 仕様。全動作を1つのHWで実現することを想定
VocArch: 動作の一部をDSPに割り当てたもの
VocSched: 各PEでスケジューリングを決定したもの
MP3 Decoder


19
IDCT1: 逐次実行
IDCT2: 行計算・列計算を2並列で実行
IDCT3: 行計算・列計算を8並列で実行
IDCT4: 行計算・列計算内での並列実行を導入
Vocoder


Computer
Computer
Aided
Aided
Design
Design
MP3DEC1: SWと1つの追加HW
MP3DEC2: 負荷の大きいDCT計算に2つの追加モジュールを
割り当てたもの
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
例題規模と実験環境

例題規模

例題は全てSpecC言語で記述
例題
行数
IDCT1
300
0
IDCT2
314
IDCT3
IDCT4

par
同期数
構文数
例題
行数
par
構文数
同期
数
0
VocSpec
9165
10
4
8
0
VocArch
10178
15
14
256
2
0
VocSched
10139
2
14
390
4
10
MP3DEC1
8580
4
6
MP3DEC2
8560
5
10
実験環境



20
Computer
Computer
Aided
Aided
Design
Design
CPU 3.2GHz、メモリ 4GB のPCで実行
依存関係の解析: GrammaTech 社の CodeSurfer を利用
ILPソルバー: ILOG 社の CPLEX を使用
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
実験結果 (逐次化)

Computer
Computer
Aided
Aided
Design
Design
ILPソルバーを用いた逐次化

Vocoder, MP3 ではデッドロックを検出


バグ修正して、実験を続行
ILPベースの検証が不要な場合も多い
依存関係のない部分のみで並列化が行われた場合
 ただし、依存関係がないことは依存グラフ上で調べている


例題
ILP実行時間は非常に短時間
行数 行数 ILP 時間
(前) (後) (回数) (sec)
例題
行数
(前)
行数
(後)
ILP 時間
(回数) (sec)
IDCT1 300
300
0
0.7
VocSpec
9165
9165
0
39.0
IDCT2 314
298
0
0.8
VocArch
10178 10164
0
48.5
IDCT3 256
251
0
0.7
VocSched
10139 10132
0
42.0
IDCT4 390
360
48
1.0
MP3DEC1
8580
8580
0
160
MP3DEC2
8560
8560
18
162
21
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
実験結果 (等価性検証)

Computer
Computer
Aided
Aided
Design
Design
記号シミュレーションによる等価性検証
逐次化後に差異のあるビヘイビア(関数)に対してのみ実
行
 いずれも0.1秒以内で等価性を検証できた
 全体を記号シミュレーションにより検証することは現実的
に不可能

逐次化された
変更前設計
逐次化された
変更後設計
差異 (行)
検証時間 (sec)
seq_IDCT1
seq_IDCT2
156
< 0.1
seq_IDCT1
seq_IDCT3
148
< 0.1
seq_IDCT3
seq_IDCT4
224
< 0.1
seq_VocSpec
seq_VocArch
25
< 0.1
seq_VocArch
seq_VocSched
0
-
478
< 0.1
seq_MP3DEC1 seq_MP3DEC2
22
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
発表内容
Computer
Computer
Aided
Aided
Design
Design
研究の背景と目的
 既存検証技術の紹介
 線形計画法ソルバーを利用した逐次化
 実験結果
 まとめと今後の課題

23
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo
まとめと今後の課題

Computer
Computer
Aided
Aided
Design
Design
まとめ
並列化・スケジューリング前後での等価性検証手法
を提案
 ILPベースのプロパティ検証を利用して、逐次化を行
う
 実例題を用いた実験で検証ができることを確認


今後の課題

一意に逐次化できない場合の検証手法
 並列化・スケジューリングの間違いである場合が多いが

高位合成前後における等価性検証への応用
 スケジューリング以外の変更・詳細化に対応する必要
24
Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo