とある研究用のプログラムを動かしていて,Macでやる場合とLinuxでやる場合で
計算時間がわずかに違うことがあって何が原因なのか調べていた.
アセンブラのリストをだしてみると,Macはsqrtss(SSEの平方根)を使っていて,
Linuxはfsqrt(FPUの平方根)を使っていた.
Mac用のgccは,算術演算の場合,積極的にSSEを使うようにでもなっているのだろうか.
ここら辺,ちょっとどうなっているのか,興味深いところ...時間があるときに調べてみよう.
ぜひ検証していただきたい!Xcodeでの開発に着手するので・・・
(gcc4.2だとエラー吐いてgcc4.0だと吐かないことがあるので不思議がってます。
じゃ - 2011-05-16 04:33:02
apple-gcc 4.2の出力がそんな感じなのかな。gccのバージョン・最適化オプション同じでもそうなのかとか気になる。gcc4は最適化ONにしたら、SSE・ベクトル化云々は割と入る物だという印象を持ってる。
suma - 2011-05-21 05:31:46
> じゃさん
おぉ,Xcode使って開発してるんだね.4.2だと仕様が微妙に違うとか...?
yasuharu - 2011-05-24 14:05:43
> sumaさん
最適化オプションはなしでやったんだけど,SSE有効になってたかな.
挙動を見てると,gcc4系列だとSSEを積極的に使うようになってるのかも.
yasuharu - 2011-05-24 14:06:49