I have gotten my hands on a kernel which worked just fine (or seemed to anyway) on cuda 2.0. However, upon switching to cuda 2.1 calls to tex2D constantly fail - basically the kernel would simply exit (aka: break out/return) at that very function call, without any error flag set.
Unfortunately the kernel is fairly large and I am currently looking for input as to how to debug this.
Has anyone ever heard of something like this happening?
This happens both in emulation & device mode on at least a GeForce 8800 GTX and a Quadro FX 5600. If in device mode, it seems to happen less often - though still quite a few times. Furthermore it happens more often on the Quadro FX 5600 than the GeForce 8800 GTX.
Are you positive there is no error flag set? Have you explicitly put:
cudaThreadSynchronize();
error = cudaGetLastError()
if (error != cudaSuccess)
print error
after your kernel?
One case where I can think of this occuring would be if your texture is not bound. Or if you bound it with with the wrong bind comand (the one for tex1Dfetch).