toge's diary

コンピュータ関連の趣味をつらつらと。

SSE化続き

method単独でベンチマークすると2.7倍(sqrtだと2.9倍)までいきました。
しかしこれをシステムに組み込むとパフォーマンスが逆転します。

SSEを利用しない方が1割ぐらい速い。何故?

失意に沈んでいるとTakahashiさんのページに辿りつきました。
そういえば昔読ましてもらったな、この記事。
Using SSE in GCC (1)

私の比較対象は"-ffast-math -mfpmath=sse"なバイナリなのでこの結果は当然と言えば当然なんだけど。

じゃあどうして関数単位では手で書いたコードが圧勝するのだろうか?

結局謎だ。

インラインアセンブルが最適化を妨げている可能性が考えられますな。

確かにasm文の後のコードの内容によっては計算が端折られたりする現象にでくわしている。

とりあえずblackswordさんのコードを参考にxmmintrin.hを使ったコードに書き直してみようかしら。

http://homepage3.nifty.com/blacksword/