Open fxzjshm opened 2 years ago
It used to work with the OpenCL/SPIR back-end since it was implemented by Vitis OpenCL but we deprecated it and we have moved to HLS back-end which is really single-task oriented, more suitable for FPGA.
The problem with parallel_for
and barriers is that at some point you need a GPU thread emulator, requiring some memory to store the thread states and emulate the context switches. We could implement the compiler transformations to do it, but at the end this kind of very GPU-friendly code will probably work well on GPU but not with good performance on FPGA.
So this is not our priority, in comparison to implementing features really suitable for FPGA.
But what is the kind of applications are trying to run on FPGA?
Well, I know barrier
s and mem_fence
s isn't designed for FPGA, so I'm just asking for a possibility.
I was porting some CUDA-based scientific research program into SYCL (mainly on GPU and CPU), and my teacher let me try if it can be ported to FPGA as well. I will re-design it for FPGA then (well, if a can).
Thank for explanation!
barrier()
ofsycl::nd_item
seems not working, the log says:Environment: Vitis 2021.2 & 2022.1, compiling with
-fsycl-targets=fpga64_hls_hw_emu