Le compilateur Intel C++ comme une alternative à Microsoft?
Est ce que quelqu'un ici en utilisant le compilateur Intel C++ au lieu de Microsoft Visual c++ compilateur?
Je serais très intéressé de connaître votre expérience au sujet de l'intégration, de performance et de temps de réalisation.
Vous devez vous connecter pour publier un commentaire.
Le compilateur Intel est l'un des plus avancées du compilateur C++ disponibles, il a un certain nombre d'avantages par rapport, par exemple, le compilateur Microsoft Visual C++, et un inconvénient majeur. Les avantages incluent:
Très bon SIMD de soutien, d'autant que j'ai pu trouver, c'est le compilateur qui a le meilleur support pour les instructions SIMD.
Prend en charge à la fois de parallélisation automatique (multi core optimzations), ainsi qu'au manuel d'utilisation (par OpenMP), et fait tous les deux très bien.
De charge CPU d'expédition, ce qui est vraiment important, car il permet au compilateur de cible le processeur pour des instructions optimisées lorsque le programme s'exécute. Aussi loin que je peux dire c'est le seul compilateur C++ disponibles, à moins que ce G++ a introduit dans leurs encore.
Il est souvent livré avec des bibliothèques optimisées, telles que les mathématiques et l'image des bibliothèques.
Il a cependant un inconvénient majeur, le répartiteur comme mentionné ci-dessus, ne fonctionne que sur des processeurs Intel, ce qui signifie que les optimisations avancées seront laissés de côté AMD cpu. Il y a une solution, mais c'est encore un problème majeur avec le compilateur.
Pour contourner le répartiteur problème, il est possible de remplacer le répartiteur code produit avec une version de travail sur les processeurs AMD, on peut par exemple utiliser Agner de la Brume asmlib bibliothèque qui remplace le compilateur a généré répartiteur de la fonction. Beaucoup plus d'informations à propos de l'expédition de problème, et technique plus détaillée des explications de certains sujets peuvent être trouvées dans le L'optimisation de logiciels en C++ papier - aussi de la Colère (ce qui est vraiment la peine de lire).
Sur une note personnelle, j'ai utilisé le Compilateur Intel c++ avec Visual Studio 2005, où il a fonctionné parfaitement, je n'ai pas de problèmes avec microsoft extensions de langage, il semblait comprendre ceux que j'ai utilisé, mais peut-être que ceux mentionnés par Jean Knoeller étaient différents de ceux que j'avais dans mes projets.
Bien que j'aime le compilateur Intel, je suis actuellement en train de travailler avec le compilateur C++ de microsoft, tout simplement parce que de la financière investissement supplémentaires, le compilateur Intel exige. Je tiens seulement à utiliser le compilateur Intel comme une alternative à Microsoft ou le compilateur GNU, si les performances sont critiques à mon projet et j'ai eu la partie financière dans l'ordre 😉
Je ne suis pas en utilisant le compilateur Intel C++ au travail /personnel (j'aurais).
Je voudrais l'utiliser parce qu'il a:
Excellent assembleur en ligne de soutien. Intel C++ prend en charge les processeurs Intel et AT&T (GCC) assembleur syntaxes, pour les plateformes x86 et x64. Visual C++ ne peut traiter qu'Intel assemblée syntaxe et seulement pour x86.
Soutien pour SSE3, SSSE3, et des jeux d'instructions SSE4. Visual C++ dispose d'un support pour le SSE et SSE2.
Est basé sur GDE C++, qui a un complète ISO/IEC 14882:2003 mise en œuvre. Cela signifie que vous pouvez utiliser /apprendre chaque C++ fonctionnalité.
J'ai eu une seule expérience avec ce compilateur, de compiler des STLPort. Il a fallu MSVC environ 5 minutes pour le compiler et l'ICC a été la compilation de plus d'une heure. Il semble que leur modèle de compilation est très lent. Autre que cela, j'ai entendu que de bonnes choses à ce sujet.
Voici quelque chose d'intéressant:
OSnews article ici
J'ai essayé en utilisant Intel C++ à mon ancien boulot. Autant que je me souvienne, il n'a en effet de générer des code plus efficace au détriment du temps de compilation. Nous n'avons pas le mettre pour une utilisation en production, même si, pour des raisons que je ne peux pas me rappeler.
Une différence importante par rapport à MSVC est que le compilateur Intel prend en charge C99.
Pour l'anecdote, j'ai trouvé que le compilateur Intel se bloque de plus en plus fréquemment que Visual C++. Ses diagnostics sont un peu plus approfondie et clairement écrit que la VC. Ainsi, il est possible que le compilateur va donner des diagnostics qui n'ont pas donné de capital de risque, ou un crash où VC n'a pas, de faire votre conversion plus cher.
Toutefois, je crois que Intel compilateur permet de vous relier avec Microsoft runtimes comme le CRT, en allégeant le coût de transition.
Si vous faites interagir avec du code managé, vous devriez probablement s'en tenir avec le compilateur de Microsoft.
Récente compilateurs Intel réduire de manière significative les performances de virgule flottante de lourds indices de référence, et sont similaires à Visual C++ sur un nombre entier de lourds indices de référence. Cependant, il varie considérablement basé sur le programme et si oui ou non vous êtes en utilisant le lien en temps de génération de code ou de profil guidée de l'optimisation. Si le rendement est important pour vous, vous aurez besoin de tester les performances de votre application avant de faire un choix. Je voudrais seulement dire que si vous faites le calcul scientifique, c'est probablement la peine de la durée de l'enquête.
Intel permet à un mois d'essai gratuit de son compilateur, de sorte que vous pouvez essayer ces choses par vous-même.
J'ai été en utilisant le compilateur Intel C++ depuis la première Version de Intel Parallel Studio, et jusqu'à présent je n'ai pas eu la tentation de revenir en arrière. Voici un aperçu de la dis/avantages ainsi que (bien) les observations.
Avantages
Inconvénients
Neutres
La dernière fois que l'entreprise pour laquelle je travaille a comparé les deux, c'était il ya environ un an, (peut-être 2). Intel compilateur a généré plus rapide de code, en général seulement un peu plus vite, mais dans certains cas, tout à fait un peu.
Mais il ne pouvait pas gérer certains de la MS des extensions de langage que nous dépendait, nous avons donc fini de coller avec MME Il a VS 2005 que nous avons été en le comparant à d'. Et je suis ruiner mon cerveau à se rappeler exactement ce que MS extension du compilateur Intel n'a pas pu traiter. Je reviens éditer ce post si je me souviens.
Le Compilateur Intel C++ est INCROYABLE (de l'homme) de soutien. En parlant de Microsoft peut littéralement prendre des jours. Mon non-trivial problème a été résolu par chat en moins de 10 minutes (y compris la vérification de l'affiliation de temps).
EDIT: j'ai parlé de Microsoft au sujet de problèmes dans leurs produits tels que Office 2007, a même eu un bug signalé. Alors que j'ai finalement réussi, l'ensemble de la taille et de la complexité de leurs produits et la hiérarchie de l'organisation est de taille.