关于Nsight调试的问题

vs2012+cuda5.5的环境,显卡计算力为2.1。我从默认的compute_10,sm_10改到compute_20,sm_21后,Nsight调试变得很慢,运行些较复杂的函数时有时几乎没有反应。这是什么原因。。。

楼主您好:

我没有遇到过改成sm_21后,调试变的很慢的问题。
在nsight的多年中,也没有遇到过其他用户反馈变慢的问题。

建议您等待其他会员、版主、NVIDIA原厂支持、总版主为您解答。

感谢来访。

还出现了改成sm21后,计算结果不正确了的现象。。。

楼主您好,

从sm_10改成sm_21后,结果一般会多少发生不同,
但和你估计的恰恰相反,一般sm_21上的结果是比老计算能力,以及比CPU更为精确的结果,而不是错误。

您觉得呢?

感谢来访。

我来补充一下玫瑰斑竹:

除了玫瑰斑竹说的那种情况以外,LZ不妨提供一下您的具体问题,到底是计算精度有差异被认为是“结果错误”呢?还是其他方面您的错误?以及您是否使用了shared memory?

不妨将您的测试代码简单贴一下。

祝您调试顺利~

调试过程中为什么有些数组的值出现
“[0] 对象的当前状态使该操作无效。 unsigned char[4] device
的情况呢

LZ您好:

我未曾见过这个情况,请其他人补充。
或者您也可以进一步提供您的详细情况。

以及,您这个在调试过程中的问题,是否影响了您的计算结果?

好像是多维数组拷贝的问题

typedef unsigned char byte;
static byte H_S[8][8];
__device__ byte S[8][8];

main(){
cudaStatus=cudaMemcpyToSymbol(S,H_S,64,0,cudaMemcpyHostToDevice);
}  

这样在用Nsight调试的时候就查看不了S中的值了,出现“对象的当前状态使该操作无效”。这是在sm21的时候出现的,如果设置为sm10,就不会这样。是多维数组不能用cudaMemcpyToSymbol拷贝吗?

LZ您好:

您的代码目测无问题的,尚不知道您提出问的原因所在。

祝您好运~

您的代码经横扫斑竹上机调试实测无问题的,调试也无问题,使用的也是sm_21。

您不妨检查下您的软硬件环境。

祝您好运~

我这里只要是定义多维数组,用sm21编译,就看不见里面的值。但用sm10就可以。现在比较头疼的是用sm21编译运行后,结果不是我想要的,但又看不到值来调试。sm21
[attach]3455[/attach] sm10
[attach]3454[/attach]

lz的问题解决了吗,我也遇到同样的问题。。。

没有解决,只能用其他办法查看多维数组里的值了,比如指针