为什么我用vs调试报错,用nsight就能成功

  • 1 replies
  • 224 views
为什么我用vs调试报错,用nsight就能成功
« 于: 五月 30, 2019, 02:23:35 pm »
用vs调试,得到unspecified launch failure,应该是越界的错误。
但是我用nsight->cuda debug就能运行成功,还能得到运行结果。
vs->debug和nsight->cuda debug有什么区别吗,为什么nsight能成功,而vs就报错

Re: 为什么我用vs调试报错,用nsight就能成功
« 回复 #1 于: 五月 30, 2019, 03:07:34 pm »
用vs调试,得到unspecified launch failure,应该是越界的错误。
但是我用nsight->cuda debug就能运行成功,还能得到运行结果。
vs->debug和nsight->cuda debug有什么区别吗,为什么nsight能成功,而vs就报错

VS直接进行的是Host Code调试,此时你就只能通过返回值得到错误信息(例如你得到的Unspecified Launch Failure).

NSight菜单里面选择的是Device Code调试,恕我直言,这种才是能真正的调试CUDA代码。你的代码99.9%并非能此时就运行成功了,而只是你没有发现BUG而已。请确保你在NSight菜单中选中了“Memory Checker”,然后重新使用Start CUDA Debugging看看。