我有为 Intel i7 编译的代码:我如何知道它可以在哪些 Xeon 处理器上运行?

我有为 Intel i7 编译的代码:我如何知道它可以在哪些 Xeon 处理器上运行?

我有为 Intel i7 编译的代码:我如何知道它可以在哪些 Xeon 处理器上运行?

似乎没有明确的方法可以知道。

我制定了这些经验法则,但不确定它们是否足够。可以运行 i7 代码的 Xeon 处理器应该是:

  • 或之后Nehalem_(微架构)系列处理器。
  • 支持DDR-4内存。
  • 45nm或更小的光刻工艺。
  • 从 2008 年开始。

网络上是否有一个表格可以对 Core 和 Xeon 处理器在运行哪些代码方面进行比较?



编辑1 :编译器开关gcc --march=corei7

答案1

要了解二进制文件可以运行哪些进程,查找 CPU 标志很重要。在本例中:

https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html

nehalem

Intel Nehalem CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and POPCNT instruction set support.

这些确实与 CPU 硬件功能有关,可以在/proc/cpuinfo基于 Linux 的系统中找到。如果列出了上述所有(以及更多)功能,那么应该可以运行二进制文件。--march选择器只是将几个 CPU 标志汇总为一个参数。

如果需要有关该主题的更多详细信息,我推荐 Gentoo C(XX)FLAGS 文档。

https://wiki.gentoo.org/wiki/GCC_optimization#-march

如果无法访问/proc/cpuinfo,也可以在处理器的硬件规格(数据表)中找到这些信息。规格中的功能名称通常与 gcc cpu 标志相对应。

相关内容