gpt4 book ai didi

c++ - tex1Dfetch 和 2D 纹理

转载 作者:行者123 更新时间:2023-11-30 05:19:59 25 4
gpt4 key购买 nike

如果我声明一个无绑定(bind)纹理对象

cudaResourceDesc resDesc;
memset(&resDesc, 0, sizeof(resDesc));
resDesc.resType = cudaResourceTypeLinear;
resDesc.res.linear.devPtr = device_global_memory_ptr;
resDesc.res.linear.desc.f = cudaChannelFormatKindUnsigned;
resDesc.res.linear.desc.x = 8 /* 8 bit */ ;
resDesc.res.linear.desc.y = resDesc.res.linear.desc.x;
resDesc.res.linear.desc.z = resDesc.res.linear.desc.x;
resDesc.res.linear.desc.w = resDesc.res.linear.desc.x;
resDesc.res.linear.sizeInBytes = buffer_bytes_size;

cudaTextureDesc texDesc;
memset(&texDesc, 0, sizeof(texDesc));
texDesc.readMode = cudaReadModeElementType;
texDesc.filterMode = cudaFilterModePoint;
texDesc.addressMode[0] = cudaAddressModeBorder;
texDesc.addressMode[1] = cudaAddressModeBorder;
texDesc.addressMode[2] = cudaAddressModeBorder;

cudaTextureObject_t tex1;
cudaCreateTextureObject(&tex1, &resDesc, &texDesc, NULL);

我后来在 CUDA 内核中使用它作为

uchar4 pixel = tex1Dfetch<uchar4>(tex1, index);

我还能得到 2D 纹理缓存的好处吗?还是缓存取决于 tex1Dfetch 指令?不幸的是,我无法让上面的代码与 tex2D 一起工作。

最佳答案

不,我不会得到 2D 纹理缓存的好处。

如果你只使用 tex2D 它也不会工作:我通过使用 cudaMallocArray 正确分配数据然后使用 tex2D 来让它工作.

关于c++ - tex1Dfetch 和 2D 纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40883452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com