找回密码
 立即注册
xingoo 该用户已被删除
发表于 2013-10-10 09:39:22
13195

我的VS2010+9300gs,总是不时的发生 内存0xcccccccc访问冲突,之后,所有其他独立的项目里面,以前能成功运行的代码就都提示这个错误了。但是,如果关机一段时间,重新启动,这个问题就小时了。
提示这个错误之后(这个错误在每天刚开机运行的时候,是不会提示的。运行一段时间就会提示这个错误),即便是新建一个项目,简单的申请一段地址空间也会报错。

请问,是我的显卡的问题吗?以前是否有人遇到过这个问题。

使用道具 举报 回复
发表于 2013-10-10 10:09:50
楼主您好:

这个和显卡无关,而是您的CPU代码(host code)上的问题。

以及,这是个VC特有的现象:
0xcc 0xcc 0xcc 0xcc代表了使用没有初始化过的栈内存。
同理0xcd 0xcd 0xcd 0xcd代表了没有初始化过的堆内存(例如你在使用malloc出来的东西,却没有初始化他们)。

因为这个是和CUDA无关的问题,而是CPU代码的问题(这个其实常见)。
所以贵贴将被移动到灌水专区。

感谢您莅临CUDAZone China
使用道具 举报 回复 支持 反对
发表于 2013-10-10 10:22:10
横扫千军 发表于 2013-10-10 10:09
楼主您好:

这个和显卡无关,而是您的CPU代码(host code)上的问题。

VC特有?那您知道如何解决吗?
使用道具 举报 回复 支持 反对
发表于 2013-10-10 10:56:25
横扫千军 发表于 2013-10-10 10:09
楼主您好:

这个和显卡无关,而是您的CPU代码(host code)上的问题。

还是没懂,即便说是未经过初始化,那我该如何对这样一个定义来初始化呢。
  1. curandGenerator_t gen ;
  2. float *devData, *hostData;
  3. hostData = (float *)calloc(n, sizeof(float));
  4. CUDA_CALL(cudaMalloc((void **)&devData, n*sizeof(float)));
  5. CURAND_CALL(curandCreateGenerator(&gen,CURAND_RNG_PSEUDO_DEFAULT));
  6. CURAND_CALL(curandSetPseudoRandomGeneratorSeed(gen,1234ULL));
  7. CURAND_CALL(curandGenerateUniform(gen, devData, n));
  8. CUDA_CALL(cudaMemcpy(hostData, devData, n * sizeof(float),cudaMemcpyDeviceToHost));
复制代码
使用道具 举报 回复 支持 反对
发表于 2013-10-10 10:57:49
xingoo 发表于 2013-10-10 10:56
还是没懂,即便说是未经过初始化,那我该如何对这样一个定义来初始化呢。 ...

这次是因为这个gen地址,报错访问冲突,而观察返回状态发现 curandGenerateUniform 函数失败了
使用道具 举报 回复 支持 反对
发表于 2013-10-10 12:02:49
xingoo 发表于 2013-10-10 10:57
这次是因为这个gen地址,报错访问冲突,而观察返回状态发现 curandGenerateUniform 函数失败了 ...

建议您检查一下curandGenerateUniform()这个函数的各个参数是否是合理而有效的。

以及您可以向上逐步检查一下,前面curandCreateGenerator()等语句是否正常。

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

zzczczxczxczx