Article ID: 000095606 Content Type: Connectivity Last Reviewed: 07/27/2023

How to link two OneAPI kernels to two accelerate cards, respectively, with one host code?

Environment

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Description

If you want to link two OneAPI kernels to two accelerate cards respectively with one host code, you may find the following limitations when targeting multiple FPGA devices:

• All FPGA devices use the same FPGA bitstream.

• All FPGA devices used must be of the same FPGA card (same -Xstarget target)

 

Resolution

To workaround this limitation, you can use a dynamic linking to build two images and then link them dynamically as below:

  • icpx -fsycl -fPIC -fintelfpga -c vector_add.cpp -o vector_add.o
  • icpx -fsycl -fPIC -shared -fintelfpga -Xshardware -Xsboard= vector_add.o -o vector_add.so
  • icpx -fsycl -fPIC -fintelfpga -c vector_mul.cpp -o vector_mul.o
  • icpx -fsycl -fPIC -shared -fintelfpga -Xshardware -Xsboard= vector_mul.o -o vector_mul.so
  • icpx -fsycl -o main.exe main.cpp vector_add.so vector_mul.so

Related Products

This article applies to 1 products

Intel® Programmable Devices

1