我应该多少担心英特尔C ++编译器发布AMD的次最佳代码? [英] How much should I worry about the Intel C++ compiler emitting suboptimal code for AMD?

查看:276
本文介绍了我应该多少担心英特尔C ++编译器发布AMD的次最佳代码?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们一直是英特尔的店铺。所有开发人员使用英特尔机器,为终端用户推荐的平台是英特尔,如果终端用户想要在AMD上运行,那就是他们的目光。也许测试部门有一台AMD机器在某个地方检查我们没有运送任何完全破碎,但这是关于它。

We've always been an Intel shop. All the developers use Intel machines, recommended platform for end users is Intel, and if end users want to run on AMD it's their lookout. Maybe the test department had an AMD machine somewhere to check we didn't ship anything completely broken, but that was about it.

直到几年前,我们只是使用MSVC编译器,并且由于它不提供超过SSE级别的许多处理器调优选项,没有人担心代码是否可能偏爱一个x86供应商。但是,最近我们一直使用英特尔编译器。我们的东西肯定会从它(在我们的英特尔硬件上)获得一些显着的性能优势,其向量化功能意味着更少需要去asm /内在。然而,人们开始对英特尔编译器是否对AMD硬件没有那么好。当然,如果你进入英特尔CRT或IPP库,你会看到很多cpuid查询显然设置跳转表到优化的功能。似乎不太可能英特尔做很多麻烦,做任何好的AMD芯片虽然。

Up until a few of years ago we just used the MSVC compiler and since it doesn't really offer a lot of processor tuning options beyond SSE level, noone worried too much about whether the code might favour one x86 vendor over another. However, more recently we've been using the Intel compiler a lot. Our stuff definitely gets some significant performance benefits from it (on our Intel hardware), and its vectorization capabilities mean less need to go to asm/intrinsics. However people are starting to get a bit nervous about whether the Intel compiler may actually not be doing such a good job for AMD hardware. Certainly if you step into the Intel CRT or IPP libraries you see a lot of cpuid queries to apparently set up jump tables to optimised functions. It seems unlikely Intel go to much trouble to do anything good for AMDs chips though.

任何人在这方面有任何经验的评论,是否是一个大交易实践 ? (我们还没有真正对AMD自己进行任何性能测试。)

Can anyone with any experience in this area comment on whether it's a big deal or not in practice ? (We've yet to actually do any performance testing on AMD ourselves).

更新2010-01-04 :需要支持AMD从来没有变得足够具体,我自己做任何测试。有一些有关问题的有趣读物这里这里然后这里

Update 2010-01-04: Well the need to support AMD never became concrete enough for me to do any testing myself. There are some interesting reads on the issue here, here and here though.

更新2010-08-09 :似乎Intel-FTC解决方案有关于此问题的问题 - 请参阅编译器和肮脏的技巧部分本文

Update 2010-08-09: It seems the Intel-FTC settlement has something to say about this issue - see "Compilers and Dirty Tricks" section of this article.

推荐答案

购买AMD盒并运行它。这似乎是唯一负责任的事情,而不是信任互联网上的陌生人)

Buy an AMD box and run it on that. That seems like the only responsible thing to do, rather than trusting strangers on the internet ;)

除此之外,我相信AMD对英特尔的诉讼是基于声称英特尔的编译器专门生产在AMD处理器上运行效率低下的代码。我不知道这是真的还是不,但AMD似乎相信这样。

Apart from that, I believe part of AMD's lawsuit against Intel is based on the claim that Intel's compiler specifically produces code that runs inefficiently on AMD processors. I don't know whether that's true or not, but AMD seems to believe so.

但即使他们不愿意这样做,毫无疑问,英特尔的编译器专门为英特尔处理器优化,没有别的。

But even if they don't willfully do that, there's no doubt that Intel's compiler optimizes specifically for Intel processors and nothing else.

当这样说时,我怀疑它会产生巨大的变化。 AMD CPU仍将受益于所有自动向量化和编译器的其他聪明功能。

When that is said, I doubt it'd make a huge difference. AMD CPU's would still benefit from all the auto-vectorization and other clever features of the compiler.

这篇关于我应该多少担心英特尔C ++编译器发布AMD的次最佳代码?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