現在の位置
backup プラグインを使用中
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- 設定/マルチコア・マルチスレッド実行 へ行く。
- 1 (2009-08-24 (月) 23:01:01)
- 2 (2009-08-24 (月) 23:01:59)
- 3 (2009-08-25 (火) 22:18:51)
概要 †
- 鬼斬はマルチコアやSMTのシミュレーションをサポートしている
- 今のところ,完全に独立した複数のプロセスの実行のみをサポート
実装済みの要素 †
- マルチコア(非対称含む)
- SMT
- 共有キャッシュ
未実装の要素 †
- プロセスやスレッド間の通信,同期
- プロセスやスレッドの動的な作成
- メモリ・モデル
- キャッシュ・コヒーレンス
基本的な設定の方法 †
- ここでは,簡単な設定方法の例についてのみ述べる
- マルチスレッド実行のために設定を行う必要がある場所は主に以下の2カ所である
- リソース生成数と起動プロセスの設定
- ここでリソースとは,コアやスレッド,分岐予測器や実行ユニットなどの資源を表す
- リソース生成数と起動プロセスの設定
リソース生成数の指定 †
- リソースの生成は,Constant内で定義された定数(あるいは数字)を用いて,Structure/Copy以下で指定された方法により行われる
- 典型的には,Simulator/Configurations/DefaultConfiguration /Constant 以下の定数を書き換えるこにより設定
- ThreadCount やCoreCount はシステム全体のスレッド数やコア数を表す点に注意
- 正確には,システム全体ではなく,Structure/Copy 以下のツリー内での個数を表す
- 非対称マルチコアを考えない場合は,気にしないでよい
- 正確には,システム全体ではなく,Structure/Copy 以下のツリー内での個数を表す
- 詳細については,リソースの生成と接続の項を参照
- 以下はリソース数の設定例
1コア/2スレッドSMT †
2コア/シングルスレッド †
2コア/2スレッドSMT †
起動プロセスの指定 †
- 基本的には,以下のようにしてEmulator/Processes 以下で複数のプロセス情報を記述することにより設定
<Processes> <Processs Command='a.out' ... > <Processs Command='b.out' ... > </Processes>
- 詳細はEmulator の項を参照
- 実際には,以下のようにしてプロセス情報が記述されたXML を複数インポートすると良い
- この例は,gzipとvprを起動する場合の例
<Session> <Import> <File Path="benchmark/SPECCPU2000_INT/alpha64/cmd/164.gzip-train.0.xml" /> <File Path="benchmark/SPECCPU2000_INT/alpha64/cmd/175.vpr-train.0.xml" /> </Import> ...
- この例は,gzipとvprを起動する場合の例
その他の設定 †
非対称マルチコアの設定方法 †
- 複数のCopy ノードを作成することにより,それぞれのコアの構成が異なるマルチコアのシステムを作ることが出来る
- コア構成ごとにCopy ノードを作成し,Configuration ノード以下に配置する
- (そのように実装したので理論上できるはずですが,試していないので誰かテストしてみてくださいお願いby塩谷