GPU 上でインテル® HD グラフィックスおよびインテル® Iris® グラフィックス (以降、「インテル® グラフィックス」) のハードウェア・イベントを解析するには、システムにインテル® Metric Discovery API ライブラリーがインストールされている必要があります。
Windows* システムでは、インテル® Metric Discovery API ライブラリーは、インテル® グラフィックス・ドライバー・パッケージに含まれます。https://www.intel.com/content/www/us/en/download-center/home.html (英語) から、システムのドライバーをダウンロードしてインストールできます。
リモート・デスクトップ接続を介して GPU 解析を実行するには、ソフトウェアが次の要件を満たしていることを確認してください。
インテル® グラフィックス・ドライバー・バージョン 15.36.14.64.4080 以降
RDC を介して実行可能なターゲット解析アプリケーション
インテル® Metric Discovery API ライブラリーは、カーネルバージョン 4.14 以降の Linux* オペレーティング・システムでサポートされます。インテル® VTune™ プロファイラーで GPU ハードウェア・メトリックを収集できず、エラーメッセージが表示された場合は、インテル® Metric Discovery API ライブラリーが正しくインストールされていることを確認してください。
インテル® Metric Discovery API ライブラリーは、https://github.com/intel/metrics-discovery (英語) からダウンロードできます。
通常、GPU オフロードおよびGPU 計算/メディア・ホットスポット解析は、root 権限 (Linux*) または管理者権限 (Windows*) で実行する必要があります。
Linux* で root 権限がない場合は、次のように一般ユーザーで GPU ハードウェア・メトリックを収集できます。次の手順を実行します。
video レンダリング・グループに対象のユーザー名を追加します。
ユーザー名が video グループに属しているか確認するには、groups | grep video コマンドを実行します。
ユーザーを video グループに追加するには、sudo usermod -a -G video <username> を実行します。
次のコマンドを実行して、dev.i915.perf_stream_paranoidsysctl オプションの値を 0 に設定します。
sysctl -w dev.i915.perf_stream_paranoid=0
このコマンドは一時的に値を変更し、再起動すると変更内容は失われます。永続的に変更を保持するには次のコマンドを実行します。
echo dev.i915.perf_stream_paranoid=0 > /etc/sysctl.d/60-mdapi.conf
GPU 解析は Ftrace* テクノロジーに関連するため、debugFS にリード/ライト権限を設定する prepare_debugfs.sh スクリプトを使用します。
GPU 解析でデータ収集を成功させるには、dev.i915.perf_stream_paranoid を 0 に設定します。このアクションはセキュリティーに影響します。
GPU パフォーマンス・カウンターとコンテキスト・スイッチ・レポートはグローバルデータです。インテル® VTune™ プロファイラーでデータ収集すると、カウンターには他のユーザーのアプリケーションが GPU をどのようにロードしたかを示す情報が含まれます。
perf_event_paranoid ノブは CPU から取得された情報へのアクセスを制御し、perf_stream_paranoid ノブは GPU から取得された情報へのアクセスを制御します。どちらのノブも、権限のないユーザーが特定のリソースにアクセスできるようにします。dev.i915.perf_stream_paranoid は GPU パフォーマンス・カウンターへのアクセスにのみ影響することに注意してください。
perf セキュリティーの性質をより深く理解するには、次の記事を参照してください。
GPU 利用率に関する高レベルの情報のみを見るのであれば、カーネルを再設定する必要はありません。
Linux* で GPU のハードウェア・メトリックを解析するには、カーネルをリビルドする必要があります。i915 ドライバーは低レベルのトレースイベントを提供する必要があるため、カーネル 4.14 以降では次のカーネル設定オプションを使用してトレースイベントを有効にします。
CONFIG_EXPERT=y
CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS=y
CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS オプションの状態を確認するには、次のコマンドを実行します。
grep CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS /boot/config-$(uname -r)
このオプションが無効である場合、i915 ドライバーまたはカーネル全体をリビルドする必要があります。
./install/bin64/prepare-gpu-hardware-metrics.sh スクリプトを使用して一般ユーザーのアクセス権限を自動的に有効にすることもできます。