【问题标题】:Faster math library than glibc on x86_64/linux?比 x86_64/linux 上的 glibc 更快的数学库?
【发布时间】: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 优化的。

标签: c linux x86-64 libc


【解决方案1】:

与 ICC 一起分发的数学库对于许多 libm 函数来说要快得多,但确实需要购买 ICC。如果您对此感到好奇,我相信您可以下载免费试用版。我知道他们支持 Linux,并相信他们试图与 GCC 库兼容。 ICC 还包括数学内核库中许多 libm 函数的矢量化实现,这可能对您有用。

【讨论】:

    【解决方案2】:

    AMD 和 Intel 都为他们的 CPU 提供了大量优化的数学库。它们不是免费的。

    他们不实现简单的东西。这些库适用于快速傅立叶变换、大型矩阵问题和其他问题。

    快速数学编译器选项将大大加快浮点数学运算速度。但是,您将负责自己的错误检查。

    【讨论】:

    • 不知道是不是改了,不过AMD至少以前是免费提供数学库的。
    • 是吗?我最近没有检查,但我似乎记得需要支付英特尔的费用。
    【解决方案3】:

    根据您要运行的确切数学函数以及要在多大的数据集上运行它们,您可能需要查看CUDA 之类的内容,它可以让您使用快速的数学功能你的图形芯片来做你的处理。

    【讨论】:

      猜你喜欢
      • 2021-09-18
      • 2020-03-16
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 2014-08-17
      • 2014-07-18
      • 2011-12-25
      相关资源
      最近更新 更多