インテル® Advisor ユーザー向けベクトル化リソース
この記事は、インテル® デベロッパー・ゾーンに公開されている「Vectorization Resources for Intel® Advisor Users」の日本語参考訳です。
インテル® Advisor には、Fortran、C/C++ ネイティブ/マネージド・アプリケーションが、インテル® Xeon Phi™ プロセッサーなどの最新のプロセッサーのパフォーマンスを最大限に引き出すことができるように支援する 2 つのツールが含まれています。
- ベクトル化アドバイザーは、ベクトル化により恩恵を得られるループと効率良いベクトル化を妨げる原因を特定し、代替のデータ再構成を調査して、ベクトル化の安全性を高めるベクトル化解析ツールです。
- スレッド化アドバイザーは、通常の開発作業を中断することなく、スレッド化設計の選択肢を解析、設計、チューニング、確認できるスレッド化設計/プロトタイピング・ツールです。
ベクトル化アドバイザーの主な機能の 1 つに、コード固有のベクトル化問題の修正方法を提示する GUI 統合アドバイスがあります。このページには、GUI 統合アドバイスと Web ベースのベクトル化リソースへのリンクが含まれます。
インテル® Advisor のリソース
インテル® Advisor の能力と柔軟性を最大限に引き出すには、次のリソースをご覧ください。
入門ガイド │ ベクトル化アドバイザー用語集 │ サポートとフォーラム (英語) │ トレーニング (英語)
推奨: 生産性をできるだけ高くするには、次の SIMD 並列処理ワークフロー (使用シナリオ) に従ってください。(白のステップはオプションのステップです。)
インテル® コンパイラーのリソース
インテル® Advisor には、ベクトル化に関連するインテル® コンパイラーのオプションとディレクティブから構成される C++ ミニガイドおよび Fortran ミニガイドが用意されています。これらのミニガイドは、『インテル® コンパイラー・デベロッパー・ガイドおよびリファレンス』の該当ページを抜粋したものです。ベクトル化アドバイザーでベクトル化の制約に関するコンパイラー診断を含む完全な解析データを収集するには、インテル® コンパイラー 15.0 以降が必要です。インテル® コンパイラーの各種ガイドとベクトル化診断の一覧は、以下を参照してください。
インテル® コンパイラーのガイドとリファレンス
- インテル® C/C++ コンパイラー: 17.0 (英語) │18.0 (英語)
- インテル® Fortran コンパイラー: 17.0 (英語) │ 18.0 (英語)
- インテル® C++ および Fortran コンパイラー 18.0 最適化クイック・リファレンス・ガイド [PDF]
ベクトル化診断
注: メトリックのサブセットは GCC や Microsoft* コンパイラーでビルドしたバイナリーでも利用できます。
ルーフラインのリソース
ルーフライン解析を使用して、ハードウェアによって課せられるパフォーマンスの上限と実際のパフォーマンスを視覚化し、制限の主な要因 (メモリー帯域幅や計算能力) を検証して、理想的な最適化ステップを得る場合、次のリソースが役立ちます。
- インテル® Advisor のルーフライン
- インテル® Advisor チュートリアル: ルーフライン・グラフによる最適化方針の決定 (英語)
- インテル® Advisor 2017 のルーフライン機能の概要 (英語)
- インテル® Advisor のルーフライン解析機能の FAQ (英語)
- コールスタックを利用したルーフライン
- セルフ時間ベースの FLOPS 計算 (英語)
- キャッシュを考慮したルーフライン・モデル: ロフトのアップグレード (英語) [PDF]
- ルーフライン: 浮動小数点プログラムとマルチコア・アーキテクチャー向けの詳細なビジュアル・パフォーマンス・モデル (英語) [PDF]
OpenMP* と MPI のリソース
OpenMP* 並列化フレームワークや MPI を使用している場合、以下のリソースが役立ちます。
- インテル® Advisor を使用したインテル® MPI アプリケーションの解析 (英語)
- OpenMP* 4.0 を使用してプログラムで SIMD を有効にする
- インテル® コンパイラー 15.0 の OpenMP* 4.0 機能 (英語)
- OpenMP* 4.0 ベクトル化を使用したパフォーマンスの基本
- インテル® Composer XE 2013 SP1 で追加された OpenMP* 4.0 機能のサポート (英語)
ケーススタディー
以下のケーススタディーも参考になります。
- マルチコア・プロセッサーにおける 3 次元有限差分法の実装
- インテル® Xeon Phi™ プロセッサー上でインテル® Advisor を利用して GTC-P APEX コードを解析する (英語)
- 等方性 3 次元有限差分コード向けの 8 つの最適化 (英語)
- スーパーコンピューターを使用した PIC プラズマ・シミュレーションによる計算物理学の強化 (英語)
- より効率的な数値シミュレーション (英語) [PDF]
- ケーススタディー | 天体物理学におけるより効率的な数値シミュレーション (英語)
- ルーフライン・モデルによりメニーコアコードの最適化作業を向上 (英語)
- インテル® アドバイザーのキャッシュを意識したルーフライン・モデル (https://www.hipeac.net/assets/public/publications/newsletter/hipeacinfo51_final_corrected.pdf (英語)) [PDF、ページ 33 を参照]
- ベクトル化が再び重要に (英語)
その他のリソース
インテル® デベロッパー・ゾーン (または iSUS) では、豊富なベクトル化リソースを提供しています。以下のページにあるさまざまなリソースへのリンクの一覧やハウツーガイドは、多くのインテル® Advisor ユーザーに役立ちます。
リンクの一覧
以下のページには、ベクトル化に関する情報と関連リソースへの多数のリンクが含まれています。いくつかのページでは、インテル® コンパイラーの最適化レポートやインテル® VTune™ Amplifier の解析など、ほかのインテル® ソフトウェア開発ツールのベクトル化機能について取り上げていますが、掲載されている情報には、ベクトル化全般に関する有益な情報が含まれています。
多くのリソースは、現在のインテル® コンパイラー・バージョンに加えて、2 つの前のバージョンまでサポートしています。以前のインテル® コンパイラー・バージョン用に記述されたコンパイラー・リソースの多くは、現在のインテル® コンパイラー・バージョンにも当てはまります。多くの場合、バージョンによる違いが説明されています。
- 明示的なベクトル・プログラミング – 最も一般的な手法
- インテルのベクトル化ツール
- インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャー向けプログラミングとコンパイル
- インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャーのベクトル化の基本
ハウツーガイド
以下は、インテル® デベロッパー・ゾーンにあるベクトル化に関するさまざまな記事とリソースです。
- 一般的なベクトル化のヒント
- インテル® Xeon Phi™ プロセッサー x200 およびインテル® AVX-512 ISA 向けのコンパイル (英語)
- インテル® コンパイラーの浮動小数点演算における結果の一貫性
- ベクトル化の可能性を高めるデータ・アライメント
- インテル® Xeon® プロセッサーとインテル® Xeon Phi™ コプロセッサーの浮動小数点演算の違い
- Fortran の明示的なベクトル・プログラミング (英語)
- 将来も通用するアプリケーション生成のためのベクトル化/テクニカル・プレゼンテーション FAQ (英語)
- インテル® コンパイラーのプラグマ/ディレクティブ入門 (英語)
- インテルの組込み関数ガイド (英語)
- 外部ループのベクトル化
- ループのベクトル化によるプログラムの最適化
- #pragma SIMD を使用してループをベクトル化するための条件
- ベクトルのフル活用と -qopt-assume-safe-padding オプションの使用
- ベクトル化のコードブック [PDF]
著作権と商標について
Intel、インテル、Intel ロゴ、Xeon、Intel Xeon Phi、VTune は、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
© 2015-2018 Intel Corporation.
本ソフトウェアおよび関連ドキュメントはインテルの著作物であり、その使用には付随する明示的なライセンスが適用されます (「ライセンス」)。ライセンスに明記されている場合を除き、インテルから事前に書面による許可なしに、ソフトウェアまたは関連ドキュメントを使用、改変、複製、公開、配布、開示、転送してはなりません。
本ソフトウェアおよび関連ドキュメントは現状のまま提供され、ライセンスに明記されている場合を除き、明示されているか否かにかかわらず、いかなる保証もいたしません。
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。