1

powfからに変換する__powfと、パフォーマンスが向上します。sqrtfしかし、そのうちの1つに変換すると__fsqrt_[rn,rz,ru,rd]、速度が低下します。少なくとも sqrtf と同じくらい速く実行する必要があると思います。何が問題になる可能性がありますか?

よろしく

4

1 に答える 1

2

整数を 2 乗する必要がある場合 (または浮動小数点数を使用する場合)、値をそれ自体で乗算するだけです。つまり、; の代わりに;

y = powf(x, 2);

使用する:

y = x * x;

これにより、コストのかかる超越関数 (関連する関数呼び出しのオーバーヘッドを伴う) の使用が回避され、ほとんどの場合、1 つの乗算命令のみが生成されます。

平方根はおそらく避けられませんが、単精度のみが必要な場合fsqrtfは代わりに使用できます。これは通常、はるかに高速です。sqrtf

于 2013-04-15T15:11:17.183 に答える