用户
 找回密码
 立即注册
cobralw 该用户已被删除
发表于 2013-6-17 17:59:41
51193
我写的核函数返回的错误数值为30,unknown error,上次一个斑竹告诉我说是核函数访存错误。我调试发现,设备上要处理的数据都显示  0x00000000  ???        请问是为什么?
代码结构是
主机数据和设备数据都是全局变量,都在整个程序完结后进行释放
两个核函数a和b,分别由两个主机函数A和B封装

函数A中进行了显存分配等工作,并调用核函数a处理数据(运行正确,且能将数据传回主机显示结果)
函数B中的核函数b处理核函数a处理的结果,访问显存的时候为什么会出现问号呢?

分开写的原因是,函数A调用了四次,每次生成一组数据,但函数B处理时需要两组数据,所以分开写。

A调用四次,将所有设备数据均分配了显存,且执行完未释放,函数B中核函数b为何不能访问?




使用道具 举报 回复
发表于 2013-6-17 18:02:25
LZ您好:

您还是贴代码吧,这么描述没人能猜出来是怎么回事。

祝您好运~
使用道具 举报 回复 支持 反对
发表于 2013-6-17 18:12:14
ice 发表于 2013-6-17 18:02
LZ您好:

您还是贴代码吧,这么描述没人能猜出来是怎么回事。

代码太长,有很多的转换坐标系操作,贴出来也看不出名堂来
出错的那个核函数就是传进来要处理的两组数据,说简单点就是两个坐标系的数据,我把这个坐标系的数据投影到另一个坐标系中,传进来的参数就也有转换坐标系用的旋转平移矩阵等
用nsight调试的时候,发现这些矩阵数据全都是 0x00000000  ???

而在生成这些数据的核函数中,并无错误
简单的结构是:
声明主机、设备数据        //全局
A()     //传进去一组主机设备数据并调用核函数a生成一组数据,没有释放
A()
A()
A()

B()    //传进去两组上面生成的数据,以及一些转换矩阵,但B中的核函数b访存错误
使用道具 举报 回复 支持 反对
发表于 2013-6-18 11:02:24
ice 发表于 2013-6-17 18:02
LZ您好:

您还是贴代码吧,这么描述没人能猜出来是怎么回事。

http://cudazone.nvidia.cn/forum/ ... &extra=page%3D1
使用道具 举报 回复 支持 反对
发新帖
您需要登录后才可以回帖 登录 | 立即注册