この記事は、インテル® デベロッパー・ゾーンに公開されている「Get Started with Intel® Advisor」の日本語参考訳です。
目次
デフォルトのインストール・パス
Windows* の環境設定
Linux* の環境設定
プロジェクトの作成
GPU オフロードにより大きな効果が得られる候補の特定 (ベータ機能)
GPU ルーフラインを使用した GPU パフォーマンス・ボトルネックの測定 (ベータ機能)
CPU ルーフラインを使用したパフォーマンス・ボトルネックの特定
ベクトル化が最も有効な場所の特定
スレッド化のプロトタイプの作成
参考資料
著作権と商標について
インテル® Advisor は、Fortran、C、C++、.NET (Windows*)、およびデータ並列 C++ (DPC++) アプリケーションが、最新のプロセッサーで最大限のパフォーマンスを達成できるように支援するツール群で構成されています。
このドキュメントは、インテル® Advisor 2020 およびベータ版インテル® Advisor のアプリケーションの潜在的なパフォーマンス向上を達成する一般的なワークフローについてまとめています。
- オフロード・アドバイザー (ベータ機能) を使用した GPU オフロードにより大きな効果が得られる候補の特定。
- GPU ルーフラインを使用した GPU パフォーマンス・ボトルネックの特定 (ベータ機能)。
- CPU ルーフラインを使用したパフォーマンス・ボトルネックの特定。
- ベクトル化アドバイザーを使用したベクトル化が最も有効な場所の特定。
- スレッド化アドバイザーを使用したスレッド化のプロトタイプの作成。
デフォルトのインストール・パス
Windows* でのデフォルトのインストール先は次のとおりです。
- <advisor-install-dir> は、C:\Program Files (x86)\IntelSWTools\advisor です (特定のシステムでは、Program Files (x86) の代わりにProgram Files となります)。
- <oneapi-install-dir> は、C:\Program Files (x86)\inteloneapi\ です (特定のシステムでは、Program Files (x86) の代わりに Program Files となります)。
- <parallel-studio-install-dir> は、C:\Program Files (x86)\IntelSWTools\ です。
Linux* でのデフォルトのインストール先は次のとおりです。
- <advisor-install-dir> は次のようになります。
- root ユーザー: /opt/intel/
- 一般ユーザー: $HOME/intel/
- <oneapi-install-dir> は次のようになります。
- root ユーザー: /opt/intel/inteloneapi
- 一般ユーザー: $HOME/intel/inteloneapi
- <parallel-studio-install-dir> は次のようになります。
- root ユーザー: /opt/intel/
- 一般ユーザー: $HOME/intel/
Windows* の環境設定
注: 環境を設定する必要があるのは、advixe-cl コマンドを使用してコマンドライン・インターフェイスを実行するか、GUI または IDE 起動オプションを使用する代わりに advixe-gui コマンドを使用してインテル® Advisor スタンドアロン GUI を起動する場合です。
ベータ版インテル® Advisor で環境を設定:
- スタンドアロンのインストール環境では、<advisor-install-dir>\env\vars.bat コマンドを実行します。
ベータ版インテル® oneAPI ベース・ツールキット環境では、<oneapi-install-dir> \advisor\2021.1-beta07\envs.bat コマンドを実行します。
インテル® Advisor 2020 で環境を設定:
- <advisor-install-dir>\advixe-vars.bat コマンドを実行します。
- インテル® Parallel Studio XE 環境では、<parallel-studio-install-dir>\psxevars.bat コマンドを実行します。
- インテル® System Studio 環境では、<advisor-install-dir>\advixe-vars.bat コマンドを実行します。
Linux* の環境設定
ベータ版インテル® Advisor で環境を設定:
- スタンドアロンのインストール環境では、source <advisor-install-dir>\env\vars.sh コマンドを実行します。
- ベータ版インテル® oneAPI ベース・ツールキット環境では、source <oneapi-install-dir>env\vars.sh コマンドを実行します。
インテル® Advisor 2020 で環境を設定:
- 次の source コマンドを実行します。
- csh/tcsh のユーザー: source <advisor-install-dir>/advixe-vars.csh
bash のユーザー: source <advisor-install-dir>/advixe-vars.sh
- パスに <advisor-install-dir>/bin32 または <advisor-install-dir>/bin64 を追加します。
- <parallel-studio-install-dir>/psxevars.csh または <parallel-studio-install-dir>/psxevars.sh コマンドを実行します。
プロジェクトの作成
注: リリースモードでアプリケーションをビルドします。アプリケーションのビルドに関する詳細は、https://software.intel.com/content/www/us/en/develop/documentation/advisor-user-guide/top/before-you-begin.html を参照してください。
- 次のいずれかを行います。
- スタンドアロン GUI: [ファイル] > [新規] > [プロジェクト…] を選択して [プロジェクトを作成] ダイアログボックスを選択します。[プロジェクト名] と [場所] を指定して、[プロジェクトの作成] ボタンをクリックすると [プロジェクトのプロパティー] ダイアログボックスが開きます。
- Visual Studio* IDE: [プロジェクト] > [Intel Advisor Project Properties] を選択して、[プロジェクトのプロパティー] ダイアログボックスを開きます。
- [解析ターゲット] タブの左で、[サーベイ・ホットスポット解析] タイプが選択され、適切なパラメーターが設定されていることを確認します。
- ほかの解析タイプとタブで適切なパラメーターを設定します (バイナリー/シンボル検索とソース検索ディレクトリーの設定は、ベクトル化アドバイザーではオプションです)。
GPU オフロードにより大きな効果が得られる候補の特定 (ベータ機能)
オフロード・アドバイザー (ベータ版インテル® Advisor のみ) を使用すると、GPU にオフロードすることで利点が得られるコード領域とオフロードには向かないコード領域を特定できます。オフロードのオーバーヘッドとともに、アクセラレーターのパフォーマンス・スピードアップを予測し、さらにアクセラレーターのパフォーマンス・ボトルネックを特定します。
注: オフロード・アドバイザーは CLI インターフェイスでのみ利用できます。
重要: DPC++、OpenCL*、または OpenMP* ターゲット・アプリケーションを解析する場合、環境変数 INTEL_JIT_BACKWARD_COMPATIBILITY=1 を設定します。詳細については、「オフロード・アドバイザーによる DPC++、OpenCL*、OpenMP* ターゲット・アプリケーションの解析」を参照して下さい。
いくつかの方法があります。それぞれの方法は、単純性と柔軟性が異なります。
注: 以下のコマンドで、<APM> はオフロード・アドバイザーのスクリプトがあるディレクトリーを示すベータ版インテル® Advisor の環境変数です。Linux* では $APM、Windows* では %APM% に置き換えます。
方法 1: run_oa.py
この方法は最も簡単ですが、柔軟性が低く、MPI アプリケーションでは使用できません。以下に例を示します。
advixe-python <APM>/run_oa.py <project-dir> -- <target> [target-options]
方法 2: collect.py + analyze.py
この方法は簡単で適度な柔軟性がありますが、MPI アプリケーションはサポートされません。collect.py はプロファイルを自動化し、analyze.py はターゲットデバイスでパフォーマンスのモデル化を実装します。以下に例を示します。
- アプリケーションのパフォーマンス・メトリックを収集するには、collect.py を実行します。
advixe-python <APM>/collect.py <project-dir> -- <target> [target-options]
- ターゲットデバイス (GPU など) で実行されるようにアプリケーションのパフォーマンスをモデル化するには、analyze.py を実行します。
advixe-python <APM>/analyze.py <project-dir>
注: 非並列領域の依存関係データも収集する場合、collect.py で –collect full オプションを使用します。
方法 3: advixe-cl + analyze.py
この方法は最も柔軟性が高く、MPI アプリケーションにも使用できます。この方法を使用するには次を実行します。
- –dry-run オプションを指定して collect.py を実行し、設定に対応するコマンドを取得します。
advixe-python <APM>/collect.py <project-dir> –-dry-run -- <target> [target-options]
advixe-cl コレクションのいくつかのコマンドラインが表示されます。マークアップコマンド (advixe-python collect.py –markup <markup-type>) を省略して、収集のオーバーヘッドが増加する代わりに、より多くのデータを取得できます。
- 示されるすべてのコマンドを実行します。以下に例を示します。
- サーベイ解析を実行します。
advixe-cl –collect=survey --auto-finalize --stackwalk-mode=online --static-instruction-mix --project-dir=<project-dir> -–profile-jit –-data-transfer-analysis -- <target> [target-options]
- トリップカウントと FLOP 解析を実行します。
advixe-cl --collect=tripcounts --flop --stacks -–enable-cache-simulation –-cache-config=<cache-configuration> --enable-data-transfer-analysis --project-dir=<project-dir> -- <target> [target-options]
- [オプション] 依存関係解析を実行します。OpenMP* や DPC++ などの既存の並列領域の解析には必要ありませんが、デフォルトモードである一般的な解析では強く推奨されます。
advixe-cl --collect=dependencies --loops="scalar" --filter-reductions --loop-call-count-limit=16 --project-dir=<project-dir> -- <target> [target-options]
- サーベイ解析を実行します。
- analyze.py を実行して、ターゲットデバイスで実行するかのようにアプリケーションのパフォーマンスをモデル化します。
advixe-python <APM>/analyze.py <project-dir>
注: 現在のバージョンでは、OpenMP*、DPC++、インテル® スレッディング・ビルディング・ブロック (インテル® TBB)、およびインテル® データ・アナリティクス・アクセラレーション・ライブラリー (インテル® DAAL) の並列領域を解析できます。並列領域にはループ伝搬依存関係がなく、依存関係チェックを行う必要はありません。解析時間を短縮するには、analyze.py で -assume-parallel/–no-assume-parallel オプションを使用して、依存関係チェックをスキップできます。
GPU ルーフラインを使用した GPU パフォーマンス・ボトルネックの測定 (ベータ機能)
注: ベータ版インテル® Advisor でのみ利用できます。
GPU ルーフライン解析は、ハードウェアによって制限されるパフォーマンスの上限に対するベンチマークとハードウェア・メトリックのプロファイルを使用して、GPU カーネルの実際のパフォーマンスを推測して視覚化し、主な制限の要因を特定するのに役立ちます。ベータ版インテル® Advisor で GPU ルーフライン解析を実行します。
- GPU プロファイルとサーベイ解析を使用して、OpenCL* カーネルのタイミングとメモリーデータを収集し、ハードウェアの制限を測定します。
- トリップカウントと FLOP 解析と GPU プロファイルを使用して、浮動小数点と整数操作のデータを収集します。
GPU ルーフライン解析の実行
重要:
- GPU ルーフラインは、インテル® Advisor の CLI からのみ実行できます。
- GPU プロファイルは、インテル® プロセッサー・グラフィックスにのみ適用できます。
ターゲット・アプリケーションは、OpenCL* を直接もしくは間接的に使用する必要があります。例えば、データ並列 C++ (DPC++)、SYCL*、または GPU 対応の OpenMP* の実装を使用します。
GPU カーネルのパフォーマンスを推測するルーフラインの可視化モデルを作成するには、以下を行います。
- –profile-gpu オプションを使用して GPU ルーフライン・データを収集します。–enable-gpu オプションは、インテル® プロセッサー・グラフィックスで実行される OpenCL* とインテル® Media SDK プログラムの解析を有効にします。次のいずれかを行います。
- –collect=roofline オプションでショートカット・コマンドを実行します。これは、サーベイ解析とトリップカウント & FLOP 解析を個別に実行します。
advixe-cl --collect=roofline --profile-gpu --project-dir=<project-dir> --search-dir src:r=<source-dir> -- <target> [target-options]
- サーベイ解析とトリップカウント & FLOP 解析を個別に実行します。
advixe-cl --collect=survey --profile-gpu --project-dir=<project-dir> --search-dir src:r=<source-dir> -- <target> [target-options]
advixe-cl --collect=tripcounts --flop --profile-gpu --project-dir=<project-dir> --search-dir src:r=<source-dir> -- <target> [target-options]
- –collect=roofline オプションでショートカット・コマンドを実行します。これは、サーベイ解析とトリップカウント & FLOP 解析を個別に実行します。
- –gpu オプションで GPU ルーフライン・レポートを生成します。
advixe-cl --report=roofline --gpu --project-dir=<project-dir> --report-output=<project-dir>/roofline.html
注: 整数データの GPU ルーフライン・レポートを生成するには、–data-type=int オプションを指定します。
- アプリケーションの GPU ルーフライン・モデルによる HTML レポートを確認します。
注: インテル® Advisor Python* を使用してプロジェクトの GPU メトリックを収集し、ターミナルに出力できます。
advixe-python <install-dir>/pythonapi/examples/survey_gpu.py <project-dir>
ルーフライン・グラフの詳細とカーネルの調査
[ルーフライン] グラフは、マシンの達成可能な最大パフォーマンスに対して、アプリケーションのパフォーマンスと演算強度を表示します。
- 演算強度 (x 軸) – GPU とメモリー間で転送された、カーネルのアルゴリズムに基づくバイトあたりの浮動小数点操作の数です。
- パフォーマンス (y 軸) – 1 秒あたりの浮動小数点操作の数 (GFLOPS) です。
一般に次のことが言えます。
- ルーフのドットの大きさと色は、各カーネルの相対的な実行時間を示します。大きな赤いドットは最も時間を消費しているため、最適化の最良の候補となります。小さな緑のドットは消費時間が少ないため、最適化する必要はないと考えられます。
- ルーフの斜線は、最適化なしではカーネルがパフォーマンスを向上できない、メモリー帯域幅の上限を示します。
- L3 キャッシュルーフ: 現在使用しているグラフィックス・ハードウェアの L3 キャッシュの最大帯域幅を示します。最適化されたロード命令のシーケンスを使用して、L3 キャッシュに収まる配列を反復処理して測定します。
- SLM キャッシュルーフ: 現在使用しているグラフィックス・ハードウェアの共有ローカルメモリーの最大帯域幅を示します。SLM のみにアクセスする最適化されたロードおよびストア命令のシーケンスを使用して測定します。
- GTI ルーフ: GPU と残りの SoC 部分との間の最大帯域幅を示します。この推測値は、現在使用しているグラフィックス・ハードウェアの最大周波数を基にした解析式で計算されます。
- DRAM ルーフ: 現在使用しているグラフィックス・ハードウェアで利用可能な DRAM メモリーの最大帯域幅を示します。最適化されたロード命令のシーケンスを使用して、GPU キャッシュに収まらない配列を反復処理して測定します。
- 水平線は、最適化なしではカーネルがパフォーマンスを向上できない、計算能力の上限を示します。
- ドットは、マシンの最大能力を示す最上位のルーフラインを超えることはありません。すべてのカーネルがマシンの機能を最大限に利用できるわけではありません。
- ドットと達成可能な最上位のルーフとの距離が遠いほど、パフォーマンス向上の可能性は高くなります。
GPU ルーフライン・グラフは、CPU ルーフライン・グラフをベースにしていますが、いくつかの違いがあります。
- グラフのドットは、OpenCL* カーネルに対応しています。CPU バージョンでは個々のループに対応します。
- 表示される情報とコントロールの一部 (スレッド/コア数など) は、GPU ルーフラインにはありません。詳細については次の表を参照してください。
- 統合されたグラフは単一カーネルの複数のドットを示します。これらのドットは、演算強度の計算に使用される各種メモリーレベルに対応しています。ドットにマウスをホバーすると演算強度が分かります。グラフの特定のドットを表示/非表示にするには、[メモリーレベル] ドロップダウン・フィルターを使用します。
CPU ルーフラインを使用したパフォーマンス・ボトルネックの特定
ルーフライン解析 – ハードウェアによって制限されるパフォーマンスの上限に対して、制限の主な要因 (メモリー帯域幅や計算能力) を検証し実際のパフォーマンスを可視化するのを支援します。ルーフライン解析を実行すると、インテル® Advisor は次のことを行います。
- サーベイ解析を実行して、マシンのハードウェアの制限を測定し、ループ/関数のタイミングを収集します。
- トリップカウントと FLOP 解析を実行して、浮動小数点と整数操作のデータおよびメモリーデータを収集します。
ルーフライン解析の実行
[ベクトル化ワークフロー] の [ルーフライン] にある をクリックして、ターゲット・アプリケーションを実行します。完了すると、インテル® Advisor は [ルーフライン] グラフを表示します。
注: Visual Studio* IDE に [ワークフロー] が表示されない場合、インテル® Advisor ツールバーの アイコンをクリックします。
ルーフライン・グラフについて
[ルーフライン] グラフは、マシンの達成可能な最大パフォーマンスに対して、アプリケーションのパフォーマンスと演算強度を表示します。
- 演算強度 (x 軸) – CPU/VPU とメモリー間で転送された、ループ/関数アルゴリズムに基づく 1 バイトあたりの浮動小数点操作 (FLOP) の数、または 1 バイトあたりの整数操作 (INTOP) の数です。
- パフォーマンス (y 軸) – 1 秒あたりのギガ単位の浮動小数点操作の数 (GFLOPS)、または 1 秒あたりのギガ単位の整数操作の数 (GINTOPS) です。
一般に次のことが言えます。
- [ルーフライン] グラフのドットの大きさと色は、各ループ/関数の相対的な実行時間を示します。大きな赤いドットは最も時間を消費しているため、最適化の最良の候補となります。小さな緑のドットは消費時間が少ないため、最適化する必要はないと考えられます。
- [ルーフライン] グラフの斜線は、最適化なしではループ/関数がパフォーマンスを向上できない、メモリー帯域幅の上限を示します。例えば、[L1 帯域幅] ルーフラインは、ループが常に L1 キャッシュにヒットする場合に、特定の演算強度で実行可能な最大ワーク量を示します。データセットによりループが頻繁に L1 キャッシュをミスする場合、ループは高速な L1 の恩恵を受けられず、実際にヒットする速度が遅い L2 キャッシュの制限を受けます。そのため、L1 キャッシュを頻繁にミスし、L2 キャッシュにヒットするループを示すドットは、[L2 帯域幅] ルーフライン下に表示されます。
- [ルーフライン] グラフの水平線は、最適化なしではループ/関数がパフォーマンスを向上できない、計算能力の上限を示します。例えば、[スカラー加算ピーク] は、これらの状況下でスカラーループが実行可能な加算命令のピーク数を示します。[ベクトル加算ピーク] は、これらの状況下でベクトル化されたループが実行可能な加算命令のピーク数を示します。ループがベクトル化されていない場合、ループを示すドットは [スカラー加算ピーク] ルーフラインの下に表示されます。
- 最上位のルーフラインはマシンの最大能力を示すため、ドットがこれらのルーフラインを超えることはありません。しかし、すべてのループがマシンの最大能力を活用できるわけではありません。
- ドットと達成可能な最上位のルーフとの距離が遠いほど、パフォーマンス向上の可能性は高くなります。
次にすることは?
すべてのループが適切にベクトル化され、パフォーマンスの目標に到達したら、作業完了です。
いくつかのループがベクトル化されず、パフォーマンス目標に到達していない場合は、以下を考慮してください。
[ルーフライン] グラフの表示を解釈するため、関連するインテル® Advisor のビューを参照します。例えば、[サーベイサポート] の [ベクトル化されたループ/効率] または [コード解析] タブのデータを確認します。
インテル® Advisor のさまざまな機能を使用してアプリケーションのパフォーマンスを向上させます。
- [パフォーマンスの問題] カラムと関連する [推奨事項] タブの情報。
- [ベクトル化できない理由] カラムと関連する [ベクトル化できない理由] タブの情報。
- インテル® Advisor のヘルプの「次のステップ: サーベイ解析を実行した後にすべきことは?」の推奨事項。
さらに詳しい情報が必要であれば、次の調査を続行します。
- カラムで、より詳細に解析するためループ/関数をマーク (選択) します。
- さらに、コンパイラーが依存関係を仮定しループ/関数をベクトル化しなかった理由を調査するため依存関係解析を実行し、コストの高いメモリー命令を特定するためメモリー・アクセス・パターン (MAP) 解析を実行します。
ベクトル化が最も有効な場所の特定
このセクションでは、インテル® Advisor のサーベイ解析の使用方法を説明します。この単一解析のベクトル化アドバイザー・ワークフローを使用する利点は、実行時のオーバーヘッドが低いことです。意思決定には必要なデータを収集するには、ほかのワークフローを使用してさらに調査すべきです。
サーベイレポート – ベクトル化により最も利点が得られる場所、ベクトル化されたループにより利点が得られるかどうかと利点が得られない場合はその理由、ベクトル化できなかったループとその理由、そして一般的なパフォーマンスの問題を示す、統合されたコンパイラーの最適化レポートとパフォーマンス・データを提供します。
サーベイ解析の実行
アプリケーション実行中にサーベイデータを収集するには、[ベクトル化ワークフロー] の [サーベイターゲット] にある、 をクリックします。完了するとインテル® Advisor は [サーベイレポート] を表示します。
注: Visual Studio* IDE に [ワークフロー] が表示されない場合、インテル® Advisor ツールバーの アイコンをクリックします。
次にすることは?
すべてのループが適切にベクトル化され、パフォーマンスの目標を達成したら、作業完了です。
いくつかのループがベクトル化されず、パフォーマンス目標に到達していない場合は、以下を考慮してください。
- インテル® Advisor のさまざまな機能を使用してアプリケーションのパフォーマンスを向上させます。
- [パフォーマンスの問題] カラムと関連する [推奨事項] タブの情報。
- インテル® Advisor のヘルプの「次のステップ: サーベイ解析を実行した後にすべきことは?」の推奨事項。
- さらに詳しく調査するオプションの依存関係とメモリー・アクセス・パターン (MAP) 解析。
変更したコードをリビルドします。
すべてのループが適切にベクトル化され、パフォーマンス目標に到達したことを検証するため、サーベイ解析を再度実行します。
スレッド化のプロトタイプの作成
このセクションでは、スレッド化アドバイザーの使用方法を説明します。複数の解析を実行するこのスレッド化アドバイザー・ワークフローを使用する利点は、モデル化と対応するデータ共有の問題を予測できることです。しかし、これらの解析では中から高い実行オーバーヘッドが生じます。
サーベイ解析の実行
アプリケーション実行中にサーベイデータを収集するには、[スレッド化ワークフロー] の [サーベイターゲット] にある、 をクリックします。結果を基に、スレッドを使用した並列化の候補を見つけます。
注: Visual Studio* IDE に [ワークフロー] が表示されない場合、インテル® Advisor ツールバーの アイコンをクリックします。
ソースにアノテーションを挿入
スレッドによる並列実行を可能にする並列フレームワークと置き換え可能な候補となる場所にアノテーション・マークを挿入します。
インテル® Advisor の主なアノテーション・タイプは以下の場所をマークします。
- 並列サイト。並列サイトとは、ワークを分散するため 1 つ以上の並列スレッドで並列に実行する可能性があるタスクを 1 つ以上含むコード領域です。効果的な並列サイトは、一般にアプリケーションの実行時間を消費するホットスポットを含んでいます。頻繁に実行される命令を同時に実行できる異なるタスクに分散する場合、最良の並列サイトは通常ホットスポットではなく、呼び出しツリーの上位にあります。
- 並列サイト内の 1 つ以上の並列タスク。タスクとは、ワークを分散するため 1 つ以上の並列スレッドで実行できる、データを含む多くの実行時間を消費するコード領域です。
- 同期ロック。並列アプリケーションでデータへの相互排他アクセスが必要な場所を示します。
スータビリティー解析の実行
アプリケーション実行中にスータビリティー・データを収集するには、[スレッド化ワークフロー] の [スータビリティーの確認] にある、 をクリックします。
[スータビリティー・レポート] は、挿入されたアノテーションと次のようなモデル化パラメーターに基づいて、アプリケーションの最大スピードアップを予測します。
- 異なるハードウェアと並列フレームワーク
- 異なるトリップカウントと実行時間
- 並列フレームワークのコードをアプリケーションに実装する際の、並列化のオーバーヘッド、ロックの競合、またはタスクのチャンクに関連した対応
結果を基に、スレッド並列処理の最良の候補を見つけます。
依存関係解析の実行
アプリケーション実行中に依存関係データを取得するには、[スレッド化ワークフロー] の [依存関係の確認] にある、 をクリックします。予測される最大スピードアップによって労力を正当化できる場合、この結果情報を基にデータ共有の問題を解決します。
次にすることは?
予測される最大スピードアップによってアプリケーションをスレッド化する労力を正当化できる場合、次の作業を行います。
- 提案された並列化の変更に関して、開発者/設計者による設計とコードレビューを行います。
- インテル® スレッディング・ビルディング・ブロック (インテル® TBB)、OpenMP*、Microsoft* タスク並列ライブラリー (TPL) など、アプリケーションの並列プログラミング・フレームワーク (スレッド化モデル) を選択します。
- ビルド環境に並列フレームワークを追加します。
- 共有データリソースへのアクセスを同期するため、インテル® TBB や OpenMP* ロックなどの並列フレームワークのコードを追加します。
- 並列タスクを生成する並列フレームワーク・コードを追加します。
選択した並列フレームワークから適切な並列コードを追加したら、インテル® Advisor のアノテーションは、コメントアウト、置換、またはそのままにすることができます。
参考資料
リソース |
説明 |
---|---|
オンラインリソース |
インテルのドキュメント検索 (英語) インテル® Advisor 2020 ユーザーガイド – コマンドラインの使い方、解析タイプの詳細情報、GUI の使用法などについてはこのガイドを参照してください。 ベータ版インテル® Advisor ユーザーガイド (英語) – パフォーマンス予測によって期待できる出力ファイルとメトリックの詳細説明、コマンドラインの使い方に関する追加情報などについては、このガイドを参照してください。 インテル® Advisor: 現代のハードウェア向けのコード最適化 インテル® Advisor リリースノートと新機能 (英語) フローグラフ・アナライザー・ユーザー・ガイド – インテル® Advisor に同梱される “フローグラフ・アナライザー” は、インテル® スレッディング・ビルディング・ブロック (インテル® TBB) のフローグラフ・インターフェイスを使用するアプリケーションを構築、解析、および可視化するグラフィカル・ツールです。 |
オフラインリソース |
ベクトル化アドバイザーの機能の 1 つに、コード固有のベクトル化の問題を修正する方法を示す GUI 組込みのアドバイスがあります。GUI のアドバイスで示される引数などをすぐに参照できるよう、インテル® Advisor はオフラインのインテル® コンパイラーのミニガイドを用意しています。また、ミニガイドと同じ場所には「オフラインの推奨事項」と「コンパイラー診断の詳細」を提供するアドバイス・ライブラリーも用意されています。これらの HTML ファイルに含まれる問題と推奨は、展開/折りたたむことができます。 Linux*: オフラインのドキュメントは、<advisor-install-dir>/documentation/<locale>/ へインストールされます。 <advisor-install-dir> と <parallel-studio-install-dir> では、デフォルトのインストール・パスは次のようになります。
<oneapi-install-dir> では、デフォルトのインストール・パスは次のようになります。
Windows*: オフラインのドキュメントは、<advisor-install-dir>/documentation/<locale>/ へインストールされます。 デフォルトのインストール・パスは次のようになります。
|
注: ドキュメントを表示する際に、次のような問題が発生することがあります。
- Microsoft* Windows Server* 2012 システム: 信頼済みサイトの警告が表示される。解析策: [ツール] > [インターネット オプション] > [セキュリティ] タブで、[信頼済みサイト] のリストに about:internet を追加します。追加した項目は、ドキュメントを確認後に削除できます。
- Microsoft* Internet Explorer* 11 ブラウザー: [目次] ペインで項目を選択しても内容が表示されない。解析策: [ツール] > [インターネット オプション] > [セキュリティ] タブで、[信頼済みサイト] のリストに http://localhost を追加します。追加した項目は、ドキュメントを確認後に削除できます。
- Microsoft Edge* ブラウザー:
- 状況依存ヘルプの呼び出し (F1 キーなど) で、対応する特定のトピックの代わりにドキュメントのタイトルページが開く。解析策: 別のブラウザーを使用してください。
- ペインの一部しか表示されず、適切なスタイルシートが適用されていない。解析策: 別のブラウザーを使用してください。
著作権と商標について
インテル® テクノロジーの機能と利点はシステム構成によって異なり、対応するハードウェアやソフトウェア、またはサービスの有効化が必要となる場合があります。
絶対的なセキュリティーを提供できる製品またはコンポーネントはありません。
実際のコストと結果はシステム構成によって異なります。
本資料は、(明示されているか否かにかかわらず、また禁反言によるとよらずにかかわらず) いかなる知的財産権のライセンスも許諾するものではありません。
本資料で説明されている製品には、エラッタと呼ばれる設計上の不具合が含まれている可能性があり、公表されている仕様とは異なる動作をする場合があります。現在確認済みのエラッタについては、インテルまでお問い合わせください。
インテルは、明示されているか否かにかかわらず、いかなる保証もいたしません。ここにいう保証には、商品適格性、特定目的への適合性、および非侵害性の黙示の保証、ならびに履行の過程、取引の過程、または取引での使用から生じるあらゆる保証を含みますが、これらに限定されるわけではありません。
© Intel Corporation. Intel、インテル、Intel ロゴは、アメリカ合衆国およびその他の国における Intel Corporation またはその子会社の商標です。
Microsoft および Windows は、米国 Microsoft Corporation の、米国およびその他の国における登録商標または商標です。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。