CUDA纹理和夹紧
CUDA textures and clamping
是否有办法将范围外的纹理地址箝位到某个值?在我的例子中,我希望它们被设置为一个简单的0,但是我需要的地址模式似乎不存在。
谢谢。
编辑:知道cudaAddressModeBorder
设置是什么吗?
我不认为有一种方法来指定钳位,但你可以做明显的,并在边缘周围添加一个1像素的黑色(零)边框,并将你的寻址偏移1。它应该不会有太多的数据,它会让你免费夹紧。
如果你有一个最大尺寸的2D纹理(对于CUDA 2。x是64k x 64k),每像素16字节(最坏的情况),那么你只会看到4 MB的额外数据用于1像素边界,对于PCIe x16卡将需要大约500微秒的时间复制到卡上——即使在最坏的情况下也几乎没有什么。
当使用Surface函数访问纹理时,可以将边界模式设置为返回零。我现在不能测试它,因为你需要一个计算能力2.0+的设备,但你可以查看NVIDIA CUDA C编程指南(版本3.2)中的参考资料,章节B.9 p.114。
我们还可以夹紧边界并捕获它(使内核失败),这是使用表面内存时的默认值。
问候!
相关文章:
- 编译时未启用intel oneApi CUDA支持
- OpenInventor从9.8升级到10.4.2后,GLSL纹理返回零
- 在cuda线程之间共享大量常量数据
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- 使用 CUDA 和纹理进行图像减法
- Cuda 从黑/白图像创建纹理对象
- 为什么我的数据不适合CUDA纹理对象
- Cuda-从设备全局内存复制到纹理内存
- CUDA 纹理无法返回无符号长长长的值类型
- 了解纹理如何与 CUDA 配合使用
- CUDA 中的全局内存和纹理有什么区别?
- 如何在结构中嵌入CUDA纹理对象
- CUDA动态并行性:使用纹理内存时无效的全局写入
- 结合纹理记忆统一记忆在CUDA 6
- CUDA模板内核和纹理
- CUDA中作为纹理的3D阵列写入和读取
- 如何在CUDA中将不同种类的纹理绑定到纹理引用
- CUDA纹理对象问题
- 使用CUDA, SFML和OpenGL:纹理拒绝出现在Quad上
- CUDA纹理和夹紧