I have a question about reading “double” from texture memory. I want to bind texture memory on a double precision floats array and fetch their values in kernels.
I saw its answer from CUDA2.1 FAQ BUT the solution does not work for me…
static inline device double fetch_double(texture<int2, 1> t, int i)
int2 v = tex1Dfetch(t,i);
return __hiloint2double(v.y, v.x);
This is the code given by 2.1 FAQ.
And I bind texture
[b]cudaChannelFormatDesc channelDesc = cudaCreateChannelDesc(64, 0, 0, 0, cudaChannelFormatKindFloat);
cudaBindTexture(0, texRef, d_x, channelDesc);[/b]
d_x is a device memory ptr of type double.
I put 64 there coz it is the size of a double var,
and cudaChannelFormatKindFloat ? (not sure here)
And I did exactly the same thing in kernel as shown in the code given by 2.1 FAQ
Thanks a lot!