2 andy  zou Andy__Zou 于 2016.03.08 16:54 提问

写入位置时发生访问冲突。自己写了个函数用来读取device中的数据至OMEGA中 调用时报错 5C
 OMEGA=ReadtoOMEGA(temp_data,OMEGA,width,num_pixels,bands,e1,count_Duanyuan);

 float * ReadtoOMEGA(void const * const device,float * OMEGA,size_t const width,size_t const num_pixels,size_t const bands,int e,int count)
{
    int i=0,posOmega=0,posData=0;
    float *ptr=(float *)device;
    float *ptr_OMEGA=(float *)OMEGA;
#pragma unroll
    for (i=0;i<bands;i++)
    {
        posOmega=i+count*bands;
        posData=e+i*num_pixels;
        ptr_OMEGA[posOmega]=ptr[posData];
    }
    //float *OMEGA_temp=(float *)ptr_OMEGA;
    //OMEGA=OMEGA_temp;
    return ptr_OMEGA;
}

3个回答

wangzhiyu1980
wangzhiyu1980   2016.03.08 17:02

没有错误信息,恐怕不太好看。

Andy__Zou
Andy__Zou 出现这样的报错信息
接近 2 年之前 回复
Andy__Zou
Andy__Zou   2016.03.08 17:05
wangzhiyu1980
wangzhiyu1980   2016.03.08 23:50

你这个是用 cuda做图像处理吗?

如果有矩阵计算转置的话,可以注意一下边界,可以看看是不是有越界了。

内存使用出问题
1)可以看看是不是用了空指针,指针没有分配内存就用了。

2)用了野指针。

3)最坏的情况看看是不是有踩内存的状况发生。

在详细恐怕就得单步调试,打印一些log了。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!