If the free-running kernel interacts with the host, the host code should manage
the stream operation by clCreateStream
/clReadStream
/clWriteStream
as discussed in Host Coding Guidelines. As the free-running
kernel has no other types of inputs or outputs, such as memory
ports or control ports, there is no need to specify clSetKernelArg
. The clEnqueueTask
is not used
because the kernel works on the stream data as soon as it starts
receiving from the host or other kernels, and it stalls when the
data is not available.