我们一直是一家英特尔商店。所有开发人员都使用 Intel 机器,最终用户推荐的平台是 Intel,如果最终用户想在 AMD 上运行,那是他们的了望。也许测试部门在某处有一台 AMD 机器来检查我们没有运送任何完全损坏的东西,但仅此而已。
直到几年前,我们还只使用了 MSVC 编译器,因为它并没有真正提供很多超出 SSE 级别的处理器调整选项,所以没有人担心代码是否会偏向一个 x86 供应商而不是另一个供应商。然而,最近我们一直在使用英特尔编译器。我们的东西肯定会从中获得一些显着的性能优势(在我们的英特尔硬件上),它的矢量化能力意味着更少需要去 asm/intrinsics。然而,人们开始对英特尔编译器是否实际上可能没有为 AMD 硬件做得这么好感到有点紧张。当然,如果您进入英特尔 CRT 或 IPP 库,您会看到很多 cpuid 查询显然设置跳转表以优化功能。不过,英特尔似乎不太可能为 AMD 芯片做任何好事。
在这方面有任何经验的人可以评论这在实践中是否重要吗?(我们自己实际上还没有对 AMD 进行任何性能测试)。
2010-01-04 更新:嗯,支持 AMD 的需求从未变得足够具体,以至于我自己无法进行任何测试。这里有一些关于这个问题的有趣读物,这里和这里。
2010-08-09 更新:似乎 Intel-FTC 的解决方案对这个问题有话要说 - 请参阅本文的“编译器和肮脏技巧”部分。