Hello again, 
I seem to have made some mistakes with my code. I have updated it. 
----------------------------------------------------------------------------------------------I
 know how to operate on two vectors by using "Adventures in Pyopencl", but when 
I use components of a vector to do operations, I get the wrong results. when 
printing the results, c = a zero vector.
Could you look at my simple code? 
from numpy import *import pyopencl as cl 
ctx = cl.create_some_context()queue = cl.CommandQueue(ctx)fstr = "__kernel void 
part1(__global float* a, __global float* b,__global float* c){  unsigned int i 
= get_global_id(0); float value = 0;  value = (a[i] + b[i]); c[i] = value ; 
}"program = cl.Program(ctx,fstr).build()
o = array([range(10),range(10)])a = o[0,:]b = o[1,:]
mf = cl.mem_flagsa_buf = cl.Buffer(ctx,mf.READ_ONLY | mf.COPY_HOST_PTR, hostbuf 
= a.copy())b_buf = cl.Buffer(ctx,mf.READ_ONLY | mf.COPY_HOST_PTR, hostbuf = 
b.copy())dest_buf = cl.Buffer(ctx, mf.WRITE_ONLY, b.nbytes)        
program.part1(queue, a.shape, None, a_buf, b_buf,dest_buf)c = 
empty_like(a)cl.enqueue_read_buffer(queue, dest_buf, c).wait()
Thanks, 
Ajay
                                                                                
  
_______________________________________________
PyOpenCL mailing list
[email protected]
http://lists.tiker.net/listinfo/pyopencl

Reply via email to