2

GPUコードのどこで速度低下が発生しているかを特定しようとしています。コードがそれ自体で正しく実行されることを確認しました(エラーがスローされない、出力が正しい、正常に終了するなど)。Visual Profilerでコードをプロファイリングしようとすると、正常に実行されているように見え、正しい中間出力がstdoutにダンプされます。GPUが使用されています(cuda-gdbで確認しprintf()、カーネル内からsをダンプしました)。すべてのコードが完了すると、VisualProfilerはviperが実行可能ファイルを終了したことを報告します。ただし、タイムラインは生成されません。代わりに、メインウィンドウには、0、10、20、25マイクロ秒がすべて互いに「折りたたまれている」と表示されます。Visual Profilerにすべての分析オプションを実行するように指示すると、24回の実行が問題なく進行しますが、タイムラインは生成されません。

私は、GeForce460を搭載したUbuntux86_64でCUDA4.2、ドライバーバージョン295.41を使用しています。

4

2 に答える 2

2

ビジュアル プロファイラーがタイムラインの生成に失敗するのは、通常、プロファイリングに必要なコンポーネントを見つけることができないためです。このコンポーネントは、/usr/local/cuda/lib64 にある libcuinj.so という共有ライブラリです。そのパスは LD_LIBRARY_PATH にありますか? Visual Profiler をどのように起動していますか? /usr/local/cuda/bin/nvvp のスクリプトは、パスを正しく設定する必要があります。

4.2 バージョンのビジュアル プロファイラーは、この共有ライブラリが見つからない場合にエラーを適切に報告しません。ビジュアル プロファイラーの今後の 5.0 バージョンでは、この点でエラー レポートが大幅に改善されています。

于 2012-08-01T23:51:47.117 に答える
0

Linuxでも同じかどうかはわかりませんが、WindowsのNsightでは、実行できるプロファイリングには2つの基本的なタイプがあります。「アプリケーショントレース」と「プロファイル」。アプリケーショントレースの下でのみ、タイムラインを取得できます。アプリケーショントレースは、CUDAおよびカーネル呼び出しが行われたときのタイムスタンプを記録します。プロファイル設定は、カーネルを分析するためのオプションを提供します。GPUからハードウェアカウンターを読み取り、1つまたは複数のカーネルに関連するパフォーマンス情報を生成します(タイムラインは生成しません)。

于 2012-07-31T21:56:30.963 に答える