, 浮动, 浮动) [with T=float]?,cuda"/>

首页 > 解决方案 > 如何替换已弃用的 tex2D(texture, 浮动, 浮动) [with T=float]?

问题描述

在 cuda 11.3 程序中,我正在使用

tex2D(texture<T, 2, cudaReadModeElementType>, float, float)

在 texture_fetch_functions.h(198) 中声明已弃用。用什么代替它?以及如何使用它?

警告:函数 "tex2D(texture<T, 2, cudaReadModeElementType>, float, float) [with T=float]" 2>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\include\texture_fetch_functions.h (198): 这里被宣布弃用

标签: cuda

解决方案


纹理历来有两种使用模型:纹理引用和纹理对象。纹理引用是 CUDA 提供的“原始”机制,纹理对象是在 Kepler 一代 GPU 中引入的。

CUDA 11.3 中不推荐使用纹理参考。几乎所有你可以用纹理引用做的事情都可以用纹理对象来完成,只需进行一些重构。

您指定的 API 的替换 API 记录在此处。标签上有很多问题,cuda讨论纹理参考的使用和纹理对象的使用,这篇介绍性的博客介绍了重构以使用纹理对象的好处。

tex2D()是一个使用纹理对象的完整示例。


推荐阅读