Forum Discussion
Here another one-file example where the warning is appearing. Compile it with
dpcpp -fsycl -fintelfpga -o test.cpp.o -c test.cpp -qactypes
Linking leads again to the error mentioned above:
u153009@s001-n068:~/thesis/optimized_nd/build$ dpcpp -fsycl -fintelfpga -Xshardware -Xstarget="/opt/intel/oneapi/intel_a10gx_pac:pac_a10" test.cpp.o -o test.fpga test.cpp:61: Compiler Warning: Pipe ordering required barrier insertion in for.body.i.i.i of pipe_ZTS20likelihood_kernel_id, but kernel may hang as a result Compiler Warning: Enforcing pipe ordering in kernel _ZTS20likelihood_kernel_id limits number of concurrent workgroups to 1
Again I am confused why the compiler tries to enforce any ordering to the pipes here as these too are ND-Range kernels?
As stated in the FPGA optimizations guide there is no guarantee to any ordering, so for what kind of purpose can I use pipes in ND-Range kernels? My two ideas where the ordering to pipe-reads/writes does not matter
- Propagate Random numbers efficiently and
- Sum results of different workgroups together
are not working at all due to the weird barrier insertion by the compiler.
Is there no way to prevent this barrier insertion or is this just a bug and should not happen at all -> This would be my guess as stated above - in the optimization guide there stands that there is no ordering guarantee at all in ND-range kernels?
Best regards and thanks in advance for your help,
Christoph