用户
 找回密码
 立即注册
xingoo 该用户已被删除
发表于 2013-10-10 09:31:08
60543
我在正常的执行能运行的情况下,用nsight调试。可是却出现下面的提示:


内核部分的代码:
  1. __global__ static void kernel(int *d_ws,int *d_degree,float *devData,int dis,int max,double p){
  2.         const int tid = threadIdx.x;
  3.        
  4.         if(tid < dis){
  5.                 if( devData[tid] < p)
  6.                         d_ws[tid*max]=d_ws[tid*max]*2;
  7.                 else
  8.                         d_ws[tid*max]=3;
  9.         }
  10. }
复制代码
是我的nsight配置问题吗?

本帖子中包含更多资源

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

x
使用道具 举报 回复
发表于 2013-10-10 10:14:20
楼主您好,

不是您机器上的NSight产品有问题,而是您的代码有问题。
您图片右下角已经提示了Memory Check Detected **** access violations。
这代表您的代码存在越界的非法访问。

具体地点,您可能在如下下标计算上导致了越界:
d_ws[tid * max]
当您的tid * max 大于等于于d_ws中的元素总数的时候,您将会导致错误。
请修正此问题。

感谢您的来访。
使用道具 举报 回复 支持 反对
发表于 2013-10-10 10:15:30
LZ您好:

您在读取global memory的时候访存越界了,请您检查您的代码。
您单独贴出的kernel部分的代码不足以为您指出具体哪里出现越界,请您连同您的host端申请device端缓冲区的代码等一并分析。

祝您好运~
使用道具 举报 回复 支持 反对
发表于 2013-10-10 10:33:47
ice 发表于 2013-10-10 10:15
LZ您好:

您在读取global memory的时候访存越界了,请您检查您的代码。

噢,好的,我自己再检查下,多谢提醒
使用道具 举报 回复 支持 反对
发新帖
您需要登录后才可以回帖 登录 | 立即注册