Visible to Intel only — GUID: GUID-595AE74A-C565-4C6D-87CB-B92343023D73
Why is FPGA Compilation Different?
Types of SYCL* FPGA Compilation
FPGA Compilation Flags
Emulate and Debug Your Design
Evaluate Your Kernel Through Simulation
Device Selectors for FPGA
FPGA IP Authoring Flow
Fast Recompile for FPGA
Generate Multiple FPGA Images (Linux only)
FPGA BSPs and Boards
Targeting Multiple Homogeneous FPGA Devices
Targeting Multiple Platforms
FPGA-CPU Interaction
FPGA Performance Optimization
Use of RTL Libraries for FPGA
Use SYCL Shared Library With Third-Party Applications
FPGA Workflows in IDEs
Intel oneAPI DPC++ Library (oneDPL)
Intel oneAPI Math Kernel Library (oneMKL)
Intel oneAPI Threading Building Blocks (oneTBB)
Intel oneAPI Data Analytics Library (oneDAL)
Intel oneAPI Collective Communications Library (oneCCL)
Intel oneAPI Deep Neural Network Library (oneDNN)
Intel oneAPI Video Processing Library (oneVPL)
Other Libraries
Visible to Intel only — GUID: GUID-595AE74A-C565-4C6D-87CB-B92343023D73
Streaming Arguments
When you generate a streaming kernel, you might want to have one or more arguments with an opposite type of interface. For example, a streaming argument with an agent kernel.
By default, the arguments follow the same type of interface as the kernel.
To override a specific interface to use conduits with an agent kernel, use the conduit macro, like in the following example:
#include <sycl/ext/intel/prototype/interfaces.hpp> using namespace sycl; struct MyIP { conduit int *input_a, *input_b, *input_c; conduit int n; MyIP(int *a, int *b, int *c, int N_) : input_a(a), input_b(b), input_c(c), n(N_) {} register_map_interface void operator()() const { for (int i = 0; i < n; i++) { input_c[i] = input_a[i] + input_b[i]; } } };