1.请问什么是a linear array,什么是CUDA array,它们有什么区别?
2.CUDA C BEST PRACTICE中有这样一句话“Texture references that are bound to CUDA arrays can be written to via surface-write operations by binding a surface to the same underlying CUDA array storage.”请问这句话怎么理解?特别是via surface-write operations,这是什么意思?
不要灌水了。手册都写着。楼主既然能看到best practices guide。为何不看一下programming guide呢。
不好意思,我真的不是灌水,以后尽量不提问这样的问题,因为我自己也把握不好什么样的问题属于不该提问的范畴,我遇到不会的就想到论坛了~:)
善哉。那是我的错。既然回复了,应该不是灌水机器人。不好意思。
(1)我们常用的就是线性缓冲区,(例如malloc和例如cudaMalloc出来的)。而CUDA Array则是一些描述信息+特定的缓冲区(或者你理解为一个对你透明,你不需要知道内部如何实现的类型)可用一些函数和某个纹理、表面引用绑定。以及用一些函数复制到内存或者复制过去到CUDA Array. 它是纹理读取,或者表面读写的对应的内存空间。
(2)第二个问题。表面相当于简单的可以写的纹理(但写入不是立刻有效。一般认为下次kernel启动才有效。因为表面也用texture cache, 而texture cache和L2不维持一致性,在fermi上)。此外具体那些函数可以读写表面,他们有什么用,可以看下手册。
大致如此。欢迎楼主继续发帖。不好意思。(最近灌水机器人太多,每天都一大批,不小心误伤。我为我不知道您是人类表示抱歉。。)