在visual studio中调试cuda文件



我有一个CPP函数(function. CPP "),我"mex"-ed。然后在visual studio中打开function.cpp文件,将visual studio附加到一个正在运行的matlab进程中。

当我在matlab中调用函数时,我能够在function.cpp文件中设置断点,并通过它观察变量。

当我将函数更改为cuda文件(function.cu)时,调试过程中断。按照上述过程,我仍然能够在功能内停止。但是我看不到任何变量。当我试图"观察"一个变量时,它说"错误符号…未找到"

我有洞察力安装在visual studio。问题:我如何在文件函数中观察我的变量。在调试模式下运行,就像我对function.cpp文件所做的那样。这可能吗?

注意函数。Cu不在一个项目中。它只是一个带有函数(例如somefunction(){})的CPP代码的独立文件。为了调试的目的,我在visual studio中打开它。我正在编译这个函数。Cu文件在matlab中使用"nvmex -g包装器"。把包装纸拿走。Cu是一个matlab的mexfunction包装器,它可以调用function.cu

中编写的somefunction()

你正在使用VS调试器,这是一个主机调试器,所以它不知道如何调试设备程序。要在Windows中调试设备代码,您应该查看Parallel Nsight Visual Studio Edition。

您可以在文档中搜索有关附加到正在运行的进程的指南,对于当前版本(2.2),具体页面在这里。

您附加了VS in,但在函数'main'中停止。看来你还在攻击CPU代码。当您按照Tom的建议附加调试器时,您是否在Transport下拉菜单中选择了"NVIDIA GPU debugger"?

要调试任何cuda代码,您需要一个没有运行桌面环境/服务器的gpu。对于windows,这意味着你需要第二个gpu。我不能100%确定它是否也必须是英伟达的gpu。然后你就可以修改你的代码了。在linux下,您可以只使用一个gpu进行调试,因为您可以关闭x-server并在每个命令行中使用cuda-gdb进行调试。进一步的信息会给你cuda-gdb手册

最新更新