率直に言って、Intel コンパイラは入手する価値がありますか? 私は主にシステム レベルとデスクトップの作業を行っているので、メリットがあると考えています。もう少し経験のある人は、光を当てることができますか?
5 に答える
Windows を使用している場合、Intel プロセッサの他のコンパイラよりも速度が大幅に向上します。Intel 以外のプロセッサ (AMD、VIA) で非常に遅いコード パスを選択するという既知の動作があり、問題を取り巻く反トラスト調査が行われています。
スレッド ビルディング ブロックやその他の機能を使用する場合、その機能は他の場所には存在しないため、長期的にコードをインテル® コンパイラーに関連付けるリスクもあります。
Linux 上の GCC 4.5 は、Intel コンパイラとほぼ同等です。そのプラットフォームには明確な勝者はいません。
私が Intel コンパイラ (C のみ) で経験した小さな経験では、それらは非常に優れていると言えます。具体的には、OpenMP ライブラリはオープン ソース バージョンよりもはるかに高速でした。「価値がある」は状況によって異なりますが、高価ですが、IMOの方が優れています。
私が見たベンチマークから、インテル固有のコンパイラーを使用すると、オープンソースの代替品よりもパフォーマンス/マルチスレッドの利点が得られるように見えます。
ICL と MSVC++ の数値動作を比較する場合は、/fp: 設定の動作の違いを考慮する必要があります。ICL /fp:source (デフォルトよりも積極的ではない) は、MSVC /fp:fast (デフォルトよりも積極的) と同等です。Microsoft は、ICL の既定で有効になっている最適化を実行しません。これらには、simd リダクションが含まれます (通常は精度が向上しますが、予測できないマージンが生じます)。ICL は、デフォルトで括弧に関する標準にも違反しています。/fp:source よりも優れたパフォーマンスの手段でそれを修正するかどうかについては、まだ論争があるようです。
浮動小数点数の精度が重要な場合は、Intel コンパイラではなく Visual Studio コンパイラを使用してください。32 ビットと 64 ビットのアプリケーション Intel コンパイラを使用した計算では、異なる結果が得られる可能性があります。(チェック済み)。32 ビットと 64 ビットの Visual Studio コンパイラの結果は同じになります。