Dear Mailing-Listeners! Executing the following code (adapted from test_driver.py):
------------------- import pycuda.driver as drv import pycuda.gpuarray as ga from pycuda.compiler import SourceModule print "pycuda.VERSION "+str(pycuda.VERSION) print "Compute Capapility "+str(drv.Context.get_device().compute_capability()) for tp in [numpy.float32, numpy.float64]: from pycuda.tools import dtype_to_ctype tp_cstr = dtype_to_ctype(tp) mod = SourceModule(""" #include <pycuda-helpers.hpp> texture<fp_tex_%(tp)s, 2>my_tex; __global__ void copy_texture(%(tp)s *dest) { dest[threadIdx.xthreadIdx.y*8]=fp_tex2D(my_tex,threadIdx.y,threadIdx.x); } """ % {"tp": tp_cstr}) copy_texture = mod.get_function("copy_texture") my_tex = mod.get_texref("my_tex") shape = (8,2,) a = numpy.random.randn(*shape).astype(tp) a_gpu = ga.to_gpu(a) a_gpu.bind_to_texref_ext(my_tex, allow_double_hack=True) blck=shape+(1,) dest = numpy.zeros(shape, dtype=tp) g_dest=drv.to_device(dest) copy_texture.prepare("P",blck,texrefs=[my_tex]) time=copy_texture.prepared_timed_call((1,1),g_dest) dest=drv.from_device(g_dest, dest.shape, dest.dtype, order='C') print a print dest --------- returns: pycuda.VERSION (0, 94, 2) Compute Capapility (1, 3) [[-0.92633218 0.20489018] [ 1.14500916 0.23236905] [ 0.43516356 0.4719891 ] [-0.8008799 0.81867486] [-0.20814744 -0.55152911] [ 0.81224 -1.37392473] [ 1.99982738 0.11174646] [ 0.11471771 -1.01642931]] [[-0.92633218 -0.92633218] [-0.92633218 -0.92633218] [-0.92633218 -0.92633218] [-0.92633218 -0.92633218] [ 0. 0. ] [ 0. 0. ] [ 0. 0. ] [ 0. 0. ]] [[ -6.39043527e-01 -1.95960158e-01] [ 1.69915072e+00 1.16279297e+00] [ -4.03001846e-01 -1.23898467e+00] [ 3.62089701e-01 1.84103824e-01] [ 5.73958324e-01 -3.26678644e-04] [ -2.28391102e-01 1.59704601e+00] [ 1.43664545e+00 -1.15527274e-01] [ 4.74887599e-01 7.09184358e-01]] [[-0.63904353 -0.63904353] [-0.63904353 -0.63904353] [-0.63904353 -0.63904353] [-0.63904353 -0.63904353] [ 0. 0. ] [ 0. 0. ] [ 0. 0. ] [ 0. 0. ]] which is not what I expected, i.e. getting the same array back. The 1D test from test_driver.py works but for 2D I probably did something wrong. However, I have no clue what and would appreciate your help very much. Best wishes, Markus _______________________________________________ PyCUDA mailing list PyCUDA@tiker.net http://lists.tiker.net/listinfo/pycuda