def setslice_kernel(arr, value): index = cl.cl_uint4(clrt.get_global_id(0), clrt.get_global_id(1), clrt.get_global_id(2), 0) a_strides = index * arr.strides aidx = arr.offset + a_strides.x + a_strides.y + a_strides.z v_strides = index * value.strides vidx = value.offset + v_strides.x + v_strides.y + v_strides.z arr[aidx] = value[vidx]
def ufunc_kernel(function, a, b, out): index = cl.cl_uint4(clrt.get_global_id(0), clrt.get_global_id(1), clrt.get_global_id(2), 0) a_strides = index * a.strides aidx = a.offset + a_strides.x + a_strides.y + a_strides.z b_strides = index * b.strides bidx = b.offset + b_strides.x + b_strides.y + b_strides.z out_strides = index * out.strides oidx = out.offset + out_strides.x + out_strides.y + out_strides.z a0 = a[aidx] b0 = b[bidx] out[oidx] = function(a0, b0)