select

(ファイルと行番号で) ループを選択してさらに詳しく解析します。

GUI オプション

特定のループ/関数を選択します: [Vectorization and Code Insights (ベクトル化とコードの調査)] > [Survey & Roofline (サーベイとルーフライン)] >

オフロードのモデル化のマークアップを使用してループ/関数を選択するには、次の操作を行います。[Offload Modeling (オフロードのモデル化)] > [Analysis Workflow (解析ワークフロー)] > [Dependencies (依存関係)] > [Markup type (マークアップタイプ)]

構文

--select=<string>

引数

<string> は、カンマ区切りのファイル名と行番号、ループ ID、または [(r|recursive):]<id>|<file>:<line>|<criteria>[,<id>|<file>:<line>|<criteria>,..] 形式のリストです。Addr:(またはrecursive) プリフィクスを追加して、基準、ソースの場所、または ID で選択された視点から始まるコールツリー内のすべてのループを選択します。<criteria> は次のいずれかです。

基準 (criteria)

説明

scalar

スカラーのシリアルループのみを含めます。

total-time>N

合計 CPU 時間の N% を超えるループのみを含めます。

has-source

ソースの場所がないループを除外します。

has-issue

ベクトルの依存関係はベクトル化を妨げる または 非効率なメモリー・アクセス・パターンの可能性 の問題があるループを含めます。

loop-height=N

特定の階層位置のループを含めます。0 = 最内のループ。

markup=name

事前定義されたマークアップ・アルゴリズムを使用してループを選択します。次のアルゴリズムがサポートされます。

  • gpu_generic- GPU で実行されるループを選択します。

  • omp- OpenMP* ループを選択します。

  • icpx -fsycl- SYCL* ループを選択します。

  • ocl- OpenCL* ループを選択します。

  • daal- インテル® oneAPI データ・アナリティクス・ライブラリーのループを選択します。

  • tbb- インテル® oneAPI スレッディング・ビルディング・ブロックのループを選択します。

デフォルト

デフォルトの引数はありません。

影響するアクション

collect

mark-up-loops

--collect=projection アクションを使用すると、select オプションはループ/関数 ID およびソースの場所 (<file-name>:<line> 形式) のみを受け入れます。

使用法

AND 論理+を使用して組み合わせることもできます。例えば、--select=scalar+has-source を使用して、ソースの場所を持つすべてのスカラーループを選択します。

注目する対象のループを選択すると収集のオーバーヘッドを減らすことができます。

mark-up-loops アクションと mark-up-list アクションオプションを混同しないでください。mark-up-loops アクションと select アクションオプションを組み合わせると、GUI チェックボックスが有効になります; ループの選択は、mark-up-loops アクションの期間を超えて持続し、依存関係やメモリー・アクセス・パターン解析などの解析に適用されます。mark-up-list アクションオプションと組み合わせた collect アクションは、GUI チェックボックスの有効化をシミュレートします; ループの選択は collect アクションの間にのみ持続します。

  1. 注目するループを特定するためサーベイ解析を実行します。

  2. そして、詳しく解析を行うループを選択します。

advisor --collect=survey --project-dir=./advi_results -- ./myApplication advisor --mark-up-loops --select=foo.cpp:34,bar.cpp:192 --project-dir=./advi_results -- ./myApplication

関連情報