インテル® VTune™ プロファイラー・サーバーと Visual Studio* Code およびインテル® DevCloud for oneAPI の併用

インテル® VTune™ プロファイラーインテル® デベロッパー・クラウド

この記事は、インテル® デベロッパー・ゾーンに公開されている「Intel® VTune™ Profiler Performance Analysis Cookbook」の「Using Intel® VTune™ Profiler Server with Visual Studio Code and Intel® DevCloud for oneAPI」の日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。


バージョン: 2020 (最終更新日: 2021 年 5 月 19 日)

このレシピでは、インテル® VTune™ プロファイラーをウェブサーバーとして使用し、リモートの開発マシンでパフォーマンスのチューニングを行う方法を紹介します。例として、リモートマシンにインテル® DevCloud for oneAPI のコンピュート・ノードを使用します。

コンテンツ・エキスパート: Stas Neverov (英語)、Jennifer DiMatteo (英語)

使用するもの

以下は、このレシピで使用するハードウェアとソフトウェアのリストです。

注:

  • バージョン 2020 から、インテル® VTune™ Amplifier の名称がインテル® VTune™ プロファイラーに変わりました。
  • インテル® VTune™ プロファイラー・パフォーマンス解析クックブックのほとんどのレシピは、異なるバージョンのインテル® VTune™ プロファイラーにも適用できます。バージョンにより、わずかな調整が必要になる場合があります。
  • 最新バージョンのインテル® VTune™ プロファイラーは以下から入手できます。

設定の概要

バージョン 2021.1.1 以降では、インテル® VTune™ プロファイラーをサーバーとして実行し、ウェブブラウザーを使用してリモートアクセスできます。この設定は、リモートシステムでアプリケーションを開発する場合に便利です。

  • 開発システムでインテル® VTune™ プロファイラーを実行することで、バイナリー、デバッグ情報、ソースファイルに直接アクセスできます。
  • また、インテル® VTune™ プロファイラーは、収集したトレースと処理データを同じシステムに保存するので、解析のためこれらのデータをクライアント・システムに転送する必要はありません。
  • クライアント・システムに何もインストールする必要はありません。ウェブブラウザーだけあれば、インテル® VTune™ プロファイラーの GUI にアクセスできます。

以下は、この設定を図解したものです。

リモート開発向けインテル® VTune™ プロファイラーの設定

オプション 1: リモート開発にインテル® VTune™ プロファイラー・サーバーと Visual Studio* Code を併用する

  1. インテル® DevCloud for oneAPI (英語) にログインします。
  2. VS Code の接続を設定します (英語)。この手順を完了すると、ローカルの VS Code がインテル® DevCloud のコンピュート・ノードに接続されます。
  3. VS Code のターミナルからコンピュート・ノード上のインテル® VTune™ プロファイラー・サーバーを実行します。
    vtune-backend --enable-server-profiling
    
  4. インテル® VTune™ プロファイラーの GUI を実行します。Ctrl キーを押しながら VS Code のターミナルでインテル® VTune™ プロファイラー・サーバーによって表示された URL をクリックして、ウェブブラウザーでインテル® VTune™ プロファイラーの GUI を開きます。
  5. 設定を完了します

オプション 2: SSH ターミナルを介してリモートシステムでインテル® VTune™ プロファイラー・サーバーを使用する

このケースでは、SSH トンネルを手動で設定する必要があります。この手順を簡略化するため、インテル® VTune™ プロファイラーを特定のポート (この例では 55001) で実行します。55001 がビジーの場合は、別のポートを選択できます。

  1. インテル® DevCloud for oneAPI (英語) にログインします。
  2. Windows* (英語) または Linux*/macOS* (英語) システム用の手順に従って、インテル® DevCloud への SSH 接続を設定します。
  3. インテル® DevCloud のログインノードにログインします。
    ssh devcloud
    
  4. インテル® DevCloud のコンピュート・ノードを予約します。
    qsub -I
    

    注:
    この手順の後、ターミナルを閉じないでください。ターミナルを閉じると、コンピュート・ノードが解放されます。

  5. 新しいターミナルを開きます。
  6. SSH ポートフォワードを有効にして、再度インテル® DevCloud のノードにログインします。
    ssh -L 127.0.0.1:55001:127.0.0.1:55001 devcloud
    
  7. もう 1 つの SSH トンネルでログインノードからコンピュート・ノードへの SSH 接続を確立します。
    ssh -L 127.0.0.1:55001:127.0.0.1:55001 s000-n000
    

    s000-n000 をお使いのコンピュート・ノード名に置き換えます。

  8. コンピュート・ノード上でインテル® VTune™ プロファイラーを起動します。
    vtune-backend --web-port=55001 --enable-server-profiling
    
  9. インテル® VTune™ プロファイラーの GUI を開きます。ウェブブラウザーでインテル® VTune™ プロファイラー・サーバーによって表示された URL を開きます。
  10. 設定を完了します

設定の完了

