在CUDA C编程指南第5版附录E.2(线性过滤)中,声明:
在这种仅适用于浮点纹理的过滤模式中,纹理提取返回的值是......
大胆的部分令我困惑.难道floating point仅仅意味着纹理元素类型或返回类型也?例如,我声明了3个纹理,如下所示.
texture<float,cudaTextureType2D> tex32f;
texture<unsigned char, cudaTextureType2D, cudaReadModeNormalizedFloat> tex8u;
texture<unsigned short, cudaTextureType2D, cudaReadModeNormalizedFloat> tex16u;
Run Code Online (Sandbox Code Playgroud)
线性过滤tex32f仅适用于,也适用于tex8u和tex16u?
这意味着线性滤波仅在纹理的"读取模式"时可用cudaReadModeNormalizedFloat,即整数类型(如u8)被提升为[0.0,1.0]范围内的浮点值(对于无符号整数)或[-1.0] ,1.0](对于有符号整数).