用户
 找回密码
 立即注册
娟子 该用户已被删除
发表于 2013-10-22 14:48:44
77305
cudaBindTexture2D(NULL, texIniImg,
  cuArrayIn,
  channelDesc, 128, 128,
  sizeof(float) * 128);
当更新cuArrayIn时,如何使绑定到的纹理内存texIniImg也相应的更新?
使用道具 举报 回复
发表于 2013-10-22 14:52:40
楼主您好:

只要对应的cuda array中的内容已经被改变,那么相应的纹理读取将自动改变。
(需要注意的是,改变将在下次kernel启动生效,而不是立即)

感谢来访。
使用道具 举报 回复 支持 反对
发表于 2013-11-11 09:21:34
横扫千军 发表于 2013-10-22 14:52
楼主您好:

只要对应的cuda array中的内容已经被改变,那么相应的纹理读取将自动改变。

谢谢版主,不过最近写程序的时候,因为需要更新纹理数据,所以就这样修改了下cuda array的数据cudaMemset(cuArrayIn, 0, 128*128*sizeof(float));

                        cudaMemcpyToArray(cuArrayIn,
                                0,
                                0,
                                pdInitImg,
                                128*128*sizeof(float),
                                cudaMemcpyHostToDevice);但核函数执行完后回返回invalid argument,这样的思路是不是不可行?
使用道具 举报 回复 支持 反对
发表于 2013-11-11 09:30:54
娟子 发表于 2013-11-11 09:21
谢谢版主,不过最近写程序的时候,因为需要更新纹理数据,所以就这样修改了下cuda array的数据cudaMemset ...

LZ您好:

invalid argument一般说明您使用API函数的时候,参数是不正确的,请您检查并修正。

祝您好运~
使用道具 举报 回复 支持 反对
发表于 2013-11-11 15:47:43
娟子 发表于 2013-11-11 09:21
谢谢版主,不过最近写程序的时候,因为需要更新纹理数据,所以就这样修改了下cuda array的数据cudaMemset ...

楼主你好,

cudaMemset不能给cuda array赋值的,整天乱用!你用之前看了手册中此函数的说明了么? 用一个东西前,你的知道这东西是干嘛的,写代码需要一定的逻辑性的,不可以根据自己的情绪变化就随便写。

此外,关于你的kernel,请连续给出此kernel启动语句附近的所有语句。
而不要节选你认为有问题的地方,因为你的知识层次不够,你节选可能会将问题所在给“节选”出去了。(不是说你发的此段代码无问题,而是说别的地方可能也有问题,建议发全)

感谢来访。
使用道具 举报 回复 支持 反对
发表于 2013-11-11 17:23:50
玫瑰幻想 发表于 2013-11-11 15:47
楼主你好,

cudaMemset不能给cuda array赋值的,整天乱用!你用之前看了手册中此函数的说明了么? 用一 ...

版主太犀利了,受教了,谢谢
使用道具 举报 回复 支持 反对
发新帖
您需要登录后才可以回帖 登录 | 立即注册