Nsight调试CUDA程序忽略断点

感觉任何一个框架在上手时都要踩不少坑啊。这几天我就又踩了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.项目的路径不要有中文。




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值