|
適切なインテル® C++ コンパイラーを選んでください!
|
このページでは、インテル® Integrated Native Developer Experience (インテル® INDE) に含まれるインテル® C++ コンパイラーに関連する記事や参考資料へのリンクをまとめています。このページは、https://software.intel.com/en-us/c-compilers/inde/ をもとにしています。
概要
インテル® INDE Ultimate Edition は、Android* と Windows* デスクトップおよび OS X* 向けのインテル® C++ コンパイラーを同梱しており、インテル® アーキテクチャー・ベースのデバイス向けに卓越したアプリケーションのパフォーマンスを提供します。また、Ultimate Edition には、インテル® アーキテクチャーと ARM* の両方をサポートする GCC を提供する Android* NDK が含まれます。Ultimate Edition では、すべてが利用できます。インテル® INDE Starter Edition および Professional Edition には、GCC を提供する Android* NDK のみが含まれます。
Android* アプリケーションのパフォーマンス
インテル® INDE Ultimate Edition で提供されるインテル® C++ コンパイラー 15.0 は、SPECint_base2006 rate を使用した結果から換算して、Android* アプリケーションのパフォーマンスを 30% 以上高速化できます。
構成の詳細
- Windows* ベースのビルドシステム
- 64ビット Windows Server* 2008 R2 Enterprise Service Pack 1
- インテル® C++ コンパイラー、インテル® INDE 2015 Ultimate Edition、パッケージ ID icc_android_15.0.0.006
コンパイラー・オプション: -O3 -ipo -no-prec-div -ansi-alias -xATOM_SSE4.2 -fPIE -pie -opt-mem-layout-trans=3 - Android* NDK-r10-GCC 4.9
コンパイラー・オプション: -Ofast -flto -funroll-loops -mfpmath=sse -v -march=slm
-fPIE -pie
- タブレット・ターゲット・ハードウェア
- インテル® Atom™ プロセッサー Z3740 @1.33GHz、2GB RAM を搭載する ASUS* Transformer Book T100
- インテル® HD グラフィックス
- Android* 4.4
Windows* アプリケーションのパフォーマンス
インテル® INDE Ultimate Edition で提供されるインテル® C++ コンパイラー 15.0 は、SPECint_base2006 rate を使用した結果から換算して、Windows* アプリケーションのパフォーマンスを 50% 以上高速化できます。
構成の詳細
- CPU: インテル® Core™ i7-4770K プロセッサー @ 3.50GHz、16GB メモリー
- オペレーティング・システム: Microsoft* Windows* 7 SP1
- インテル® C++ コンパイラー 15.0
コンパイラー・オプション:
C: -QxCORE-AVX2 -Qipo -O3 -Qprec-div- -Qopt-prefetch -Qopt-mem-layout-trans:3 -Qansi-alias
C++: -QxCORE-AVX2 -Qipo -O3 -Qprec-div- -Qopt-prefetch -Qopt-mem-layout-trans:3
-Qansi-alias -Qcxx_features - Microsoft* C/C++ 最適化コンパイラー・バージョン 18.0 (Visual Studio* 2013)
コンパイラー・オプション:
C: /Oi /O2 /Ob2 /GL /fp:fast /favor:INTEL64 /arch:AVX /Ehsc
C++: /Oi /O2 /Ob2 /GL /fp:fast /favor:INTEL64 /arch:AVX /Ehsc - C++ のテストには、SmartHeap を使用しました。
OS X* アプリケーション・パフォーマンス
OS X* アプリケーションのパフォーマンスを改善
- C/C++ をサポートする新しい clang ベースのコンパイラーは、Objective-C* と互換性があります。
- 多くのケースで再コンパイルするだけでパフォーマンスを向上できます。
- Xcode* との互換性
- 複数のアーキテクチャー向けの GNU* C++ との互換性
- 簡単で高速なダウンロードとインストール
- インテル® C++ Performance Indicators
インテル® C++ Performance Indicators
インテル® Core™ i7-4770K プロセッサーr (開発コード名 Haswell)、1.70GHz, デュアルコア、4MB キャッシュ、ハイパースレッディング有効、OS X* 10.9、2GB RAM の MacBook Air* 上のパフォーマンス。詳細については、
http://www.intel.com/performance (英語) をご覧ください。
性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。SPECint_base2006* 性能テストは、特定のコンピューター・システム、コンポーネント、ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。ベンチマークの出典元: Intel Corporation
詳細
インテル® INDE Ultimate Edition: インテル® C++ コンパイラーは、互換性とパフォーマンスを提供します。
インテル® C++ コンパイラー for Windows*
- Windows* デスクトップ・アプリケーション向けに卓越したパフォーマンスを提供します。
- Microsoft* Visual C++* と互換性があるため、コードを継続して活用できます。
インテル® C++ コンパイラー for Android* OS
- インテル® アーキテクチャーで動作する Android* アプリケーション向けに卓越したパフォーマンスを提供します。
- Android* をサポートする GCC 互換コンパイラーは、すでに使用しているツールを利用して、既存のアプリケーションをインテル® アーキテクチャーと ARM* 向けに容易にビルドできます。
インテル® C++ コンパイラー15.0 for OS X*
- C/C++ をサポートする新しい clang ベースのコンパイラーは、Objective-C* と互換性があります。
- OS X* 10.10 がサポートされます。
- Xcode* との互換性: Xcode* 6.0 と 6.1 がサポートされます。
- 複数のアーキテクチャー向けの GNU* C++ との互換性
広く利用されている IDE に統合できるため、両方のコンパイラーですでに確立している作業方法を維持できます。インテル® C++ コンパイラー for Windows* は、Microsoft* Visual Studio* にプラグインできます。インテル® C++ コンパイラー for Android* は、Eclipse*、Android* Studio そして Visual Studio* にプラグインできます。インテル® C++ コンパイラー for OS X* とプラグインは、Xcode* と互換性があります。
インテル® INDE Ultimate Edition は、卓越したアプリケーションのパフォーマンスをもたらすインテル® C++ コンパイラーと GCC コンパイラーを含んでいます。Ultimate Edition では、すべてが利用できます。
- Visual Studio* で簡単に利用ソリューションを開いて、ソリューション・エクスプローラーで右クリックするだけです。オプションリストから、[インテル(R) C++ コンパイラー] > [インテル(R) C++ を使用] を選択して、ターゲットがインテル® アーキテクチャーであることを設定します。
- 自動ベクトル化: 可能であれば、インテル® C++ コンパイラーは、コードに自動ベクトル化と/もしくは、自動並列化を適用します。
- ガイド付き自動並列 (GAP): このコンパイラーによる分析機能は、自動ベクトル化と自動並列化のためにコードを変更するガイドを提供します。
- 長期に渡り実証済みの最適化: インテル® C++ コンパイラーのプロシージャー間の最適化は、低コストでモジュール内とモジュール間のコードサイズを最適化します。利点は? パフォーマンス。
- -ansi-alias (-O2 か -O3 で有効になる) など完全な C++ 11 の互換性機能は、さらにパフォーマンスを高める積極的な最適化を可能にします。
- インテル® AVX 命令 (インテル® Core™ i3/i5/i7 プロセッサー) とインテル® SSSE3 & インテル® SSE3 命令 (インテル® Atom™ プロセッサー) をコンパイラー・ベースでサポート。
ベクトル化を含む最適化レポートで生産性を向上
インテル® Cilk™ Plus によるタスクとデータ並列により、アプリケーションのパフォーマンスを改善。シンプルな 3 つのキーワード: cilk_for、cilk_spawn、そして cilk_sync。cilk_spawn の使い方とパフォーマンス上の利点の例:
正規化されたパフォーマンス・データ – 高い値が良い
構成: インテル® Core™ i7-4770K プロセッサー (開発コード名 Haswell)、3.50GHz、4 コア、ハイパースレッディング有効、16GB RAM、12M キャッシュ、64 ビット Ubuntu*。完全なコードセット: https://software.intel.com/en-us/articles/cilk-plus-solver-for-a-chess-puzzle-or-how-i-learned-to-love-rejection。
性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。ベンチマークの出典元: Intel Corporation
関連記事
ビデオ
入門記事
- インテル® コンパイラーによる AVX 最適化入門: 第 2 回 AVX への最適化について (その 1)
- インテル® コンパイラーによる AVX 最適化入門: 第 3 回 AVX への最適化について (その 2)
- インテル® コンパイラーによる AVX 最適化入門: 第 4 回 AVX への最適化について (その 3)
- コンパイラー最適化入門: 第 1 回 SIMD 命令とプロセッサーの関係
- コンパイラー最適化入門: 第 2 回 SIMD 命令と伝統的な IA 命令
- コンパイラー最適化入門: 第 3 回 インテル® コンパイラーのベクトル化レポートを活用する
- コンパイラー最適化入門: 第 4 回 自動ベクトル化はどんな時に行われるか
- コンパイラー最適化入門: 第 5 回 明示的にベクトル化されたコードを記述する
- コンパイラー最適化入門: 第 6 回 ベクトル化の裏技集
- インテル® コンパイラーを初めて使う際に知っておくべきこと
- インテル® コンパイラーの基本的な使用方法
- マルチスレッド開発ガイド: 4.1 インテル® コンパイラーによる自動並列化
- マルチスレッド開発ガイド: 4.6 インテル® Parallel Composer を利用して並列コードを開発する
注目記事
- 新しい最適化レポートを使用してインテル® コンパイラーをさらに活用する
- インテル® SSE およびインテル® AVX 世代 (SSE2、SSE3、SSSE3、ATOM_SSSE3、SSE4.1、SSE4.2、ATOM_SSE4.2、AVX、AVX2、AVX-512) 向けのインテル® コンパイラー・オプションとプロセッサー固有の最適化
一般記事
- インテル® C++ コンパイラーでサポートされる C++11 の機能
- インテル® C++ コンパイラーでサポートされる C99 の機能
- インテル® C++ コンパイラーのベクトル化ガイド
- デフォルト・コンパイラーをインテル® C++ コンパイラーから x86 ターゲットの gcc コンパイラーへ戻す
- 組込みシステムにおけるインテル® C++ コンパイラーの利用
- インテル® AVX をサポートする第 2 および第 3 世代インテル® Core™ プロセッサー・ファミリー向けに手動でコードを配置するには
- ガイド付き自動並列化
- OMP_PROC_BIND の振る舞いがインテル製品以外のプロセッサーとの互換性をサポートしました
- インテル® コンパイラーの浮動小数点演算における結果の一貫性
- PAOS – パックド構造体配列
- バッファー・オーバーランとダングリング・ポインターをデバッグするポインター・チェッカー (Part 1) (英語)
インテル® Cilk™ Plus 関連
- インテル® Cilk™ Plus を使用した並列化
- インテル® Cilk™ Plus の SIMD ベクトル化と要素関数
- インテル® Cilk™ Plus とコードサンプルによる導入ガイド (英語)
- インテル® Cilk™ Plus を利用した最も効率良い方法 (英語)
その他インテル® Cilk™ Plus に関しては インテル® Cilk™ Plus のページをご覧ください。
OpenMP 関連
- OpenMP* 入門
- C++ 開発者が陥りやすい OpenMP* の 32 の罠
- 高度な OpenMP* プログラミング
- OpenMP* のサポート・ライブラリー
- OpenMP* を使用して既存のシリアルコードで並列処理の可能性を見つけよう
- OMP Abort エラーが発生した場合の対処方法
- OpenMP*、インテル® TBB、インテル® Cilk™ Plus におけるマスタースレッドとワーカースレッドの浮動小数点設定の違い
その他 OpenMP* に関しては OpenMP* のページをご覧ください。
その他の C++ コンパイラー関連日本語記事を検索
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。