我正在开发一个小cuda库,被这个烦人的tex ref问题所困住。Cuda cudaGetTextureReference返回“无效的纹理参考”
这是从CUDA C编程指南,Page43〜44中的示例代码:
texture<float, cudaTextureType2D,cudaReadModeElementType> texRef;
textureReference* texRefPtr;
cudaGetTextureReference(&texRefPtr, "texRef");
cudaChannelFormatDesc channelDesc;
cudaGetChannelDesc(&channelDesc, cuArray);
cudaBindTextureToArray(texRef, cuArray, &channelDesc);
当我执行它,线cudaGetTextureReference(...)返回错误代码cudaErrorInvalidTexture
。 我无法在互联网上找到许多关于cudaGetTextureReference的其他示例,其中大多数都遵循与上述示例代码完全相同的过程。
沮丧,我尝试了高层次的API算账:
texture<float, cudaTextureType2D,cudaReadModeElementType> texRef;
cudaBindTextureToArray(texRef, cuArray);
同样的问题。 如果从内核中的纹理中读取,所有的值都是零。
我的全玩具测试代码,100%再生率:(WIN7,CUDA 5.0)
texture<float, cudaTextureType2D, cudaReadModeElementType> texRef;
int main()
{
const textureReference *tref = NULL;
checkSuccess(cudaGetTextureReference(&tref, "texRef"));
pauseConsole();
return 0;
}
任何了解针对此问题,将不胜感激。 由于
香港专业教育学院读了有点太API的一个过时的版本。但是,您提供的代码不会编译。 – Defd 2013-03-14 11:51:28
@Defd ..对不起,正如talonmies指出的那样,代码中有一个错误。 – sgarizvi 2013-03-15 01:13:58