37
PresentMon: DirectX、OpenGL、Vulkan のパフォーマンス

PresentMonと当社独自のソフトウェア

DirectX 12、MicrosoftのユニバーサルWindowsプラットフォーム、そしてVulkanの導入により、私たちは問題に直面しました。パフォーマンスを測定するための信頼できるツールがなくなったのです。FrapsはDirectX 11までしか動作せず、一部の愛好家が想定するほど信頼できるとは限りません。

その結果、GitHubで無料で入手できるAndrew Lauritzen氏のPresentMonツールの登場は、まさに理想的なタイミングでした。このツールは、Windowsのイベントトレーススタックで現在実行中のコマンドを監視し、それらに関する一連の情報をCSVファイルに記録して分析に利用します。

しかし、PresentMonはFrapsと同じグラフィックスパイプラインで動作するため、独自の技術的制限があります。そのため、FCATのようなツールを完全に置き換えることはできません。しかし、PresentMonが私たちにとって非常に興味深いのは、DirectX 11だけでなく、DX 12、OpenGL、Vulkanとの互換性を備えていることです。

このツールの最大の欠点は、コマンドラインインターフェースです。必要な情報を生成するために適切なスイッチの組み合わせを見つけるのに時間がかかります。デフォルトでは、期待通りのデータをそのまま吐き出すようには設定されていません。そして、まさにそれを解決しようとしたのです。

検出を簡単に: PresentMon GUI

私たちは、PresentMon を起動し、スイッチを制御し、パフォーマンスの記録と同時にセンサー データを収集するアプリを開発することを決定しました。

上のスクリーンショットには、頻繁にベンチマークされるゲームがいくつか表示されており、それぞれにツール内に独自のプロファイルが保存されています。PresentMonは、設定に応じて、それぞれのゲームに選択されたパラメータを使用します。例えば、あるテストは3分間実行されて停止する一方で、別のテストはホットキーで開始・停止できます。

データ収集が簡単に

もちろん、PresentMonはパフォーマンス情報を記録するため、センサーデータを収集するようには設定されていません。この機能はFinalWireのAIDA64によって提供されています。私たちはエンジニアリングバージョンを利用し、ホスト処理とグラフィックスの統計情報を同期的に記録しています。テスト中の特定の時点でGPU使用率とフレームレートを相関させたいですか?それも可能です。AIDA64のアプローチは、インターフェースにDLLを使用するHWiNFOなどのツールとは異なるため、レイテンシとオーバーヘッドは最小限に抑えられています。

Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。

ストレージ I/O の影響を最小限に抑えるために、この 2 番目のログ ファイルを最初にメモリに書き込み (結局のところ、十分に小さいです)、PresentMon のログ ファイルが閉じたらディスクに書き込みます。

残念ながらPresentMonはタイムスタンプを使用していないため、まず独自の記録の開始点を、次にPresentMonのログを置き、それらの間の時間を並行して追跡しています。これは、外部測定(オシロスコープなど)を制御するために必要です。

データを分析し、プレゼンテーション用に処理する

ベンチマークを実行するたびに、膨大な量の記録データが生成され、それらを整理する必要があります。そのため、2つのログファイルを結合し、グラフ作成に必要なすべての計算を実行する独自のソフトウェアを使用しています。Excelでこれを手作業で行うのは、複雑で多くの手順を要するため、不可能です。

ログファイルインタープリタは現在第3世代となり、必要な計算を迅速に実行できるだけでなく、必要に応じて新しいチャートやグラフを追加することもできます。2種類のグラフィックカードとDirectX 12ゲームを使った例を用いて、直接評価する内容についてより詳しく見ていきましょう。

ここでの目的は、私たちが生成している情報を説明することです。グラフが示す内容を十分に理解しないと、誤った結論を導き出してしまう可能性があります。そのため、今後のレビューでは、プロセスと手順が十分に詳細に記載されていることを確認するために、この部分について言及することになるでしょう。

上の棒グラフは、最小、最大、平均FPSを示しています。これらは重要ですが、ゲーム体験の滑らかさやフレームの一貫性について、より詳細な情報を提供するものではありません。これらの情報を提示するには、より多くのデータが必要です。

2枚のカード、2つのテストシステム、そして1つのベンチマーク

この例は、MSIのGeForce GTX 1060 Gaming X 6GとRadeon RX 480 Gaming X 8Gを比較するものではありません。両方のカードの結果を用いて、測定方法と評価方法を説明することを目的としています。

単一のベンチマークを使用することで分析が簡素化されます。そこで、DirectX 11と12の両方のグラフィックカードと、2つの全く異なるプラットフォームでテストされたHitmanに焦点を当てます。

スワイプして水平にスクロールします

ヘッダーセル - 列 0愛好家システム主流のPC
CPUインテル Core i7-6950X @ 4.2 GHzAMD FX-8350 @ 4GHz
冷却オープンループ水冷静かに!ダークロックプロ3
メモリ16GB DDR4-340016 GB DDR3-1866
マザーボードMSI X99A ゲーミングプロMSI ゲーミング 970
システムストレージ1TB インテル SSD 530
オペレーティング·システム:Windows 10 ビルド 1607 (10.0.14393.51)
グラフィックドライバークリムゾン 16.8.2GeForce 372.54 WHQL


詳細: 最高のグラフィックカード


詳細: デスクトップ GPU パフォーマンス階層表


詳細: すべてのグラフィックコンテンツ

現在のページ: PresentMonと当社の独自ソフトウェア

次のページ 1 秒あたりのフレーム数: バーか曲線か?

Igor Walllossek氏は、Tom's Hardware誌で、技術分析と詳細なレビューに重点を置いた幅広いハードウェア記事を執筆しています。GPU、CPU、ワークステーション、PCの組み立てなど、PCコンポーネントの幅広い分野を網羅しています。彼の洞察力に富んだ記事は、絶えず変化するテクノロジー業界において、読者が情報に基づいた意思決定を行うための詳細な知識を提供しています。