CUDA的纹理记忆结构

CUDA的纹理记忆结构,c,cuda,nvidia,C,Cuda,Nvidia,我有一个数组,包含两个元素的结构,我将其发送到全局内存中的CUDA,并从全局内存中读取值 当我阅读一些书籍和帖子时,由于我只从结构中读取值,我想如果可以将数组存储在纹理内存中,我会很感兴趣。我在内核之外使用了以下代码: texture<node, cudaTextureType1D, cudaReadModeElementType> textureNode; 在我的内核中,我使用了以下内容: printf("Here %d\n",tex1Dfetch(texture

我有一个数组,包含两个元素的结构,我将其发送到全局内存中的CUDA,并从全局内存中读取值

当我阅读一些书籍和帖子时,由于我只从结构中读取值,我想如果可以将数组存储在纹理内存中,我会很感兴趣。我在内核之外使用了以下代码:

texture<node, cudaTextureType1D, cudaReadModeElementType> textureNode;
在我的内核中,我使用了以下内容:

        printf("Here %d\n",tex1Dfetch(textureNode, 0 ));
但是我确实有一个编译错误,在第一行中使用“node”,但是如果我用int替换它,它会编译,但我的重点是通过使用以下内容访问我的结构数组中的元素:

tree[i].left; 
我尝试了很多方法,但都没能成功,所以我想知道这是否可行


谢谢

纹理仅支持CUDA内置类型。无法将用户结构绑定到纹理

如果您的结构恰好与CUDA内置向量类型具有相同的大小和对齐方式,则可以假装它是内置类型并绑定它,但这只是空想

tree[i].left;