There are two kernels. One kernel is targeted on FPGA, and another one is targeted on GPU. There are separate files to store the fpga kernel and gpu kernel. Since the GPU kernel is not optimized for FPGA, the FPGA offline compiler only compile the fpga kernel by following the device link instruction and link the fpga image to the main function and GPU kernel.
But the compiler said that dpcpp: note: diagnostic msg: The FPGA image does not include all device kernels from main.o. Please re-generate the image
As the GPU kernel is not optimized for FPGA, it is not feasible to compile all kernels into FPGA and in fact, the GPU kernel would not run on FPGA at all.
The question is, how to migrate different kernels through different queue into different FPGA and GPU devices? The official document only describes the migrating between CPU and GPU.
We have the option to make CUDA code as oneAPI compatible. Please check the link below
let us know if that helps.
Thanks and Regards