09/03/11 10:01:18
>>803
GotoBlasを入れて15GFlopsにしても、一部のプログラムでGotoBlas+Cygwin版が
2GFlopsのMSVC版よりも極端に遅い事があったのです。それで調べてみました
行列のベクトル積
MSVC
octave:1> A=randn(100);tic;for jj=0:1000;C=A*A;end;toc
Elapsed time is 0.938295 seconds.
Cygwin
octave:1> A=randn(100);tic;for jj=0:1000;C=A*A;end;toc
Elapsed time is 0.25 seconds.
Cygwinの方が4倍ぐらい速いしループのオーバーヘッドはほとんど無い
比較処理
MSVC
octave:2> A=randn(100);tic;for jj=0:10000;B=(A>0)*1;end;toc
Elapsed time is 1.797 seconds.
Cygwin
octave:2> A=randn(100);tic;for jj=0:10000;B=(A>0)*1;end;toc
Elapsed time is 40.28 seconds.
Cygwin版は比較処理が致命的に遅い!
一部の関数計算に比較処理を使うのですが、これが遅いと非常に困るんですよね
そういう意味でMSVC版のリリースは続けて欲しいのでう感じなのです。
それと自前でBuildしたlibgoto.dllを使えるようにして欲しいですね。
ちなみにMatlabだと1.68秒なのでMSVCとほぼ同じなんですが。