用户
 找回密码
 立即注册
acone 该用户已被删除
发表于 2013-12-3 11:45:48
59113
我自己做的用CUDA解方程组的函数CudaSolveEquations( double * pdA, double * pdY, int nVectorSize ),pdA,pdY分别是系数矩阵和等号右边的数,nVectorSize为方程组的维数,函数运行后pdY存放方程组的解。在我的项目中当第一次调用的时候能够得到正确的解,第二次以后就不正确了。然而我把它作为一个单独的项目进行调试,运行结果都是正确的。我调试了好几天都没有找出问题出在了哪里。恳请各位版主提示一下一般情况下会是什么地方出了问题?
我把调试它的项目贴出来吧:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用道具 举报 回复
发表于 2013-12-3 12:15:36
LZ您好:

如果您单独调试该函数是正确的,而在您整体的项目中只有第一次是正确的,则请您检查后续调用时相关的参数是否正确。

祝您好运~
使用道具 举报 回复 支持 反对
发表于 2013-12-3 13:46:31
回ICE版大:我把三个参数无论是在函数前还是在函数里,每个元素都打印出来校对了一遍,都是正确的,然而结果就是不正确。
使用道具 举报 回复 支持 反对
发表于 2013-12-3 14:03:12
acone 发表于 2013-12-3 13:46
回ICE版大:我把三个参数无论是在函数前还是在函数里,每个元素都打印出来校对了一遍,都是正确的,然而结 ...

LZ您好:

大致翻看了您提供的超过400行的代码,不能直接目测出问题所在。

以及,注意到您的代码中有使用cudaDeviceReset(),这个函数将摧毁CUDA的当前上下文,如果您在完整的程序中循环计算的中途使用了这个函数,那么后续的计算必然是错误的,请将这个函数拿掉或者放置在return之前。

如果不是这个问题,请无视此建议。

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