用户
 找回密码
 立即注册
翊君 该用户已被删除
发表于 2013-11-11 11:40:07
93625
我写好了一个程序,用debug模式运行并调试,结果出来了,正确。但是白高兴了,当我把编绎模式换成release时,运行的结果竟然不一样,并且是错误的。请版主指点。
使用道具 举报 回复
发表于 2013-11-11 11:47:04
前两天用VS2008,CUDA5.0的时候测试过是好的,现在换VS2010,CUDA5.5就这样了。
使用道具 举报 回复 支持 反对
发表于 2013-11-11 11:57:58
翊君 发表于 2013-11-11 11:47
前两天用VS2008,CUDA5.0的时候测试过是好的,现在换VS2010,CUDA5.5就这样了。

LZ您好:

这种事情一般不会发生,但是如果确实发生了,并且您确实排除了一些常见的疏忽和设置问题,那么一般情况下是您的代码依然存在问题,有极小的可能是运行环境存在BUG。

建议您仔细调试代码,祝您好运~
使用道具 举报 回复 支持 反对
发表于 2013-11-11 13:41:22
DEBUG与RELEASE好像只是编译的一些参数不同,另外debug会为某些未初始化的指针设置一个默认的值0xccccccc之类,如果release下发生错误,很可能也是因为一些指针之类的未初始化。仅供参考....
使用道具 举报 回复 支持 反对
发表于 2013-11-11 21:42:10
xingoo 发表于 2013-11-11 13:41
DEBUG与RELEASE好像只是编译的一些参数不同,另外debug会为某些未初始化的指针设置一个默认的值0xccccccc之 ...

用来分配显存的那指针就不用初始化了吧,开辟的共享内存是要用显存数据填充的,也没有初始化。设置的一些中间变量已经初始化了。实在是找不到原因,我用肉眼也无法检查出问题的,用DEBUG调试又是正确的。用其它程序测试没有出现这个问题,看来就是我的程序问题了。可是前几天用CUDA5.0测试又是对的。。。哎
使用道具 举报 回复 支持 反对
发表于 2013-11-11 22:07:25
翊君 发表于 2013-11-11 21:42
用来分配显存的那指针就不用初始化了吧,开辟的共享内存是要用显存数据填充的,也没有初始化。设置的一些 ...

LZ您好:

4#的本意可能是指在debug模式下,分配的内存空间会被自动填充,以利调试,而在release模式下,分配的空间是是不填充的,里面的内容是随机的,由使用者保证对分配空间的初始化。

大致如此,暂无其他建议。

祝您好运~
使用道具 举报 回复 支持 反对
发新帖
您需要登录后才可以回帖 登录 | 立即注册