bruno villasenor <[email protected]> writes: > Hi, > > I'm trying to bind a 2D gpuarray to a 2Dtexture, then execute a kernel to > read from the texture and write to another gpuarray. > Here's the code I'm using: > > import numpy as np > import pycuda.driver as cuda > import pycuda.gpuarray as gpuarray > import pycuda.autoinit > from pycuda.compiler import SourceModule > > nWidth = 32 > nHeight = 32 > > cudaCode = SourceModule(''' > > texture<int, 2 > tex_in; > > > __global__ void kernel( int *out ){ > > int t_j = blockIdx.x*blockDim.x + threadIdx.x; > > int t_i = blockIdx.y*blockDim.y + threadIdx.y; > > int tid = t_j + t_i*blockDim.x*gridDim.x; > > > > int center = tex2D( tex_in, t_j, t_i ); > > > > out[tid] = center; > > > > } > > ''') > block2D = (16,16,1) > grid2D = (nWidth/block2D[0], nHeight/block2D[1], 1) > kernel = cudaCode.get_function("kernel") > tex = cudaCode.get_texref("tex_in") > > in_d = gpuarray.to_gpu( 2*np.ones([nWidth, nHeight]).astype(np.int32)) > in_d.bind_to_texref(tex) > > out_d = gpuarray.to_gpu( np.zeros([nWidth, nHeight]).astype(np.int32)) > kernel(out_d, block=block2D, grid=grid2D)
Try adding a texrefs=[tex] kw argument here maybe? Andreas _______________________________________________ PyCUDA mailing list [email protected] http://lists.tiker.net/listinfo/pycuda
