【发布时间】:2012-03-14 09:45:16
【问题描述】:
我的内核线程以合并的方式访问线性字符数组。如果我映射 数组到纹理我没有看到任何加速。运行时间是 差不多一样。我正在研究具有计算能力 2.0 的 Tesla C2050 并阅读 全局访问被缓存的地方。真的吗?也许这就是为什么我 我没有看到运行时间的差异。
主程序中的数组是
char *dev_database = NULL;
cudaMalloc( (void**) &dev_database, JOBS * FRAGMENTSIZE * sizeof(char) );
我将它绑定到纹理texture<char> texdatabase
cudaBindTexture(NULL, texdatabase, dev_database, JOBS * FRAGMENTSIZE * sizeof(char) );
然后每个线程读取一个字符 ch = tex1Dfetch(texdatabase, p + id) 其中 id
是threadIdx.x + blockIdx.x * blockDim.x 和p 是一个偏移量。
我只绑定一次,dev_database 是一个大数组。其实我发现
如果大小太大,则绑定失败。数组的大小是否有限制
绑定?非常感谢。
【问题讨论】:
标签: memory cuda global textures