在另一个架构上运行 -march 优化的软件?

在另一个架构上运行 -march 优化的软件?

我正在运行带有 LFS 的 Athlon64 服务器,并且希望在虚拟机中拥有该服务器的本地副本,以用于测试目的和构建软件。

我的电脑使用 i7,现有的服务器软件是使用 -march=athlon64 构建的。尽管进行了优化,我可以在我的硬件上运行它吗?

答案1

-行进标志允许编译器使用其他 CPU 不支持的指令。有一些可以合法使用但-march=athlon64您的 i7 不支持的指令。这些是 3DNow!和增强型 3DNow! MMX 或整数 SSE 中未包含的指令。如果代码使用类似指令PFPNACC它会在你的 i7 上出现故障。

也就是说,它实际上不太可能使用任何此类指令,因为这些指令通常被发现没什么用处 - 有用的 3DNow!指令已合并到 MMX 或 iSSE 中,您的 CPU 确实支持这些指令。

所以它不能保证有效,但可能会有效。

-march=cpu 类型:生成机器类型的指令cpu-type。 ...-march=cpu-type允许 GCC 生成以下代码可能根本无法在指定处理器以外的处理器上运行

答案2

您将能够运行它,尽管性能会受到一点影响。

相关内容