What are the feedback FIFOs used for in the loops for OpenCL single work-item kernel
I noticed that the offline compiler automatically generates FIFOs (as shown in the following figure ) for each loops in the kernel. It is said that the FIFOs are used to support non-stalling of the pipeline instructions. However, I could not really understand. Can anyone gives a hint or explain this by giving an example ? Thx
Hi,
1) Currently, there’s no way to directly control the depth of a Feedback FIFO. The only ways you can affect a Feedback FIFO is to restructure the code to use a smaller datatype (e.g. uchar instead of ushort) or change the access pattern if it’s a memory (register, M20K, or MLAB). You can remove the Feedback FIFO by finding a way to move its associated variable inside the loop so no state information is required.
2) The FFwd Dest node is effectively the end point of a wire. Basically, it represents the dataflow of a variable that could come from outside or inside the loop. It’s not directly related to a Feedback node. This terminology is confusing and I had reported to the team.
Thanks