0
我试图将已映射为零拷贝的主机内存绑定到纹理,但看起来不可能。在CUDA中绑定固定映射内存的纹理
下面是一个代码示例:
float* a;
float* d_a;
cudaSetDeviceFlags(cudaDeviceMapHost);
cudaHostAlloc((void **)&a, bytes, cudaHostAllocMapped);
cudaHostGetDevicePointer((void **)&d_a, (void *)a, 0);
texture<float, 2, cudaReadModeElementType> tex;
cudaBindTexture2D(0, &tex, d_a, &channelDesc, width, height, pitch);
它是建议您所使用的固定内存和刚刚超过它复制到被绑定到纹理设备内存?
全局定义纹理吗?如果您从主机内存中读取纹理,也可以使用cudaHostAllocWriteCombined – fabrizioM 2010-04-15 07:36:32
是的,它是全局定义的。 cudaHostAllocWriteCombined通过避免缓存使得设备端的读取效率更高。 – sjchoi 2010-04-15 15:43:59