使用16 位浮点纹理类型时可以利用 CUDA 纹理过滤吗?我已经在 CUDA 3D Array 中使用32 位浮点纹理进行了测试,并且过滤效果很好。CUDA 不支持无符号短纹理插值,这对我来说是完美的,因为它占用的内存空间更少。
我正在考虑这个解决方案 - 如果我错了,请纠正我:
- 将我的无符号短数据转换为 [0;1] 范围内的16 位浮点数;(如何?)
- malloc 3D 数组宽度
cudaCreateChannelDescHalf()
通道描述符 - 将无符号短数据的纹理绑定到该数组
- 将其发送到 GPU 内存,放入 3D 数组;
- 在内核中 - 使用
tex3D()
函数获取值
请看下面的答案...