英特尔C ++编译器替代微软的? [英] Intel C++ compiler as an alternative to Microsoft's?

查看:242
本文介绍了英特尔C ++编译器替代微软的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人在这里使用Intel C ++编译器而不是Microsoft的Visual c ++编译器吗?

Is anyone here using the Intel C++ compiler instead of Microsoft's Visual c++ compiler?

我非常想听听您对集成,性能和构建时间的体验。

I would be very interested to hear your experience about integration, performance and build times.

推荐答案

Intel编译器是最先进的C ++编译器之一,它比Microsoft Visual C ++编译器具有许多优点,并且有一个主要缺点。其优点包括:

The Intel compiler is one of the most advanced C++ compiler available, it has a number of advantages over for instance the Microsoft Visual C++ compiler, and one major drawback. The advantages include:


  • 很好的SIMD支持,据我所知,

  • Very good SIMD support, as far as I've been able to find out, it is the compiler that has the best support for SIMD instructions.

支持自动并行化(多核优化)和手动(通过OpenMP),并且非常

Supports both automatic parallelization (multi core optimzations), as well as manual (through OpenMP), and does both very well.

支持CPU调度,这非常重要,因为它允许编译器在程序运行时将处理器指向优化的指令。只要我能告诉这是唯一的C ++编译器可以做到这一点,除非G ++已经介绍了在他们的。

Support CPU dispatching, this is really important, since it allows the compiler to target the processor for optimized instructions when the program runs. As far as I can tell this is the only C++ compiler available that does this, unless G++ has introduced this in their yet.

但是它有一个主要的缺点,就是上面提到的dispatcher,在Intel CPU上工作,这意味着高级优化将被淘汰在AMD CPU上。这里有一个解决方法,但它仍然是编译器的主要问题。

However it has one major drawback, the dispatcher as mentioned above, only works on Intel CPU's, this means that advanced optimizations will be left out on AMD cpu's. There is a workaround for this, but it is still a major problem with the compiler.

要解决调度器问题,可以替换生成的调度程序代码一个使用AMD处理器的版本,例如可以使用 Agner Fog's asmlib库,它替换了编译器生成的分派器功能。有关调度问题的更多信息,以及有关某些主题的更详细的技术说明,请参见在C ++中优化软件纸张 - 也是从Anger(这真的值得阅读)。

To work around the dispatcher problem, it is possible to replace the dispatcher code produced with a version working on AMD processors, one can for instance use Agner Fog's asmlib library which replaces the compiler generated dispatcher function. Much more information about the dispatching problem, and more detailed technical explanations of some of the topics can be found in the Optimizing software in C++ paper - also from Anger (which is really worth reading).

在个人笔记我已经使用英特尔c + +编译器与Visual Studio 2005在哪里工作完美,没有遇到微软特定语言扩展的任何问题,它似乎理解我使用的,但也许是由 John Knoeller 与我在项目中使用的不同。

On a personal note I have used the Intel c++ Compiler with Visual Studio 2005 where it worked flawlessly, I didn't experience any problems with microsoft specific language extensions, it seemed to understand those I used, but perhaps the ones mentioned by John Knoeller were different from the ones I had in my projects.

英特尔编译器,我目前正在使用微软的C ++编译器,只是因为英特尔编译器需要的财务额外投资。我只会使用英特尔编译器作为微软或GNU编译器的替代品,如果性能对我的项目是至关重要的,我有一个财政部分顺序);

While I like the Intel compiler, I'm currently working with the microsoft C++ compiler, simply because of the financial extra investment the Intel compiler requires. I would only use the Intel compiler as an alternative to Microsofts or the GNU compiler, if performance were critical to my project and I had a the financial part in order ;)

这篇关于英特尔C ++编译器替代微软的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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