每次纹理拾取, 需要对纹理对象API提供一个纹理对象, 或者对纹理引用API提供一个纹理引用,纹理引用是老API,纹理对象是新API。OpenCL中相对CUDA的, 只有纹理对象。...纹理引用有很多缺点, 例如只能全局变量, 不能作为参数之类的。 后来CUDA从某个版本起, 加入了纹理对象这一套,但以前的老代码还是兼容的, 老纹理引用的也能用。用不用都可以。反正手册上两个都有。...因此现在你无论是直接读取, 还是用纹理读取, 都能享受到。但纹理的其他特性, 例如CUDA Array的元素安排方式所带来的加速,纹理自动边界处理, 自动坐标映射, 自动值映射,这些就享受不到了。...很多人普通访存需要判断是否越界, 很麻烦,特别是一个很大很大的图片, 或者矩阵,边界处的那些线程数量其实很少,但是为了防止越界, 每个线程都要判断一下自己是否在合理的范围内,用纹理读取可以直接黑上, 越界不会挂...纹理读取不会越界,但会产生各种自动处理效果。默认的是钳位模式,
越界后持续返回最后的合法的边界值。也就是你看到的拉伸效果。