インテル® MIC アーキテクチャー解析のワークフロー

同カテゴリーの次の記事

解析結果の表示

この記事は、インテル® デベロッパー・ゾーンに公開されている、インテル® VTune™ Amplifier のオンラインヘルプの一部「Intel® Xeon Phi™ Processor (Code Name: Knights Landing) Analysis Workflow」の日本語参考訳です。Windows* 用のヘルプではありますが、その他の OS 環境でも十分ご利用いただけます。また、構成は英語版のヘルプと同じ階層構造にしてあります。


次の図は、インテル® VTune™ Amplifier を使用したインテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャー・ベースのインテル® Xeon Phi™ プロセッサー (開発コード名: Knights Landing) 上で実行されるアプリケーションの解析、またはシステム全体の解析における基本的なワークフローを示しています。セルフブート版のインテル® Xeon Phi™ プロセッサーの Linux* ターゲット上での解析がサポートされます。プロセッサー向けに事前定義された [Advanced Hotspots (高度なホットスポット)]、[Memory Access (メモリーアクセス)]、[General Exploration (一般)]、[HPC Performance Characterization (HPC パフォーマンス特性)] 解析を選択するか、カスタム解析タイプを作成して実行できます。

注:

[Basic Hotspots (基本ホットスポット)]、[Concurrency (並行性)]、[Locks and Waits (ロックと待機)] などのインストルメント・ベースの収集では、ワーカースレッドの数が多いと大幅なオーバーヘッド生じます。アプリケーションのスケーラビリティーを調査するには、基本ホットスポットの代わりに高度なホットスポット、並行性やロックと待機の代わりに HPC パフォーマンス特性を使用してください。

必要条件:

HPC パフォーマンス特性、メモリーアクセス、一般解析、または高度なホットスポットなどのハードウェア・イベントベース・サンプリング収集タイプには、SEP ドライバーをインストール (英語) することを推奨します。SEP ドライバーがインストールされていない場合、インテル® VTune™ Amplifier は (Linux* では) perf を使用します。次のシステム設定に留意してください。

  • システム全体とアンコアイベントの収集を有効にするには、メモリーアクセスと HPC パフォーマンス特性解析タイプの一部である DRAM と MCDRAM メモリー帯域幅の測定を許可します。これには、root または sudo 特権を使用して、/proc/sys/kernel/perf_event_paranoid0 を設定します。
    >echo 0>/proc/sys/kernel/perf_event_paranoid
    
  • 一般解析タイプの収集を有効にするには、オープンされるファイル・ディスクリプター数のデフォルトの上限値を増やします。root または sudo 特権で、/etc/security/limits.conf ファイルのデフォルト値を 100*<論理 CPU コア数> に変更します。
    <user> hard nofile <100 * 論理 CPU コア数>
    <user> soft nofile <100 * 論理 CPU コア数>
    

注:

図で示すワークフローは、解析を素早く行うため推奨される手順です。インテル® Xeon Phi™ プロセッサー上でインテル® VTune™ Amplifier は完全なデータ収集を行うことができますが、ファイナライズと可視化は低速かもしれません。インテル® Xeon Phi™ プロセッサー・ベースのターゲット上でも、通常の解析フローを行うことはできます。詳細については、「スタンドアロン GUI: 基本ワークフロー」をご覧ください。

1. インテル® Xeon Phi™ プロセッサーを搭載するターゲットシステムで解析の設定と実行を行う ターゲットシステムで解析を設定して実行するには 2 つの方法があります。
  • ホストシステム上でファイナライズ (推奨する方法): インテル® Xeon Phi™ プロセッサー・ベースのシステム上では、ファイナライズを行わず解析のみを実行します。この方法では速やかに結果を生成できます。

    コマンドプロンプトから、ファイナライズ遅延オプションを指定してデータの収集を行い、ホストシステムでシンボル解決を行うためバイナリー・チェックサムを計算します。
    例: メモリーアクセス解析の実行: amplxe-cl -collect memory-access -finalization-mode=deferred -r <my_result_dir> ./my_app

    詳細については、「amplxe-cl コマンド構文」 (英語) と「ファイナライズ・モード」 (英語) をご覧ください。

    ヒント:

    次に示すように、インテル® VTune™ Amplifier の GUI を使用して、コマンドラインを生成することができます。コマンドを生成したら、コマンドに -finalization-mode=deferred オプションを追加して、ファイナライズを延期させます。

  • ターゲットシステムでのファイナライズ: ホストシステム上でインテル® VTune™ Amplifier GUI を使用して、インテル® Xeon Phi™ プロセッサーを搭載するターゲットシステム向けにコマンドラインを生成します。ターゲットシステム上で実行とファイナライズを行います。この方法では、結果の生成に時間がかかります。
    1. [Analysis Target (解析ターゲット)] ウインドウで、[Arbitrary Targets (任意のターゲット)] > [local (ローカル)] を選択します。
    2. プロセッサー・アーキテクチャーをインテル® プロセッサー開発コード名 Knights Landing に設定し、オペレーティング・システム・タイプを指定します。
    3. アプリケーション名と引数を入力します。
    4. [Use MPI Launcher (MPI ランチャーを使用)] チェックボックスをオンにし、ランチャー名、ランク数、プロファイルするランク、および結果の場所を指定します。
    5. [Choose Analysis (解析の選択)] をクリックして、[Analysis Type (解析タイプ)] ウインドウに切り替えます。
    6. 解析タイプを選択し設定します。
    7. ウインドウの下にある [Command Line (コマンドライン)] ボタンをクリックして、コマンドラインを生成します。
    8. 生成したコマンドラインをターゲットシステムのコマンドプロンプトにコピーして、解析を実行します。解析が完了するとファイナライズが始まります。ファイナライズにはしばらく時間がかかります。
2. ホストシステムで結果を開く 結果をホストシステムへコピーします (ターゲットシステムで収集された結果が、ホストシステムと共有されていない場合)。コマンドがファイナライズの遅延を指示している場合、結果をファイナライズします。
  1. SSH などを使用して、結果をホストシステムへコピーします。
  2. (オプション操作) モジュールへのパスがターゲットシステムと異なる場合、結果ファイルと関連バイナリーの検索ディレクトリーを指定してファイナライズします。
    例: amplxe-cl -finalize -r <my_result_dir> -search-dir <my_binary_dir>
3. 解析結果の表示と解釈 結果を見るには次の 2 つの方法があります。

関連項目

カスタム解析 (英語)
ダイアログボックス: [Binary/Symbol Search (バイナリー/シンボル検索)] (英語)
ダイアログボックス: [Source Search (ソース検索)] (英語)

コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

関連記事