If the free-running kernel interacts with the host, the host code should manage
the stream operation by clCreateStream
/clReadStream
/clWriteStream
. 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.