【发布时间】:2013-03-17 15:16:21
【问题描述】:
我有一个 OpenCV 应用程序,带有额外的 CUDA(.cu) 文件,我想使用 Parallel NSight 进行调试。 NSight 调试适用于 CUDA 示例(没有 OpenCV .cpp 文件),但是当我尝试在我的应用程序中启动调试器时,调试器会加载 lots 的附加模块(“没有符号加载”)并崩溃并出现此错误:
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++ 调试库”,显示:“调试错误!”和“已调用 R6010 中止”。
可能是什么问题?可以避免加载此模块吗?我不确定它们是否有必要。
以及如何正确调试 CUDA 内核?我知道 CPU 和 GPU 代码不能同时调试。
编辑:
我很确定加载超过 200 个内核会导致崩溃。单个 gpu::GpuMat 声明本身就有 100 多个内核(模块),然后 SURF、BFM 和类似算法运行其余的......
我想调试 仅 我在其中放置断点的内核(即我自己的内核,而不是 OpenCV 的内核)。是否可以以某种方式排除其他模块/内核?
谢谢!
【问题讨论】:
-
您使用的是哪个版本的 Nsight?
标签: visual-studio-2010 opencv cuda