我正在開發一個小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