もきもき3D

アクセスカウンタ

zoom RSS floatとdoubleと最適化

<<   作成日時 : 2007/11/23 21:48   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

始まりはここ。
http://homepage1.nifty.com/herumi/prog/prog90.html
floatとdouble関係から。
この点においてmingw(3.4.5)でVC2005と同じ計算結果になった(;・з・)
(-mtune=athlon64 -mfpmath=sse -mmmx -msse -msse2 -msse3。3dNowの有無は影響なし)
mtune類無しだとdoubleはまた違う数値になった。
_controlfpも効かないみたい。 実質53bit固定って感じ?
かかる時間もfloatの方がdoubleより速い(0.025〜0.05)。
-ffast-mathつけても変わらず。

-mtune=pentium3 -mfpmath=sse -mmmx -msse -mno-sse2 -mno-sse3としたらdoubleの結果はgccの例と合致するようになった(値末尾〜908。64bit相当?)
でもfloatとdoubleは不一致のまま。
-ffast-mathつけても変わらず。

-mtune=pentium4 -mfpmath=sse -mmmx -msse -msse2 -msse3 -mno-3dnowとしたら
athlon64と同じ結果に。
但し、athlon64と比べfloatは0.07程速く、doubleは0.05程遅くなった。
no-sse2/3によりdoubleは64bitの値になった。
但し、doubleの時間が更に0.15程(累計0.2)遅くなった。

-mtune=athlon64 -mfpmath=sse -mmmx -msse -mno-sse2 -mno-sse3 -m3dnowとしたら
doubleは64bitの値になった。
但し、当初のath64設定と比べdoubleが0.16程遅くなった。

精度に関する部分はSSEだと64bit、SSE2だと53bitって感じ??(mingw 3.4.5の場合。)

P4&SSE2/3 OFFだと、double精度を高く出来るが遅くなる&floatが速くなる。
P4&SSE全部ONだとVC/windows標準のdouble精度で、速度はfloatとdoubleで等価交換って感じか。
Ath64&SSE2/3 OFFだと、double精度を高く出来るが遅くなる。
Ath64&SSE全部ONだとVC/windows標準のdouble精度だけど速い&floatはP4より遅い、と。
むぅ(・з・)

んで、別件、mtune類を当初のath64系で-Oだけ変えたら、 f&d処理時間合算が
-O3で1.89秒、-Osで1.79秒、-O2で1.75秒、-O1で1.82秒、-O0で1.82秒、無しで1.82秒、になった。
-O3が一番おせぇ( ゚д゚ )
まぁ、100000000回ループで0.14秒差だから実用上は体感出来ないだろうけど(;・з・)

取りあえず、floatの結果をdoubleと一致させるには何すりゃいいんだ。
それが気になる。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
floatとdoubleと最適化 もきもき3D/BIGLOBEウェブリブログ
文字サイズ:       閉じる