cuda 2D分层tex尺寸:太大了?

时间:2017-04-20 01:56:24

标签: memory cuda texture2d

如果代码在cuda中启动3D数组,其大小为width = 809;高= 127;和层数= 2160;

cudaArray *sinor;
    cudaExtent volumeSize = make_cudaExtent(809, 127, 2160);
const cudaChannelFormatDesc channelDesc = cudaCreateChannelDesc<float>();
gpuErrchk(cudaMalloc3DArray(&sinor, &channelDesc, volumeSize, cudaArrayLayered));

最后一行返回错误“invalid argument”错误。那是因为我的层数太大了吗?我试过1940年,很好。如果我不能做这么多层,那么这里的工作是什么?非常感谢。

1 个答案:

答案 0 :(得分:1)

您可以在文档here上找到纹理图层深度限制。如您所推断,分层纹理和曲面的深度限制为2048。

正如评论中所建议的,这里唯一真正的解决方法是将数据分割到多个纹理对象上,并根据虚拟组合纹理中的索引在对象之间进行选择。