我有为 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 标志相对应。