【发布时间】:2010-12-29 21:35:36
【问题描述】:
我对 OpenCL 还很陌生,所以请多多包涵。
在我的代码的第一次迭代中,我为大型数据集使用了基本内存缓冲区并将它们声明为全局。然而,现在我正在寻求改进时间,我想为此使用纹理内存。在 CUDA 版本中,我们使用 cudaBindTexture 和 tex1Dfetch 来获取大型一维浮点数组的数据。根据我对规范的理解,纹理内存与图像内存是一回事。但是,由于只有最大高度和宽度的 2D 和 3D 图像对象,我遇到了一些问题。我的数组大于最大高度/宽度,但不是最大高度 * 最大宽度。我必须将我的一维数组转换为二维吗?还是有更好的方法?
还是说我完全不在了?
我确实阅读了 http://forums.nvidia.com/index.php?showtopic=151743 和 http://forums.nvidia.com/index.php?showtopic=150454,但它们并不能完全确定最佳实践和编程指南中提到的纹理内存是否实际上是图像对象。
谢谢,非常欢迎任何帮助/建议!
【问题讨论】:
标签: optimization memory cuda textures opencl