基本データを収集し、マークして、リファインメント・データを収集します。次に、プロファイル・データの解析を行います。このスクリプトは、collect.py と analyze.py を組み合わせたものです。
advisor-python <APM>/run_oa.py <project-dir> [--options] -- <target> [target-options]
次の表は run_oa.py スクリプトで使用できるオプションです。解析するターゲット・アプリケーションおよびアプリケーションにオプションがある場合、その前に 2 つのハイフンとスペース 1 つを追加し、コマンドの最後に配置する必要があります。
オプション |
説明 |
|---|---|
<project-dir> |
必須です。インテル® Advisor のプロジェクト・ディレクトリーへのパスを指定します。 |
-h --help |
すべてのスクリプトのオプションを表示. |
-v <verbose> --verbose <verbose> |
出力の詳細レベルを指定します。
注このオプションは、コンソール出力に影響しますが、通常のログとレポートの結果には影響しません。 |
--assume-dependencies (デフォルト) | --no-assume-dependencies |
ループのタイプが不明である場合、ループに依存関係があると想定されます。無効にすると、ループの依存関係タイプが不明 (unknown) である場合、ループには依存関係がないと想定されます。 |
--assume-hide-taxes [<loop-id> | <file-name>:<line-number>] |
楽観的なアプローチにより呼び出しコストを見積もります。最初の呼び出しコストを除くすべての呼び出しコストを非表示にします。 コストを非表示にするループ ID とソースの場所を、カンマで区切ったリストで指定できます。リストを指定しないとすべてのループのコストは非表示になります。 |
--assume-never-hide-taxes (デフォルト) |
悲観的なアプローチにより呼び出しコストを見積もります。呼び出しコストを非表示にしません。 |
--assume-parallel | --no-assume-parallel (デフォルト) |
ループのタイプが不明である場合、並列ループであると想定されます。 |
--check-profitability (デフォルト) | --no-check-profitability |
オフロード領域のゲインを確認します。スピード向上の恩恵が得られる領域のみがレポートに追加されます。 無効にすると、特定の領域のオフロードの収益性に関わりなく、評価されたすべての領域がレポートに追加されます。 |
-c {basic, refinement, full} --collect {basic, refinement, full} |
アプリケーションで収集するデータタイプを指定します。
注--collect full の場合は、必ず --data-reuse-analysis と --track-memory-objects を使用します。--collect basic の場合は、必ず --track-memory-objects を使用します。 |
--config <config> |
絶対パスまたは名前で設定ファイルを指定します。後者を選択した場合、モデル設定ディレクトリーで最初にファイルが検索され、次に現在のディレクトリーが検索されます。 次のデバイス構成が利用できます。Xehpg_512xve (デフォルト)、xehpg_256xve、gen12_tgl、gen12_dg1。 注オプションを複数回指定して、複数の構成を指定できます。 |
--cpu-scale-factor <integer> |
元の CPU よりも指定された値だけ高速なホスト CPU を推測します。 元の CPU 時間はすべてスケール係数で除算されます。 |
--data-reuse-analysis (デフォルト) | --no-data-reuse-analysis |
オフロード領域間でのデータの再利用を推測します。無効にするとオーバーヘッドを減らすことができます。 重要--collect full とともに使用します。 |
--data-transfer (デフォルト) | --no-data-transfer |
データ転送を解析します。 注無効にするとオーバーヘッドを減らすことができます。 |
--dry-run |
指定された構成に対応する advisor のインテル® Advisor CLI コマンドを表示します。実際の収集は行われません。 |
--enable-batching | --disable-batching (デフォルト) |
上位レベルオフロードのジョブバッチを有効にします。複数インスタンスの同時実行をエミュレートします。 |
--enable-edram |
メモリー階層モデルで eDRAM のモデル化を有効にします。 |
--enable-slm |
メモリー階層モデルで SLM によるモデル化を有効にします。collect.py と analyze.py の両方を使用します。 |
--exclude-from-report <items-to-exclude> |
レポートから除外する項目を指定します。利用可能な項目は以下です。memory_objects、sources、call_graph、dependencies、strides。 デフォルトでは、次の項目をレポートから除外できます。
例えば、大量のメモリー・オブジェクトやソースが含まれるため、レポートが重くなりブラウザーで開くのに時間がかかる場合は、このオプションを使用します。 注このオプションは、HTML レポートに表示されるデータにのみ影響し、データ収集には影響しません。 |
--executable-of-interest <executable-name> |
実行するアプリケーションと異なる場合、プロファイルする実行形式のプロセス名を指定します。このオプションは、スクリプトまたはその他のバイナリーからアプリケーションが実行される場合に使用します。 注フルパスではなく名前のみを指定します。 |
--flex-cachesim <cache-configuration> |
柔軟性のあるキャッシュ・シミュレーションにより、複数のターゲットデバイスのキャッシュデータをモデル化します。また、データを再収集することなく解析対象のデバイスを変更できます。構成が設定されていないとデフォルトでは、サポートされるすべてのターゲット・プラットフォームのキャッシュデータがシミュレートされます。 <size_of_level1>:<size_of_level2>:<size_of_level3> の形式で、スラッシュで区切ったキャッシュ構成リストを指定できます。各メモリーレベルのサイズには、次の測定単位を使用します。b- バイト、k- キロバイトまたは、m- メガバイト。 例:8k:512k:8m/24k:1m:8m/32k:1536k:8m。 |
--gpu (推奨) | --profile-gpu | --analyze-gpu-kernels-only |
GPU 上で実行されるコア領域のみのパフォーマンスをモデル化します。以下の 3 つのいずれかのオプションを使用します。 注これはプレビュー機能です。--analyze-gpu-kernels-only は非推奨であり、将来のリリースでは削除されます。 |
--ignore <list> |
プログラムごとにスピードアップを計算する際に、ランタイムやライブラリー領域で費やされた時間を無視するには、ランタイムやライブラリーをカンマで区切って指定します。 注これは、個々のオフロードのスピードアップの推測には影響しません。 |
--include-to-report <items-to-include> |
含める項目を次のように指定します。利用可能な項目は以下です。memory_objects、sources、call_graph、dependencies、strides。 デフォルトでは、次の項目をレポートに追加できます。
レポートにさらにデータを追加する、または収集したデータでソースやメモリー・オブジェクトがデータレポートから欠落していることを確認するには、このオプションを使用します。 注このオプションは、HTML レポートに表示されるデータにのみ影響し、データ収集には影響しません。 |
-m [{all, generic, regions, omp, icpx -fsycl, daal, tbb}] --markup [{all, generic, regions, omp, icpx -fsycl, daal, tbb}] |
サーベイまたはその他のデータ収集後にループをマークします。このオプションを使用して与えられたパラメーターに従ってループを選択することで、追加の収集の範囲を制限します。
omp、icpx -fsycl、またはgenericループ選択オプションなしでも対応する収集を実行できるように、プロジェクトでループを選択します。 複数のパラメーターをカンマで区切ってリストで指定できます。ループは指定されたパラメーターのいずれかに一致する場合選択されます。 |
--model-system-calls (デフォルト) | --no-model-system-calls |
システムコールで領域を解析します。領域内にシステムコールがあると、モデル化の精度が低下する可能性があります。 |
--mpi-rank <mpi-rank> |
複数のランクが解析されている場合、対象とする MPI ランクを指定します。 |
--no-cache-sources |
プロジェクトでソースコードのキャッシュ保持を無効にします。 |
--no-cachesim |
収集中のキャッシュ・シミュレーションを無効にします。このモデルは 100% のキャッシュヒット率を想定します。 注使用すると解析のオーバーヘッドを減らすことができます。 |
--no-profile-jit |
JIT 関数の解析を無効にします。 |
--no-stacks |
スタック上のデータ分布を収集せずにデータ収集を実行します。このオプションを使用すると、精度が低下する代わりにオーバーヘッドを減らすことができます。 |
-o <output-dir> --out-dir <output-dir> |
生成されるすべてのファイルを格納するディレクトリーを指定します。デフォルトでは、結果は <advisor-project>/e<NNN>/pp<MMM>/data.0 に保存されます。既存のディレクトリーや絶対パスを指定すると、結果はそのディレクトリーに保存されます。存在しない場合は、新しいディレクトリーが作成されます。 ディレクトリー <name> のみが指定されると、結果は <advisor-project>/perf_models/<name> に保存されます。 注このオプションを使用すると、インテル® Advisor GUI で解析結果を開けなくなる恐れがあります。 |
-p <output-name-prefix> --out-name-prefix <output-name-prefix> |
出力結果ファイル名の先頭に追加する文字列を指定します。 注このオプションを使用すると、インテル® Advisor GUI で解析結果を開けなくなる恐れがあります。 |
--set-parameter <CLI-config> |
変更する構成パラメーターを "<group>.<parameter>=<new-value>」 形式で指定します。例:"min_required_speed_up=0"、"scale.Tiles_per_process=0.5"。このオプションを複数指定して、複数のパラメーターを変更することもできます。 |
--track-heap-objects (デフォルト)| --no-track-heap-objects |
非推奨です。--track-memory-objects を使用します。 |
--track-memory-objects (デフォルト) | --no-track-memory-objects |
ヒープに割り当てられたオブジェクトを、解析中にオブジェクトにアクセスしたループに属性化します。無効にすると解析のオーバーヘッドを減らすことができます。 重要現在、このオプションは解析ステップにのみ影響します。 |
--track-stack-accesses (デフォルト) | --no-track-stack-accesses |
スタックメモリーへのアクセスを追跡します。 重要現在、このオプションは収集には影響しません。 |
デフォルト設定でmyApplicationで完全なデータを収集し、デフォルトの構成で解析を実行して、プロジェクトを ./advi ディレクトリーに保存します。生成された出力は、デフォルトの advi/perf_models/mNNNN ディレクトリーに保存されます。
advisor-python $APM/run_oa.py ./advi_results -- ./myApplicationデフォルト設定でmyApplicationで完全なデータを収集し、デフォルト構成で解析を実行して、プロジェクトを ./advi ディレクトリーに保存し、生成される出力を advi/perf_models/report ディレクトリーに保存します。
advisor-python $APM/run_oa.py ./advi_results --out-dir report -- ./myApplicationSYCL* コード領域のリファインメント・データを収集し、カスタム構成ファイル config.toml を使用して解析を実行してプロジェクトを ./advi ディレクトリーに保存します。生成された出力は、デフォルトの advi/perf_models/mNNNN ディレクトリーに保存されます。
advisor-python $APM/run_oa.py ./advi_results --collect refinement --markup icpx -fsycl --config ./config.toml -- ./myApplication