Mercurial > hg > Papers > 2008 > kono-ieice-vld
comparison 7.tex @ 0:685b35adf419
Initial revision
author | kono |
---|---|
date | Thu, 06 Mar 2008 19:49:25 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:685b35adf419 |
---|---|
1 \section{ 本手法の利点と欠点} | |
2 | |
3 CbCという特殊な処理系を使うことになるので、ソースの変更が | |
4 必要となる。現状では、C++には対応していない。 | |
5 | |
6 コードセグメントのテストをSingle core上とMulti core 上の | |
7 両方でテスト出来るので、Multi coreになれていなくても、 | |
8 動作のテストが容易である。また、Multi core になれるための | |
9 準備、教育的ツールとして使うことも出来る。アルゴリズム | |
10 の正しさを並列実行とは別にテスト出来るのが利点である。 | |
11 | |
12 CellはヘテロなMulti Coreであり、 | |
13 SPU では、その性能を活かすためには、特殊なアセンブラ命令、 | |
14 例えば4つの浮動小数点の値の同時演算などを使用する必要がある。 | |
15 これらは、gcc の拡張あるいはasmステートメントなどで使用する | |
16 ことができるが、他のアーキテクチャ上では動作しない。 | |
17 従って、同じ機能を持つコードセグメントで代用してテスト | |
18 することになる。異なるアーキテクチャでの異なるコードセグメント | |
19 の同等性を直接テストすることは出来ない。 | |
20 | |
21 Many Core 向けのデータ分割、コード分割は自動ではないので、 | |
22 試行錯誤することになる。必要な性能が出るかどうかは、 | |
23 分割のために生じるコピーのコストなどの要素が関係し、 | |
24 アーキテクチャに依存するのでSingle Core上のテストで | |
25 見積もることは難しい。 | |
26 | |
27 データ分割、コード分割が手動なので間違いが入りやすい。 | |
28 FIFOスケジューラレベルで、Single Coreと同等な動作を | |
29 する場合は、このようなエラーを見つけるのは容易である。 | |
30 | |
31 しかし、非決定的な動作をする場合は、自明な動作比較をする | |
32 ことは出来ず、モデル検査などのコストの高い方法を使う | |
33 必要が出て来る。コードセグメントレベルのモデル検査は | |
34 実機上の同期動作との差があるので、正確ではない。 | |
35 | |
36 モデル検査のコストが重い場合は、スケジューラを挟む | |
37 部分を大まかにして状態数を減らす手法が使える。正確さは | |
38 落ちるが、高速に検査することが出来る。 | |
39 | |
40 スケジューラを挟む部分の変更は手動であり、マクロあるいは | |
41 スクリプトで生成する必要がある。 | |
42 |