nsight 2.2、Toolkit 4.2、最新の nvidia ドライバーを使用しています。コンピューターで GPU をいくつか使用しています。ビルドカスタマイズ 4.2. CUDA のプロジェクト プロパティで「GPU 出力の生成」を設定しました。nsight モニターがオンになっています (すべてが見栄えがします)。
グローバルカーネル関数にいくつかのブレークポイントを設定しました。nsight は関数の宣言で停止しますが、いくつかのブレーク ポイントをスキップします。nsight がブレーク ポイントに到達するか、ブレーク ポイントをスキップするかを決定するのと同じです。面白いことに、nsight は for ループで停止しますが、単純な割り当て操作では停止しません。
もう 1 つの問題は、フォーカスを設定したり、ウォッチ リストに変数を追加したりできないことです。この場合 (添付のスクリーンショットを参照)、変数の値を解決できません: "posss" または "testDetctoinRate1" この場合はレジスターです。一方、共有メモリまたはブロック メモリは、ローカルのリストに自動的に挿入されます。
次の呼び出しでカーネル関数を呼び出します。
checkCUDA<<<1, 32>>>(sumMat->rows,sumMat->cols , (UINT *)pGPUsumMat);
cudaError = cudaGetLastError();
if(cudaError != cudaSuccess)
{
printf("CUDA error: %s\n", cudaGetErrorString(cudaError));
exit(-1);
}
カーネル呼び出しはエラーなしで機能します。
すべてのブレークポイントで nsight 停止を強制するオプションはありますか? スレッドのレジスタをウォッチ リストに追加するにはどうすればよいですか?
アップデート
最初に、私のデバッグ コマンド ラインは次のとおりです。
# Runtime API (NVCC Compilation Type is hybrid object or .c file)
set CUDAFE_FLAGS=--sdk_dir "c:\Program Files\Microsoft SDKs\Windows\v7.0A\"
"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\bin\nvcc.exe" --use-local-env --cl-version 2010 -ccbin "C:\Program Files\Microsoft Visual Studio 10.0\VC\bin" -I"..\..\..\opencv\modules\gpu\src\opencv2\gpu\device" -I"..\..\..\opencv\modules\gpu\include\opencv2\gpu" -I"..\..\..\build\include\\" -G --keep-dir "Debug" -maxrregcount=0 --machine 32 --compile -g -Xcompiler "/EHsc /nologo /Od /Zi /MDd " -o "Debug\%(Filename)%(Extension).obj" "%(FullPath)"
プロパティ ページで変更しました --> cuda --> ホスト --> ホスティング デバッグ情報を生成 --> いいえ
コマンドラインに -g と -O の文字が含まれていないため、コマンドラインは次のようになります。
# Runtime API (NVCC Compilation Type is hybrid object or .c file)
set CUDAFE_FLAGS=--sdk_dir "c:\Program Files\Microsoft SDKs\Windows\v7.0A\"
"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\bin\nvcc.exe" --use-local-env --cl-version 2010 -ccbin "C:\Program Files\Microsoft Visual Studio 10.0\VC\bin" -I"..\..\..\opencv\modules\gpu\src\opencv2\gpu\device" -I"..\..\..\opencv\modules\gpu\include\opencv2\gpu" -I"..\..\..\build\include\\" -G --keep-dir "Debug" -maxrregcount=0 --machine 32 --compile -Xcompiler "/EHsc /nologo /Od /Zi /MDd " -o "Debug\%(Filename)%(Extension).obj" "%(FullPath)"
でデバッグします-o
が、問題はありますか? 変更はありません。