オプション 1 とオプション 2 のどちらを選択した場合も、以下の手順で設定を完了します。

  1. インテル® VTune™ プロファイラー・サーバーの証明書を承認します。

    インテル® VTune™ プロファイラーの GUI を開いたときに、ウェブブラウザーがインテル® VTune™ プロファイラー・サーバーの自己署名証明書に関する確認メッセージを表示する場合があります。SSH トンネルは中間者攻撃 (MitM) から保護されているため、証明書をインストールしなくても安全に作業を進めることができます。トランスポート・セキュリティーの詳細は、「トランスポート・セキュリティー」 (英語) を参照してください。

  2. パスフレーズを設定します。

    インテル® VTune™ プロファイラー・サーバーを初めて起動したときに表示される URL には、ワンタイムトークンが含まれています。ブラウザーでこの URL を開くと、インテル® VTune™ プロファイラー・サーバーによってパスフレーズの設定を求められます。パスフレーズがないと、ほかのユーザーはインテル® VTune™ プロファイラー・サーバーにアクセスできません。パスフレーズのハッシュはサーバーに保存されます。また、ブラウザーには安全な HTTP クッキーが保存されるので、インテル® VTune™ プロファイラーの GUI を開くたびにパスフレーズを入力する必要はありません。パスフレーズを設定すると、インテル® VTune™ プロファイラーのようこそ画面が表示されます。

  3. プロジェクトを作成します。
  4. 解析を設定します。–enable-server-profiling オプションを指定してインテル® VTune™ プロファイラー・サーバーを起動したため、デフォルトではリモートマシンがターゲットシステムとして選択されます。
  5. ターゲット・アプリケーションのパスとコマンドライン引数を設定します。詳細は、「解析ターゲットの設定」 (英語) を参照してください。
  6. 解析を実行します。

使用上の注意点

  • オプション 1 の設定では、VS Code Remote – SSH 拡張 (英語) を利用して、VS Code のターミナルから起動されたプロセスで使用されるポート番号を監視します。Remote – SSH 拡張は、これらのポートを自動的に SSH トンネルに転送します。この動作は、デフォルトで有効な remote.autoForwardPorts 設定によって制御されます。
  • –enable-remote-profiling コマンドライン・オプションを使用すると、インテル® VTune™ プロファイラー・サーバーをホストしているシステムをパフォーマンス・プロファイリング・ターゲットにすることができます。インテル® VTune™ プロファイラー解析の実行では、任意のコマンドラインでターゲット・アプリケーションを起動するため、セキュリティーの観点からこのオプションはデフォルトで無効になっています。複数のユーザーがインテル® VTune™ プロファイラー・サーバーの 1 つのインスタンスにアクセスすると、インテル® VTune™ プロファイラー・サーバーを実行するユーザーアカウントに代わって任意のコードを実行できるようになります。–enable-remote-profiling は、インテル® VTune™ プロファイラー・サーバーが単一のユーザーを対象としており、サーバーへのアクセスに使用するパスフレーズを共有していない場合にのみ有効にします。
  • –web-port=PORT コマンドライン・オプションを使用して、インテル® VTune™ プロファイラー・サーバーを特定のポートで実行します。このオプションを使用しない場合、インテル® VTune™ プロファイラーはシステムで利用可能な任意のポートで実行されます。
  • インテル® VTune™ プロファイラー・サーバーは、以下の警告を出力します。
    warn: Server access is limited to localhost only. To enable remote access restart with --allow-remote-ui.
    
    この手順では SSH ポートフォワードを使用するため、–allow-remote-ui を有効にする必要はありません。インテル® VTune™ プロファイラー・サーバーへの着信接続は SSH サーバーからの localhost 接続です。–allow-remote-ui を有効にすると、インテル® VTune™ プロファイラー・サーバーは実際のネットワーク・カードの IP アドレスまたは FQDN 名を含む URL を構築しますが、クライアント・マシンからはアクセスできない場合があります。
  • デフォルトでは、インテル® VTune™ プロファイラー・サーバーはプロファイル結果をホーム・ディレクトリーに保存します。–data-directory コマンドライン引数を使用して、別のデータ・ディレクトリーを指定できます。また、この引数を使用して、インテル® VTune™ プロファイラー・サーバーで事前に収集されたインテル® VTune™ プロファイラーの結果を開くこともできます。インテル® VTune™ プロファイラーは、任意の子フォルダーに配置された結果を見つけることができます。

関連情報

インテル® VTune™ プロファイラーのウェブ・サーバー・インターフェイス (英語)
インテル® VTune™ プロファイラー・サーバーの使用モデル (英語)
インテル® デベロッパー・クラウド (英語)
インテル® VTune™ プロファイラーを使用したプロファイル解析の実行 (英語)


製品および性能に関する情報

1 性能は、使用状況、構成、その他の要因によって異なります。詳細については、http://www.intel.com/PerformanceIndex/ (英語) を参照してください。

タイトルとURLをコピーしました