Nsight调试CUDA程序忽略断点
2016-11-02 15:08
197 查看
感觉任何一个框架在上手时都要踩不少坑啊。这几天我就又踩了CUDA的一个坑。现记录于下,供有需要的人参考。
环境
win7 + CUDA7.5 + VS2012
问题描述
使用CUDA编程时,在核函数内设置断点,用Nsight进行调试。点击Nsight->start CUDA debugging后,Nsight忽视断点,直接执行。项目文件是老师给的例子,使用VS2013创建。
解决过程
先是百度、Bing、google一通找,尝试各种博客、stackoverflow、Nvidia 开发人员论坛里的方法,没有一个行得通。无奈之下只好仔细查看官方文档、按照文档指引进行设置,然而还是不行。问老师,答曰:不要用自己的项目进行调试,用官方文档中提到的Sample进行调试。尝试之,在Sample项目上果然能行。但回到自己的项目,又失败。仔细对比两个项目的项目属性,将自己项目的项目属性设置成与Sample项目一致,还是以失败告终。最后突发奇想,新建一个CUDA项目,把老师给的例子中的项目文件添加到新项目中,生成,调试,终于成功。
解决方案
不要使用VS版本不同的项目文件,使用当前VS版本的项目文件。(貌似可以向下兼容,但不能向上兼容。因为sample项目是VS2010创建的,使用CUDA Debugging没有问题。而老师给的项目是VS2013创建,CUDA Debugging出现问题。)
----------------------11.6更新----------------------------------
几个同学也遇到了Nsight忽视断点 的问题,但参照我的方法并不能成功。费了很大的劲才解决,现记录于下:
1.在属性->CUDA c/c++->Device中Code Generation一栏,填写适合自己显卡的compute 和 sm。我们的显卡都是GX850m,对应的是compute_50,sm_50。其余显卡可以上英伟达官网去查,或者运行samples中的matrixMul例子,它会告诉你你的显卡的计算能力。
2.项目的路径不要有中文。
环境
win7 + CUDA7.5 + VS2012
问题描述
使用CUDA编程时,在核函数内设置断点,用Nsight进行调试。点击Nsight->start CUDA debugging后,Nsight忽视断点,直接执行。项目文件是老师给的例子,使用VS2013创建。
解决过程
先是百度、Bing、google一通找,尝试各种博客、stackoverflow、Nvidia 开发人员论坛里的方法,没有一个行得通。无奈之下只好仔细查看官方文档、按照文档指引进行设置,然而还是不行。问老师,答曰:不要用自己的项目进行调试,用官方文档中提到的Sample进行调试。尝试之,在Sample项目上果然能行。但回到自己的项目,又失败。仔细对比两个项目的项目属性,将自己项目的项目属性设置成与Sample项目一致,还是以失败告终。最后突发奇想,新建一个CUDA项目,把老师给的例子中的项目文件添加到新项目中,生成,调试,终于成功。
解决方案
不要使用VS版本不同的项目文件,使用当前VS版本的项目文件。(貌似可以向下兼容,但不能向上兼容。因为sample项目是VS2010创建的,使用CUDA Debugging没有问题。而老师给的项目是VS2013创建,CUDA Debugging出现问题。)
----------------------11.6更新----------------------------------
几个同学也遇到了Nsight忽视断点 的问题,但参照我的方法并不能成功。费了很大的劲才解决,现记录于下:
1.在属性->CUDA c/c++->Device中Code Generation一栏,填写适合自己显卡的compute 和 sm。我们的显卡都是GX850m,对应的是compute_50,sm_50。其余显卡可以上英伟达官网去查,或者运行samples中的matrixMul例子,它会告诉你你的显卡的计算能力。
2.项目的路径不要有中文。
相关文章推荐
- NSight Eclipse Edition 下创建CUDA程序并执行远程编译及调试
- 使用NSight进行CUDA调试,只能进行GPU代码调试,不能进入CPU端代码断点
- 断点调试script脚本程序
- vs2005 ppc 程序不能打断点调试
- 利用条件断点进行程序调试
- java中如何用断点调试程序
- 调试CPU和CUDA写的程序发现我的C++果然只有75分
- 断点调试script脚本程序
- 利用消息断点进行程序调试
- 利用数据断点进行程序调试
- Eclipse中断点调试j2me程序方法
- vs2005 调试程序时:当前不会命中断点 源代码与原始版本不同
- XCode里插入调试断点,程序却不停止的解决方法
- 调试技巧(断点调试的各种技巧,让你调试程序更得心应手)
- 利用数据断点进行程序调试
- 即时调试(Just-in-timeDebugging) Visual Studio调试 断点中断程序的执行(断点指令)
- XCode里插入调试断点,程序却不停止的解决方法
- 调试程序的时候,断点尽量别放在cftransaction里。
- 【调试技巧】图解如何在VC6,VS2008中设置程序条件断点
- window CE 程序调试 当前断点不会命中 无法调试