- GPU 関係: OpenMP のランタイム (libgomp.so) が37%。libcuda.so, libcula.so を合わせて15%。トータルで52%以上
- CPU 関係: System S の PE RectMatrixRowCol::AddScaledRectMatrixRowCol::operator という関数が両方合わせて38%. これらは newmat の行列演算関数
異常検知許容時間を L、測定する次元数を D として, まずこれらのパラメータを固定化する。L を60秒. GPU 版だと、前の森田君の実験によると、ウィンドウサイズ1024で5秒ぐらいであったので、D を12次元に固定する。
この条件において、まず最初は、CPU 版を走らせず、GPU 版のみでD次元を終了するのにかかる時間を測定する。次に、CPU 版を追加し、小さいウィンドウサイズまでを試し、GPU 版の実行時間に対してどのくらいの影響を与えるかを観測する。まずは、49などの小さいウィンドウサイズで、GPU 版がどのくらい遅くなっているかを見てみましょう。
仮に、GPU 版の空きが全くない状況においては、CPU 版を実行する隙間がないので、遅くなるでしょうが、それを確認しましょう。
もし CULA の SVD が CPU もフルに使い切ってしまう場合には以下の方向性での本研究の有効性を示せばよいのではないでしょうか?
- Tesla は2コアだが4コアにして、CULA が使用する CPU のスレッド数を限定する (ただし、卒論までに CPU を換装するのは困難なので、これはまずやらない)
- 他のクラスタ上のノードでスケールアウト処理。streams01-08 や sa のマシンを用いて、各ノード上で CPU を計算
0 件のコメント:
コメントを投稿