Forum Discussion
What causes OpenCL to insert arbitration for local memory accesses?
- 2 years ago
Hi Björne2,
Maybe can refer to this link for OpenCL optimization related.
https://www.youtube.com/watch?v=1zGpN28mXN4
I will try to consult the team if there is any further info which may help.
Thanks.
Regards,
Aik Eu
Hi Björne2,
Maybe can refer to this link for OpenCL optimization related.
https://www.youtube.com/watch?v=1zGpN28mXN4
I will try to consult the team if there is any further info which may help.
Thanks.
Regards,
Aik Eu
Oh, the video gave me a hint. The compiler inserts redundant arbitration because the next iteration of the n_tics loop can start before the previous one has finished. So tmp = frontier[i] could be concurrent with frontier[dsts[src]] += 50... So the fix was to add #pragma disable_loop_pipelining to the n_tics loop to tell aoc that iterations of the outer loop can't be concurrent.