【问题标题】:Detecting CPU capability without assembly无需组装即可检测 CPU 功能
【发布时间】:2010-12-26 04:36:30
【问题描述】:

我一直在寻找确定 CPU 及其功能(例如 SEE、SSE2 等)的方法。

但是,我发现的所有方法都涉及使用 cpuid 指令的汇编代码。鉴于编译器甚至目标之间在 c/c++ 中进行汇编的不同方式(在 VC 下没有针对 64 位目标的内联汇编),我宁愿避免这种情况。

是否有一些简单的库或操作系统函数(适用于 windows 和 linux)来获取这些信息?

目前我只对使用 x86 和 x86-64 CPU 的平台感兴趣,而且我绝对需要至少支持 AMD 和 Intel。

【问题讨论】:

    标签: c cross-platform cpuid


    【解决方案1】:

    这非常依赖于硬件 --- 这是操作系统通常会屏蔽你的一个方面 --- 要求它是跨平台的有点困难。

    拥有它会很有用,但我担心你可能只需要列举你想要支持的 CPU 和功能的交叉产品,乘以操作系统的数量(这里是两个)并为所有人编写测试。我不认为它已经完成了——如果我忽略了什么,肯定有人会纠正我。

    这将是一个有用的库,祝你好运!

    【讨论】:

      【解决方案2】:

      编辑:起初,我在谷歌上搜索“libcpuid”以记住与同行程序员的对话,谷歌搜索将我指向这个看起来相当过时的sourceforge page。然后我注意到这是“libcpu”的项目页面。

      实际上,确实有一个libcpuid 可能适合您的需求。


      上次找这样的库时,我找到了crisscross。不过它是 C++。

      还有geekinfo

      但我不知道一个只做 cpuid 的跨平台库。

      【讨论】:

        【解决方案3】:

        linux下查看/proc/cpuinfo

        【讨论】:

          猜你喜欢
          • 2023-01-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-28
          相关资源
          最近更新 更多