【发布时间】:2012-02-18 15:36:47
【问题描述】:
我有一个 CUDA 计算能力 2.0 显卡和 CUDA Toolkit 4.0,我想使用新的 tex2DLayered 纹理查找功能。但是,我的数组的大小(1280 x 960 x 200 层,无符号短)太大而无法分配这种大小的 cuda3DArray,所以我想将倾斜的线性内存绑定到纹理。但是,我在任何 CUDA 文档或 SDK 示例中都找不到有关如何执行此操作的任何描述,包括使用 cuda3DArray 而不是线性内存的简单分层纹理示例。我也在网上搜索过,没有成功。
谁能提供绑定纹理所需的代码,或者提供一些有关如何执行此操作的说明的链接?谢谢。
【问题讨论】:
-
我不相信分层纹理适用于线性内存,只能适用于 cuda 数组。
-
是在文档中的某个地方吗?
-
好吧,文档只提到了 cudaArrays,而不是倾斜的线性内存。通常,如果没有明确列出线性内存,可以安全地假设它不受支持。硬件实现可能与 DX10 纹理数组相同,并且使用空间填充而不是线性内存 AFIAK 来实现。
-
找到了。谢谢。 CUDA C Programming Guide v4.0 的第 3.2.10.1.5 节指出:“分层纹理只能绑定到通过使用 cudaArrayLayered 标志调用 cudaMalloc3DArray() 创建的 CUDA 数组(对于一维高度为零)分层纹理)。”
标签: cuda