【问题标题】:glibc and SSE functionalityglibc 和 SSE 功能
【发布时间】:2009-05-06 22:34:06
【问题描述】:

我正在尝试查找有关 glibc 的信息以及它在多大程度上使用 SSE 功能。

如果经过优化,我可以直接使用它吗?

假设我使用的是较大的 Linux 发行版之一,我假设它的 glibc 被编译为尽可能通用并尽可能便携,因此没有优化?

我对 memcpy 和 memcmp 函数以及如何尽快获得这些函数特别感兴趣。

【问题讨论】:

    标签: c performance sse


    【解决方案1】:

    glibc 2.8 根本不将 SSE 用于 memcpy 或 memcmp(在 x86 或 x86_64 中) - 它使用一些手写程序集,避免了该系列的所有 CPU 不支持的任何内容。在 glibc 2.10 中,将支持一种新的重定位类型,STT_GNU_IFUNC,这将使基于 CPU 支持的更好的优化成为可能。

    【讨论】:

      【解决方案2】:

      如果您使用最高优化设置进行编译,则 memcpy 和 memcmp 可能会被编译器替换为内部函数,并且根本不会调用 glibc。然后 mcpumarch 编译器选项将选择最快的代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-08-17
        • 2017-08-30
        • 2017-10-28
        • 2013-06-25
        • 2019-04-22
        • 2013-07-22
        • 2016-10-29
        相关资源
        最近更新 更多