A newer version of this document is available. Customers should click here to go to the newest version.
Why is FPGA Compilation Different?
FPGAs differ from CPUs and GPUs in some important ways. A significant difference between compilation for CPU or GPU and compilation for FPGA is that generating a device binary for FPGA hardware is a computationally intensive and time-consuming process. It is normal for an FPGA compile to take several hours to complete. For this reason, only ahead-of-time (or offline) kernel compilation mode is supported for FPGA. The long compile time for FPGA hardware makes just-in-time (or online) compilation impractical, and is therefore not supported.
Longer compile times are detrimental to developer productivity. The Intel® oneAPI DPC++/C++ Compiler provides several mechanisms that enable you to target FPGA and iterate quickly on your designs. By circumventing the time-consuming process of full FPGA compilation wherever possible, you can benefit from the faster compile times that you are familiar with for CPU and GPU development.
The Intel® oneAPI DPC++/C++ Compiler Handbook for Intel® FPGAs provides full details about the FPGA flow.