如果自由运行的内核与主机交互,则主机代码应通过 clCreateStream
/clReadStream
/clWriteStream
来管理串流操作。由于自由运行的内核没有任何其它类型的输入或输出(例如,存储器端口或控制端口),因此无需指定 clSetKernelArg
。由于当内核一旦接收到来自主机或其它内核的串流数据后,就会立即开始处理这些数据,一旦这些数据不可用,内核就会停止处理,因此不使用 clEnqueueTask
。
如果自由运行的内核与主机交互,则主机代码应通过 clCreateStream
/clReadStream
/clWriteStream
来管理串流操作。由于自由运行的内核没有任何其它类型的输入或输出(例如,存储器端口或控制端口),因此无需指定 clSetKernelArg
。由于当内核一旦接收到来自主机或其它内核的串流数据后,就会立即开始处理这些数据,一旦这些数据不可用,内核就会停止处理,因此不使用 clEnqueueTask
。