[有奖问答]简单的问题,二维线性空间如何绑定到2为texture上?

//2位数组的长宽分别为height,width
float Src;
int pitch;
//GPU的全局存储器申请了空间src
cudaMallocPitch((void
*)&Src, &pitch, (size_t)(width * sizeof(float)), (size_t)height);

//将CPU内存中的data 拷贝到到GPU上的src
//图像已经在float* data中,长宽也为height,width
cudaMemcpy2D(Src,pitch,data,(size_t)width* sizeof(float) ,(size_t)width* sizeof(float), (size_t)height,cudaMemcpyHostToDevice);

//然后绑定到纹理内存2位float的TexInt
//这步有问题吗?
texture<float, 2, cudaReadModeElementType> TexInt;

cudaChannelFormatDesc channelDesc = cudaCreateChannelDesc();
cudaBindTexture2D(0, TexInt, Src, &channelDesc,width * height * sizeof(float),pitch));

//然后访问的时候是用
tex1Dfetch(x,y)
还是tex2D(x,y)?

拷贝那一步两个都传的width * sizeof(float) ,有一个应该是pitch
texture一般定义在函数外,作为全局变量
tex2D

[ 本帖最后由 Nvidia_CTC 于 2010-6-21 16:05 编辑 ]

下面一个

用tex2D(x,y)

谢谢