インテル® Graphics Performance Analyzers を利用してインテル® Media SDK により最適化されたアプリケーションを解析する方法

同カテゴリーの次の記事

インテルの x86 プラットフォーム向け Unity* 最適化ガイド: パート 2

この記事は、インテル® デベロッパー・ゾーンに公開されている「How to Analyze Intel® Media SDK-optimized applications with Intel® Graphics Performance Analyzers」の日本語参考訳です。


この記事の PDF 版はこちらからご利用になれます。

メディア・アプリケーションの開発では、「最適なパフォーマンスを達成できているのだろうか? 固定機能ロジックを使用すべきか、それとも EU 配列を使用すべきか?」といった疑問を持つことがよくあるでしょう。この記事では、インテル® Graphics Performance Analyzers (インテル® GPA) を利用して、インテル® Media SDK により最適化されたアプリケーションのリアルタイム・パフォーマンスを解析する方法を説明します。

最初に、インテル® GPA から見ていきましょう。インテル® GPA は、メディア・パイプラインの非効率な個所を特定し、アプリケーションの最適化の可能性を探るのに非常に便利なツールです。次に、インテル® Media SDK は、インテル® プラットフォームのデコード、エンコード、ビデオ処理向けのハードウェア・メディア・アクセラレーション機能を利用するソフトウェア開発ライブラリーです (各プロセッサーのハードウェア要件を確認してください)。はじめに、インテル® GPA を使用して、インテル® Media SDK のいくつかのサンプルを解析してみましょう。サンプルの詳細は、各サンプルの説明を参照してください。

ここでは、インテル® GPA とインテル® Media SDK を使用します。これらのツールは無料でダウンロードできます: インテル® GPAインテル® Media SDK (for clients)、インテル® Media Server Studio Community Edition (インテル® Media SDK はコンポーネントとして同梱されています)。

この記事では、インテル® GPA 2016 R1 とインテル® Media SDK 2016 を使用します。インテル® GPA とインテル® Media SDK の将来のバージョンでは、この記事の内容とは異なる新しい機能が追加される可能性があります。

インテル® GPA のセットアップ

インテル® GPA インストーラーを実行してツールをインストールします。インテル® GPA を利用して、メディア・ワークロード、固定機能のハードウェア処理のようなインスタンス操作 (以降 MFX と記載)、実行ユニット (EU) 処理の詳細を把握できます。[Media Performance] ダイアログには、インテル製 GPU の負荷状況がリアルタイムで表示されます。

インテル® GPA ツールは、Windows® の [スタート] メニューから [Intel® Graphics Monitor] アプリケーションを選択して起動できます。タスクバー・アイコンを右クリックすると、メニューオプションが表示されます。

メディア・ワークロードを解析するには、インテル® GPA の [Profiles] メニューからメディア解析プロファイルを作成します。

  1. [Profiles] メニューを選択し、[HUD Metrics] タブをクリックします。[Metrics to display in the HUD] にあるすべてのメトリックを選択し、[Remove] をクリックして、既存のメトリックをクリアします。Media の [Available metrics] から次の項目を選択し、[Add] をクリックして [Metrics to display in the HUD] に追加します。

    • MFX Decode Usage (MFX デコード使用状況)
    • GPU Overall Usage (GPU 全体の使用状況)
    • MFX Engine Usage (MFX エンジン使用状況)
    • MFX Encode Usage (MFX エンコード使用状況)

    グループ名を選択し、[Add Group] をクリックして設定を保存します。プロファイルは、次のようになります。[Apply] をクリックして変更を保存します。

  2. [Preferences] メニューを選択します。次のチェックボックスがオンになっていることを確認します。

    • Auto-detect launched applications (起動されたアプリケーションを自動検出する)
    • Disable Tracing (追跡を無効にする)

    [OK] をクリックして、[Preferences] ダイアログを閉じます。

アプリケーションの解析

インテル® GPA は、インジェクション手法を用いて、アプリケーションの実行中にメトリックを収集します。インジェクションは、アプリケーションの開始時に行い、このチュートリアルでは、インテル® GPA の [Analyze Application] メニューから起動できます。

  1. 詳細なワークロードのメトリックを取得するには、タスクバーのインテル® GPA アイコンを右クリックして、[Analyze Application] を選択します。
  2. [Command line] ダイアログで実行ファイルのパス、名前、引数を入力します。[Working Folder] が正しく設定されており、パスにスペースが含まれていないことを確認します。

  3. 指定したワークロードのメトリックのキャプチャーを開始するには、[Run] ボタンをクリックします。

    リアルタイム・グラフは、レンダリング中に Ctrl + F1 キーを押しても有効になり、リアルタイム・メトリックを確認できます。
    注: メトリックは、実行中、セットアップ・ステップで説明した [Profiles] メニューから変更することもできます。

    ほかのインテル® Media SDK サンプル・ワークロードを解析する前に、インテル® GPA によって収集されたメトリックの情報を確認し、その重要性を理解し、改善のための次のステップについて説明します。各メトリックは、% 単位でリアルタイムに表示されます。赤は最小値、緑は最大値、白は現在の値を示します。

    次の表は、インテル® GPA のメディアメトリック説明です。インテル® GPA でサポートされるメディアメトリックの一覧は、ドキュメント (英語) を参照してください。

    メトリック 説明
    MFX Engine Usage (MFX エンジン使用状況) マルチフォーマット・コーデック (MFX: Multi-Format Codec) エンジンがアクティブ状態だった時間 (%) を示します。
    MFX Decode Usage (MFX デコード使用状況) MFX ベースのデコード操作がアクティブ状態だった時間 (%) を示します。
    GPU Overall Usage (GPU 全体の使用状況) 実行ユニット (EU) または MFX (メディア固定機能) がアクティブ状態だった時間 (%) を示します。
    EU Engine Usage (MFX エンジン使用状況) 実行ユニット (EU) エンジンがアクティブ状態だった時間 (%) を示します。
    MFX Encode Usage (MFX エンコード使用状況) MFX ベースのエンコード操作がアクティブ状態だった時間 (%) を示します。

データの解釈

GPU 全体の使用率が高い場合、アプリケーションの IOPattern を確認してみてください。インテル® Media SDK 実装で IOPattern の不一致がある場合、バッファーが大量に消費されます。そのような状況は回避することを推奨します。インテル® Media SDK の一般的なユースケースの設定と、最高のパフォーマンスを達成するためメディア・パイプラインをさらに最適化する方法を説明したこちらの記事 (英語) も参考にしてください。

メディア・アプリケーションの解析に関するお問い合わせ、ご意見、ご要望は、インテル® Media SDK フォーラム (英語) とインテル® GPA フォーラム (英語) までお寄せください。ほかの開発者やインテルのテクニカルエンジニアによるアドバイスやサポートを受けることができます。

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

Microsoft および Windows は、米国 Microsoft Corporation の、米国およびその他の国における登録商標または商標です。

関連記事