使用 16位float 纹理类型时,我可以利用CUDA纹理过滤吗?我已经在CUDA 3D Array中使用 32位浮点纹理进行了测试,并且过滤工作正常。 CUDA不支持无符号短纹理插值,这对我来说非常完美,因为它占用的内存空间更少。
我正在考虑这个解决方案 - 如果我错了,请纠正我:
cudaCreateChannelDescHalf()
频道描述符tex3D()
函数获取值<击> 撞击> 见下面的答案......
答案 0 :(得分:2)
我再次回答我自己的问题。下次我会在发布之前尝试挖掘更多...
我认为问题在于纹理声明:
texture<unsigned short, cudaTextureType3D, cudaReadModeNormalizedFloat> tex;
如我所见,仅当返回的值为 float 类型时才支持过滤,如上所述,可以使用cudaReadModeNormalizedFloat
强制过滤。然后tex3D
返回[0; 1]插值浮点值。