【发布时间】:2010-03-08 17:31:25
【问题描述】:
对于 x86_64-linux,glibc 的 libm(和头文件?)是否有更快的替代品?
【问题讨论】:
-
你愿意在多大程度上牺牲准确性来换取速度?
-
我不知道您的要求,但您检查过 TNT、Blitz++、Boost 等吗?
-
我已经有了一些优化(和内联!)版本的 erf()、exp() 和 sincos()。但我们的目标是让所有(或大部分)都直接替换,而不用担心......尤其是一些使用漂亮的 SSE2 指令的人,这可能会方式更快。 ..
-
我可能弄错了,但是 afaik,gcc 在 x86-64 上默认使用 SSE2;也许您所缺少的只是正确的优化标志 - 尝试
-ffast-math或在手册中查找细节,尤其是 gcc.gnu.org/onlinedocs/gcc-4.4.3/gcc/… 和 gcc.gnu.org/onlinedocs/gcc-4.4.3/gcc/… -
即使 GCC 生成 SSE2 代码,它仍然会调用 libm 的函数,这些函数不是 SSE2 优化的。