我有问题绑定到纹理内存全局设备内存的一个子部分。CUDA纹理内存绑定全局内存的子部分
我有充满存储器的大全球装置阵列如下:
双* device_global; ((** **)& device_global,sizeof(double)* N));
cudaMemcpy(device_global,host,sizeof(double)* N,cudaMemcpyHostToDevice));
我在for循环中运行多个内核。
每个内核所需其我绑定到纹理通过device_global
一小部分(INT偏移量= 100):
cudaBindTexture(0,texRef的,device_global,channelDesc,的sizeof(双)* 10) ;
但是,我面临的问题是,我无法使用指针算术来仅通过循环偏移来绑定循环部分device_global
。
我想这样做:
cudaBindTexture(0,将texRef,device_global + offsett * 1,channelDesc,的sizeof(双)* 10);
应该指出的是,如果偏移量设置为0,上述方法可以工作,但某种程度上指针算术不起作用。
任何帮助或其他指导方针将不胜感激。
IIRC指针算法是确定的,即使是设备指针。您是否在循环结束时解除了纹理?什么是错误? – LumpN 2011-03-30 17:07:52