2009年11月18日水曜日

SVD の C実装と実行時間の内訳

StreamGPU の SVD (特異値分解)に関して。

とりあえず、森田君の SVD の CUDA 版移植に向けて、newmat (C++ベース) ではなく、C ベースの SVD を Numerical Recipes を参考に書いて実行してみました。上のグラフは、正方行列の 128 から 1024 までの実行時間の遷移です(newmat と比べてみたいですね)

また、実行時間の内訳を知るべく、1024 x 1024 の行列サイズの時の各ステージにおける割合を円グラフにしてみました。単位は秒で、Tesla で測定した結果です。思った以上に、各ステージがそれなりにかかっているので、一部分を CUDA に移植するだけではなかなか高速化できなさそうですね。


0 件のコメント:

コメントを投稿