def max_length_real4(ipt): out = CLReal(len(ipt)) kern = _lengthkern_real4.kern kern.set_arg(0, ipt._buffer) kern.set_arg(1, out._buffer) cl.enqueue_nd_range_kernel(ipt._ctrl.clqueue, kern, (len(ipt),), None) return max_reduce(out)
def max_reduce_real4(ipt): x = CLReal(len(ipt)) y = CLReal(len(ipt)) z = CLReal(len(ipt)) kern = _splitkern_real4.kern kern.set_arg(0, ipt._buffer) kern.set_arg(1, x._buffer) kern.set_arg(2, y._buffer) kern.set_arg(3, z._buffer) cl.enqueue_nd_range_kernel(ipt._ctrl.clqueue, kern, (len(ipt),), None) return max_reduce(x), max_reduce(y), max_reduce(z)