CUDA プログラムのメトリック/イベントを測定するために、次のようなコマンド ラインを使用してみました。
nvprof --metrics <<metric_name>>
Visual プロファイラーでも同じ指標を測定しましたnvvp
。得られる値に違いはありませんでした。
のようなメトリックを選択すると、出力の違いに気付きましたachieved_occupancy
。nvvp
しかし、これは実行ごとに異なるため、またはを使用しているかどうかに関係なく、実行するたびに異なる結果が得られるのはおそらくそのためですnvprof
。
質問:
nvvp
とnvprof
はまったく同じで、使いやすさのために のnvvp
上に構築された GUI に過ぎないという印象を受けました。nvprof
しかし、私はこのアドバイスを与えられました:
常にビジュアル プロファイラーを使用してください。コマンドラインは絶対に使用しないでください。
また、この質問は次のように述べています。
グローバルなロード/ストア効率、リプレイ、DRAM 使用率が必要なため、コマンド ライン プロファイラーは使用したくありません。これらはビジュアル プロファイラーでより明確に表示されます。
のような「動的な」指標を除けばachieved_occupancy
、結果の違いに気づいたことはありません。それで、このアドバイスは有効ですか?nvprof
働き方になんらかの不備があるのでしょうか。コマンド ライン フォームよりもビジュアル プロファイラーを使用する利点があれば教えてください。
より具体的には、nvprof
間違った結果をもたらすメトリクスはありますか?
ノート: