Parallel NSightを使用してデバッグしたい追加の CUDA( .cu ) ファイルを含む OpenCV アプリケーションがあります。NSight デバッグは CUDA サンプル (OpenCV .cppファイルなし) で動作しますが、アプリケーションでデバッガーを起動しようとすると、デバッガーは多くの追加モジュールをロードし (「シンボルがロードされていません」)、次のエラーでクラッシュします:
OpenCV Error: Gpu API call (out of memory) in unknown function, file ..\.\
opencv-2.4.4\modules\core\src\gpumat.cpp, line 1415
また、「Microsoft Visual c++ Debug Library」というウィンドウが開き、「Debug error!」というメッセージが表示されます。および「R6010 アボートが呼び出されました」。
問題は何ですか?このモジュールのロードを回避できますか? それらが必要かどうかはわかりません。
また、CUDA カーネルを正しくデバッグする方法は? CPU と GPU のコードを同時にデバッグできないことはわかっています。
編集:
200 を超えるカーネルをロードするとクラッシュすることは間違いありません。単一の gpu::GpuMat 宣言には 100 を超えるカーネル (モジュール) があり、残りは SURF、BFM などのアルゴリズムで実行されます...
ブレークポイントを配置したカーネル (つまり、OpenCV のカーネルではなく、自分のカーネル)のみをデバッグしたいと考えています。何らかの方法で他のモジュール/カーネルを除外することは可能ですか?
ありがとう!