私はをプログラムで表示したいアプリケーションの一部がmacOSとiOSで消費するGPU時間。 OpenGLとD3DではGPUタイマークエリオブジェクトを使用できます。私は検索し、金属のための何か類似のものを見つけることができませんでした。メーターのGPU時間を計測器などを使わずに測定するにはどうすればいいですか?Objective-Cを使用しています。メタルのGPU時間を測定するにはどうすればよいですか?
答えて
スケジュールされたハンドラブロックと完了したハンドラブロックをコマンドバッファに追加できます。それぞれのタイムスタンプを取って比較することができます。ブロックはCPU上で実行されるので、レイテンシはありますが、それはあなたを近づけるはずです。
この方法の問題点がいくつかあります:
1)あなたは本当にコマンドバッファ内のGPU側の遅延時間のほとんどを、ないCPUへの往復であるかを知りたいです。これは、シェーダの20個のインスタンスとシェーダの10個のインスタンスを実行する間の時間差としてよりよく測定されます。しかし、この方法は、誤差が2つの測定値に関連する誤差の合計であるため、ノイズを追加する可能性があります。
2)GPUが実行を停止すると、GPUが終了するのを待ちます。もう一度バックアップを開始すると、時計は低電力状態になり、結果を歪曲させるためにかなり時間がかかります。これは重大な問題であり、実際のベンチマークと実際のベンチマークのパフォーマンスを2倍以上に控えている可能性があります。あなたは、スケジュール上のクロックを開始し、完了した上で停止しますが、GPUは、あなたの経過時間が、他のワークロードに費やした時間を含み、他の作業を実行しているビジー状態の場合
3)。 GPUがビジーでない場合は、(2)で説明したクロックダウンの問題が発生します。
この問題は、私が作業したほとんどのベンチマークの場合よりもはるかに難しく、多くのパフォーマンス測定を行っています。それは、時間のマシンの独自の概念を使用して、何が起こっているかの直接的な尺度であるよう
これらの事を測定するための最良の方法は、デバイスのパフォーマンスモニタカウンタに使用することです。私は壁時計の時間を超えてサイクルを報告するものを好むが、それはクロックの旋回を取り除く傾向があるからだが、それについて普遍的な合意はない。 (ハードウェアのすべての部分が同じ周波数で動作しているわけではありません)PMCに基づいて測定する方法については、開発者向けのツールを参照してください。見つからない場合は、PMCに問い合わせてください。
- 1. 特定のスレッドセットのCPU時間を測定するにはどうすればよいですか?
- 2. C#でシステムのアイドル時間を測定するにはどうすればよいですか?
- 3. C#で子プロセスの起動時間を測定するにはどうすればよいですか?
- 4. PythonプロセスのCPU時間を正確に測定するにはどうすればよいですか?
- 5. このアルゴリズムの時間複雑度(Big-O)を測定するにはどうすればよいですか?
- 6. ウェブページの応答と読み込み時間を測定するにはどうすればよいですか?
- 7. npm/yarnタスク/スクリプトの実行時間を測定するにはどうすればよいですか?
- 8. JVMの起動時間を測定するにはどうすればよいですか?
- 9. アプリ/アクティビティの起動時間を測定するにはどうすればよいですか?
- 10. アンドロイドアプリのパフォーマンス時間を測定するにはどうすればよいですか?
- 11. iPhone Safariでページロード時間を測定するにはどうすればよいですか?
- 12. ファイルシステムベンチマークツールはどのように時間を測定しますか?
- 13. javaメソッド呼び出し時間を測定するにはどうすればよいですか?
- 14. バックグラウンドプログラムのコードカバレッジを測定するにはどうすればよいですか?
- 15. マルチスレッドアプリケーションでキャッシュパフォーマンスを測定するにはどうすればよいですか?
- 16. 正確なGPUの計算時間を測定する
- 17. email_token_expiry時間を24時間に設定するにはどうすればよいですか?
- 18. iOSのObjective-Cで2行のコード間にかかる時間を測定するにはどうすればよいですか?
- 19. divを特定の時間内に隠すようにするにはどうすればいいですか?
- 20. 特定の時間にオブジェクトが消えるようにするにはどうすればよいですか?
- 21. 特定の時間間隔でファイルのバックアップを取得するにはどうすればよいですか?
- 22. 2時間の間に数時間を取得するにはどうすればよいですか?
- 23. TensorFlowのグラジエントを特定のGPUに固定するにはどうすればよいですか?
- 24. AVAudioPlayerでループ間の時間を指定するにはどうすればよいですか?
- 25. アプリケーションが使用したすべてのアセンブリをロードするのにかかる時間を測定するにはどうすればよいですか?
- 26. Tensorflow GPU cuDNn:cuDDNライブラリをロードするにはどうすればよいですか?
- 27. どのように各ジャンゴテストの時間プロファイルを測定するには?
- 28. 特定の時間後にログイン設定値を削除するにはどうすればよいですか?
- 29. 特定の時間にローカル通知を設定するにはどうすればよいですか?
- 30. cURLマルチハンドル間のスリープ時間を設定するにはどうすればよいですか?