リンクを取得
|
TOC を同期
|
<<
|
>>
検索オプション:
タイトルのみ検索
すべての単語に一致
完全一致
結果をツリー表示
インテル® Advisor ユーザーガイド
はじめに
設計と最適化の方法論
チュートリアル
製品情報ウェブサイトとサポート
インテル® Advisor のインストールと起動
インテル® Advisor のインストール
環境変数の設定
GPU カーネル解析向けにシステムを設定
SYCL*、OpenMP* target および OpenCL* アプリケーションを CPU にオフロードする環境設定
インテル® Advisor の起動
GUI ナビゲーションのクイックスタート
プロジェクトの設定
ターゲット・アプリケーションの設定
並列フレームワークで使用するスレッド数の制限
小さく典型的なデータセットを選択
ターゲット・アプリケーションのビルド
プロジェクトの作成
プロジェクトの設定
バイナリー/シンボル検索ディレクトリーの設定
ソース検索ディレクトリーの設定
バイナリー/シンボル検索とソース検索の場所
ベクトル化パースペクティブ解析
GUI からベクトル化とコードの調査パースペクティブを実行
事前定義されたベクトル化の精度
ベクトル化とコードの調査パースペクティブをカスタマイズ
コマンドライン からベクトル化とコードの調査パースペクティブを実行
コマンドラインでのベクトル化精度レベル
ベクトル化とコード調査の結果を検証
ベクトル化レポートの概要
ベクトル化できないループとベクトル化されていないループを調査
ループの呼び出しカウントを解析
メモリー使用とトラフィックを調査
データ依存関係の検出
CPU ルーフライン解析
GUI から CPU / メモリー・ルーフラインの調査パースペクティブを実行
事前定義された CPU ルーフライン精度
CPU / メモリー・ルーフラインの調査パースペクティブのカスタマイズ
コマンドライン から CPU / メモリー・ルーフラインの調査パースペクティブを実行
コマンドラインでの CPU ルーフラインの精度レベル
CPU / メモリー・ルーフライン結果の調査
CPU ルーフライン・レポートの概要
CPU ルーフライン・グラフのボトルネックを調査
メモリーレベル間の関係を調査
CPU ルーフライン結果の比較
スレッド化モデルの設計
GUI からスレッド化パースペクティブを実行
スレッド化パースペクティブをカスタマイズ
コマンドラインからスレッド化パースペクティブを実行
コマンドラインでのスレッド化精度レベル
詳細な解析のためコードをアノテートする
並列処理をモデル化するためコードをアノテート
詳細な解析のためコードをアノテートする前に
アムダールの法則を使用してプログラムを測定
タスクの構成とアノテーション
並列サイトとタスクのアノテーション
タスクパターン
複数の並列サイト
データとタスク並列処理
タスクの混在と対応付け
タスクの選択
タスクの相互作用とスータビリティー
適切なタスクの大きさ
インテル® Advisor で部分的に並列化されたプログラムを解析
アノテーション
アノテーション・タイプ
アノテーション・タイプのサマリー
アノテーションの一般特性
単一タスクの単純なループ向けのサイトとタスクのアノテーション
複数タスクの並列サイト向けのサイトとタスクのアノテーション
ロック・アノテーション
収集のポーズと再開アノテーション
特殊なアノテーション
アノテーション定義ファイル
アノテーション定義ディレクトリーの参照
C/C++ ソースにアノテーション・ヘッダー・ファイルをインクルード
ソースコードにアノテーションを追加
[アノテーション・アシスタント] ペインを使用してアノテーションとビルド設定をコピー
テキストエディターでアノテーションを挿入
C/C++ プラグマとアノテーションを使用するヒント
advisor-annotate.h の拡張機能を制御
advisor-annotate.h を追加した後のコンパイルの問題を解決
アノテーション・レポート
アノテーション・レポート、ストレージの明確な記述
アノテーション・レポート、領域の観測を無効にする行
アノテーション・レポート、収集ポーズ
アノテーション・レポート、帰納式
アノテーション・レポート、ロック
アノテーション・レポート、使用行の観察
アノテーション・レポート、リダクション行
アノテーション・レポート、領域の終わりの観測を再度有効にする
アノテーション・レポート、収集再開
アノテーション・レポート、サイト
アノテーション・レポート、タスク
アノテーション・レポート、ユーザー・メモリー・アロケーターの使用行
アノテーション・レポート、ユーザー・メモリー・デアロケーターの使用行
スレッド化の結果を検証
スレッド並列処理をモデル化
スータビリティー・レポートの概要
スータビリティー・レポートのモデル化パラメーターを選択
スータビリティー・ツールで検出されたアノテーション関連のエラーを解決
高度なモデル化のオプション
並列オーバーヘッドとロック競合の軽減、およびチャンク化
サイトのオーバーヘッドを軽減
タスクのオーバーヘッドを軽減
ロックのオーバーヘッドを軽減
ロック競合の軽減
タスクのチャンク化
依存関係の問題を確認
[コードの場所] ペイン
[フィルター] ペイン (依存関係レポート)
[問題とメッセージ] ペイン
[依存関係] ソースウィンドウ
[コードの場所] ペイン
[注目するコードの場所] ペイン
[注目するコードの場所] の [コールスタック] ペイン
[関連するコードの場所] ペイン
[関連するコードの場所] の [コールスタック] ペイン
[関係ダイアグラム] ペイン
プログラムに並列処理を追加する
並列処理を追加する前に: 並列フレームワークを選択
並列フレームワーク
インテル® oneAPI スレッディング・ビルディング・ブロック (インテル® oneTBB)
OpenMP*
Microsoft* タスク並列ライブラリー (TPL)
その他の並列フレームワーク
ビルド環境に並列フレームワークを追加
ビルド環境でインテル® oneAPI スレッディング・ビルディング・ブロック (oneTBB) を有効にする
TBBROOT 環境変数を定義する
インテル® oneAPI スレッディング・ビルディング・ブロック (oneTBB) でサポートされる C++11 のラムダ式を有効にする
ビルド環境で OpenMP* を有効にする
アノテーション・レポート
アノテーション・レポートの概要
アノテーションとアノテーション・レポートの場所ウインドウ
アノテーションをインテル® oneAPI スレッディング・ビルディング・ブロック (oneTBB) コードに置き換える
インテル® oneAPI スレッディング・ビルディング・ブロック (oneTBB) ミューテックス
インテル® oneAPI スレッディング・ビルディング・ブロック (oneTBB) 簡単なミューテックスの例
インテル® oneAPI スレッディング・ビルディング・ブロック (oneTBB) 同期コードのテスト
機能の並列化 - インテル® oneAPI スレッディング・ビルディング・ブロック (oneTBB) タスク
データの並列処理 - インテル® oneAPI スレッディング・ビルディング・ブロック (oneTBB) のカウント付きループ
データの並列処理 - インテル® oneAPI スレッディング・ビルディング・ブロック (oneTBB) の複雑な反復制御のループ
アノテーションを OpenMP* コードに置き換える
共有リソースを同期するため OpenMP* コードを追加する
OpenMP* クリティカル・セクション
基本的な OpenMP* の atomic 操作
高度な OpenMP* の atomic 操作
OpenMP* のリダクション操作
OpenMP* のロック
OpenMP* 同期コードをテストする
関数の並列化 - OpenMP* タスク
データ並列処理 - OpenMP* ループ (カウント付き)
データ並列処理 - OpenMP* ループ (複雑な反復制御)
並列プログラムのための次のステップ
インテル® Inspector とインテル® VTune™ プロファイラーを使用する
並列プログラムのデバッグ
GPU へのオフロードをモデル化
GUI からオフロードのモデル化パースペクティブを実行
事前定義されたオフロードのモデル化の精度
オフロードのモデル化パースペクティブをカスタム
コマンドラインからオフロードのモデル化パースペクティブを実行
コマンドラインでのオフロードのモデル化精度レベル
コマンドラインから GPU 間のパフォーマンスのモデル化を実行
オフロードのモデル化の結果を調査
オフロードのモデル化レポートの概要
オフロードが推奨される領域を調査
モデル化された領域のデータ転送を調査
依存関係の問題を確認
GPU - GPU 間のモデル化によるパフォーマンス・ゲインを調査
オフロードされないコード領域を調査
高度なモデル化の設定
カスタムターゲット GPU デバイスでのアプリケーションのパフォーマンスをモデル化
想定される依存関係がモデル化に影響するか確認
起動のコストを管理
特定のループのオフロードを強制
GPU ルーフライン解析
埋め込みヘルプのテストトピック
GUI から GPU ルーフラインの調査パースペクティブを実行
事前定義された GPU ルーフライン精度
GPU ルーフラインの調査パースペクティブのカスタマイズ
コマンドラインから GPU ルーフラインの調査パースペクティブを実行
コマンドラインでのオフロードのモデル化精度レベル
GPU ルーフライン結果の調査
GPU ルーフラインのサマリーを調査
GPU ルーフライン・グラフのボトルネックを調査
カーネルの詳細を調査
GPU ルーフライン結果の比較
フローグラフの設計と解析
フローグラフ・アナライザーの場所
フローグラフ・アナライザーの起動
フローグラフ・アナライザー GUI 概要
メニュー
ツールバー
タブ
メインキャンバス
グラフ
フローグラフ・アナライザーのワークフロー
設計者ワークフロー
ノード、エッジ、およびポートの追加
ノードのプロパティーを修正
エッジのプロパティーを表示
グラフの評価
グラフをファイルへ保存
C++ スタブの生成
環境設定 (Preferences)
スケーラビリティー解析
グラフのアクティブ化
スケーラビリティー 解析の要件
同時実行指定を設定
データカウントの設定
ノード加重の設定
スケーラビリティー解析の実行
並行ノードで並列処理を調査
シリアルノードの非並行性を表示
グラフのトポロジーによってもたらされる並列処理を調査
解析で表示されるカラーコードについて
アプリケーションからトレースファイルを収集
トレース収集向けにアプリケーションをビルド
Windows* でアプリケーションをビルド
Linux* でアプリケーションをビルド
macOS* でアプリケーションをビルド
トレースファイルの収集
フローグラフ・アナライザーの GUI でトレース収集
フローグラフ・アナライザーの GUI 外部でトレースを収集
fgtrun スクリプトでトレースファイルを収集
fgtrun スクリプトを使用せずトレースファイルを収集
フローグラフ・アナライザーの入れ子になった並列処理
アナライザーのワークフロー
同時実行性の低い時間領域とその原因を特定
クリティカル・パスを検索
持続時間が短いタスクを検索
軽量なポリシーを使用してスケジュラーのオーバーヘッドを軽減
共通の入力で動作するタスクの特定
SYCL* のサポート
SYCL* アプリケーションのトレースを収集
SYCL* アプリケーションのグラフを調査
[ホットスポット] ビュー
データ並列構造のパフォーマンスの非効率性を表示
スタック規則チェックエンジンを使用して問題を検出
問題: バッファーを初期化するためホストポインターへの const 参照
問題: ループで使用されるホスト・ポインター・アクセサー
問題: 非効率なデータ並列構造
OpenMP* アプリケーションの実験的サポート
OpenMP* アプリケーションのトレースを収集
スレッドごとのタスクビューの OpenMP* 構造
グラフキャンバスの OpenMP* 構造
サンプルのトレースファイル
code_generation サンプル
performance_analysis サンプル
関連情報
解析のオーバーヘッドを最小化
解析のオーバーヘッドを最小化する収集のコントロール
解析のオーバーヘッドを最小化するループのマーク
解析のオーバーヘッドを最小化するフィルター処理を行う
解析のオーバーヘッドを最小化する実行速度/持続時間/範囲のプロパティー
解析のオーバーヘッドを最小化する手法
MPI アプリケーションを解析
GPU で MPI アプリケーションのパフォーマンスをモデル化
MPI_Pcontrol 関数を使用して収集を制御
結果を管理
結果を開く
既存の結果の名前変更
結果を削除する
指定する場所へ結果を保存する
スタンドアロン HTML レポートを使用する
読み取り専用の結果スナップショットを作成
[結果スナップショットを作成] ダイアログボックス
コマンドライン・インターフェイス
advisor コマンドライン・インターフェイスのリファレンス
advisor コマンドアクションのリファレンス
collect
command
create-project
help
import-dir
mark-up-loops
report
snapshot
version
workflow
advisor コマンドオプションのリファレンス
accuracy
append
app-working-dir
assume-dependencies
assume-hide-taxes
assume-ndim-dependency
assume-single-data-transfer
auto-finalize
batching
benchmarks-sync
bottom-up
cache-binaries
cache-binaries-mode
cache-config
cache-simulation
cache-sources
cachesim
cachesim-associativity
cachesim-cacheline-size
cachesim-mode
cachesim-sampling-factor
cachesim-sets
check-profitability
clear
config
count-logical-instructions
count-memory-instructions
count-memory-objects-accesses
count-mov-instructions
count-send-latency
cpu-scale-factor
csv-delimiter
custom-config
data-limit
data-reuse-analysis
data-transfer
data-transfer-histogram
data-transfer-page-size
data-type
delete-tripcounts
disable-fp64-math-optimization
display-callstack
dry-run
duration
dynamic
enable-cache-simulation
enable-data-transfer-analysis
enable-task-chunking
enforce-baseline-decomposition
enforce-fallback
enforce-offloads
estimate-max-speedup
evaluate-min-speedup
exclude-files
executable-of-interest
project-dir
filter
filter-by-scope
filter-reductions
flop
force-32bit-arithmetics
force-64bit-arithmetics
format
gpu
gpu-carm
gpu-kernel-of-interest
gpu-kernel-matching-mode
gpu-sampling-interval
hide-data-transfer-tax
ignore
ignore-app-mismatch
ignore-checksums
instance-of-interest
integrated
interval
limit
loop-call-count-limit
loop-filter-threshold
loops
mark-up
mark-up-list
memory-level
memory-operation-type
mix
mkl-user-mode
model-baseline-gpu
model-children
model-extended-math
model-system-calls
module-filter
module-filter-mode
mpi-rank
mrte-mode
ndim-depth-limit
option-file
overlap-taxes
pack
profile-gpu
profile-intel-perf-libs
profile-jit
profile-python
profile-stripped-binaries
project-dir
quiet
recalculate-time
record-mem-allocations
record-stack-frame
reduce-lock-contention
reduce-lock-overhead
reduce-site-overhead
reduce-task-overhead
refinalize-survey
remove
report-output
report-template
result-dir
resume-after
return-app-exitcode
search-dir
search-n-dim
select
set-dependency
set-parallel
set-parameter
show-all-columns
show-all-rows
show-functions
show-loops
show-not-executed
show-report
small-node-filter
sort-asc
sort-desc
spill-analysis
stack-access-granularity
stack-stitching
stack-unwind-limit
stacks
stackwalk-mode
start-paused
static-instruction-mix
strategy
support-multi-isa-binaries
target-device
target-gpu
target-pid
target-process
target-system
threading-model
threads
top-down
trace-mode
trace-mpi
track-memory-objects
track-stack-accesses
track-stack-variables
trip-counts
verbose
with-stack
オフロードのモデル化コマンドライン・リファレンス
run_oa.py オプション
collect.py オプション
analyze.py オプション
事前定義されたコマンドラインの生成
トラブルシューティング
エラーメッセージ: アプリケーションはシグナル処理に独自のハンドラーを設定しています
エラーメッセージ: 選択された GPU アダプターの GPU ハードウェア・メトリックを収集できません
エラーメッセージ: メモリー・モデル・キャッシュ階層の非互換性
エラーメッセージ: アノテーションが検出できない
エラーメッセージ: データは収集されませんでした
エラーメッセージ: スタックサイズが小さすぎます
エラーメッセージ: dlopen または dlsym へのリンカーの未定義参照
問題: 壊れたコールツリー
問題: コード領域がマークされていません
問題: デバッグ情報が利用できない
問題: データがありません
問題: ソースが利用できない
問題: [トップダウン・ツリー] ウィンドウのスタックが不正確です
問題: サーベイツールがサーベイレポートを表示しない
問題: アノテーションを追加した後の C/C++ コンパイルの予期しないエラーに関するトラブル
問題: 依存関係レポートの予期しないアノテーションの不一致
警告: デバッグビルドの解析
警告: リリースビルドの解析
リファレンス
データ・リファレンス
CPU メトリック
アクセラレーター・メトリック
依存関係の問題とメッセージタイプのリファレンス
ダングリング・ロック
データ通信
データ通信、子タスク
一貫性のないロックの使用
ロック階層違反
メモリー再利用
メモリー再利用、子タスク
メモリー監視
終了サイトがありません
終了タスクがありません
開始サイトがありません
開始タスクがありません
並列サイトにタスクが存在しません
並列サイトに 1 つのタスク
親なしタスク
並列サイト情報
スレッドの情報
未処理のアプリケーション例外
推奨事項リファレンス
C++ 向けのベクトル化推奨事項
Fortran 向けのベクトル化推奨事項
ユーザー・インターフェイスのリファレンス
ダイアログボックス: 対応するコマンドライン
ダイアログボックス: プロジェクトを作成
ダイアログボックス: 結果のスナップショットを作成
ダイアログボックス: オプション - アセンブリー
エディタータブ
ダイアログボックス: オプション - 全般
ダイアログボックス: [オプション] - [結果の場所]
ダイアログボックス: プロジェクトのプロパティー - 解析ターゲット
ダイアログボックス: [プロジェクトのプロパティー] > [バイナリー/シンボル検索]
ダイアログボックス: [プロジェクトのプロパティー] > [ソース検索]
ペイン: 詳細表示
ペイン: 解析ワークフロー
ペイン: ルーフライン・グラフ
ペイン: GPU ルーフライン・グラフ
プロジェクト・ナビゲーター・ペイン
ツールバー: インテル® Advisor
アノテーション・レポート
ウィンドウ: 依存関係ソース
ウィンドウ: GPU ルーフライン領域
ウィンドウ: GPU ルーフラインの調査サマリー
ウィンドウ: メモリー・アクセス・パターン (MAP) のソース
ウィンドウ: オフロードのモデル化サマリー
ウィンドウ: オフロードのモデル化レポート - アクセラレートされた領域
ウィンドウ: パースペクティブ・セレクター
ウィンドウ: リファインメント・レポート
タブ: 依存関係レポート
タブ: メモリー・アクセス・パターン・レポート
ウィンドウ: スータビリティー・レポート
ウィンドウ: スータビリティー・ソース
ウィンドウ: サーベイレポート
ウィンドウ: サーベイソース
ウィンドウ: スレッド化サマリー
ウィンドウ: ベクトル化のサマリー
付録
データ共有問題
データ共有問題のタイプ
偶発的な共有
独立した更新
問題解決の方針
偶発的な共有の排除
タスクの静的および動的範囲を調査
偶発的な共有問題の有無を確認
プライベート・メモリー位置の作成
ポインターの逆参照
独立した更新の同期
同期
明示的なロック
トランザクションにロックを割り当て
同期を使用する落とし穴
困難な問題: 異なるタスクのセットを選択
複数の並列サイトによって使用されるコードの問題を解決
ポインターを介してアクセスされるメモリー
表記規則
主要な概念
用語集
並列処理
並列処理の用語
並列処理の追加
並列処理を行う際の一般的な課題
並列プログラミング実装
参考資料