2009年10月9日金曜日

Next Step for StreamGPU

森田君のStreamGPU プロジェクトに関して、そろそろ CULA 版が動き出しそうな感じなので次のステップを書こう。

(1) CULA SST (CULAの SVD 関数を使うバージョン) を完成させる(あともうすぐ)

(2) SST (高橋さんのオリジナルバージョン) と (1) の CULA SST の性能比較を行う。このとき、ウィンドウサイズをいろいろ変更していって、どのような性能差が得られるかをグラフ化する。 このとき、SST 版は1ノードだけでなく、多ノードを用いてスケールアウトのデータを出す。
- データに関しては、スループットだけでなく、1データあたりのレイテンシを求められるようにする
- また、newmat の Matrix 型から 1次元配列、そしてその反対のコストがパフォーマンスのボトルネックになることを確かめるため、スタンドアローンバージョン (-T でコンパイル)で実行し、oprofile でプロファイルを取る。translate/detranslate の関数が CPU をあまり使用していないことを確認する


(3) SST は特異値分解が重いため、高橋&井手バージョンでは、 Matrix Compression をして、与える行列サイズを小さくしている。GPU を用いることにより、そのような Compression をしなくても、それなりの性能が得られる可能性が得られるため, そのバージョン(これは高橋さんから既に頂いている)を 再び CULA の SVD 関数を使うように移植し、(2) との比較を行う。結果として、Matrix Compression などの工夫を行わなくても、GPU を用いれば十分に高速化できることを示す

(4) 以下の状況下において最適な条件を数理的なモデルを用いて自動的に決定できるようにする。
- 1ノードのみ (CPU と GPU)
- 複数ノード と 1GPU
- 複数ノードと マルチ GPU (マルチGPU は松岡研究室の GPU クラスタを使用させてもらう)
また、モデルを用いて、どのような条件下では GPU を使うか、

(5) System S / SPADE において、GPU のようなアクセラレータを使用する汎用的な オペレータ はどのような形で提供すべきかを考察する

0 件のコメント:

コメントを投稿