1

NVIDIA GTX 480 ボードを搭載した Windows 7 32 ビット マシンで実行している CUDA カーネルのプロファイルを作成しようとしています。私は CUDA 4.1 32 ビット ツールキットと VS 2010 用の Parallel Nsight 2.1 エディションを使用しています。

私のプログラムのプロファイリング結果には、常に不定期に同じ警告が表示されます: Message: Flush records, Event Type: Range, Level: 50

このイベントの後、常に数ミリ秒の処理中断があります。その後、GPU は以前の速度で計算を進めます。

この警告に関する情報は CUDA のドキュメントや Web で見つかりませんでした。また、プロファイリング中にのみ発生する問題であるかどうかもわかりません。

この警告の内容と回避方法を知っている人はいますか?

4

1 に答える 1

1

警告「フラッシュレコード」は、NsightCUDAトレースアクティビティがアプリケーションに追加のオーバーヘッドを追加していることを示すために使用されます。これは、CPUアクティビティが高い期間を解釈できるようにするためです。この警告を削除する方法はありません。アプリケーションは何も悪いことをしていません。

Nsight CUDAトレースアクティビティは、カーネルの起動、メモリコピー、メモリセットなど、GPU作業の開始と終了のタイムスタンプを収集します。アプリケーションがGPUでタスクを起動すると、ツールはタスクにトレースレコードを割り当て、レコードにタイムスタンプを書き込むようにGPUをプログラムします。タイムスタンプの収集は、同時実行性を壊したり、CPUを停止させたりしない方法で行われます。作業が完了すると、ツールは情報を収集してメモリにストリーミングします。フラッシュ範囲には、結果を収集して情報を書き出す時間が含まれます。これには、追加のカーネル起動を実行し、デバイスからホストにメモリをコピーする時間が含まれる場合があります。このツールは、アプリケーションがコンテキストを同期するとき(cuCtxSynchronizeまたはcuda {Thread、Device} Synchronize)、またはトレースレコードが不足したときに結果を収集します。

ユーザードキュメントとツールのヒントを改善するためにバグを入力します。

于 2012-08-30T04:12:07.760 に答える