cudaArray赋值问题

我之前的实现是: 在GPU设备上全局存储器上创建一个3D的线性内存,并且在kernel计算中给这个3D线性内存的每个元素赋值,然后再绑定到纹理存储器。即整个过程不用从CPUcopy数据给GPU。

如果我现在改为使用3DCuda数组,在GPU端的全局存储器创建cuda数组,我还能先在kernel里直接对全局存储器中的cuda数组赋值,然后再绑定到纹理存储器吗?是不是cuda数组在GPU全局存储器上不能被写?GPU端只能写全局存储器中的线性数组,然后再在GPU端把全局存储器中的线性数组拷贝给全局存储器端的cuda数组?

我看到sdk里的示例都是直接从host端赋值给device端的cuda数组,难道不能直接在device端直接赋值吗?

谢谢。

可以

可以使用surf memory写cudaArray