Developer Guide
FPGA Optimization Guide for Intel® oneAPI Toolkits
A newer version of this document is available. Customers should click here to go to the newest version.
Visible to Intel only — GUID: GUID-859B1157-86B5-4BF4-881E-6F1C90566233
Visible to Intel only — GUID: GUID-859B1157-86B5-4BF4-881E-6F1C90566233
Modify the Handshaking Protocol Between Clusters (<span class='codeph'>-Xshyper-optimized-handshaking</span>)
To modify the handshaking protocol between clusters, use the -Xshyper-optimized-handshaking=<auto|off> option in your icpx command. The -Xshyper-optimized-handshaking option can be set to one of the following values:
- auto: The default behavior without the option specified. The Intel® oneAPI DPC++/C++ Compiler enables the optimization if possible. Use this value when you want to achieve a higher fMAX. When you enable the optimization, the Intel® oneAPI DPC++/C++ Compiler adds pipeline registers to the handshaking paths of the stallable nodes. As a result, you observe higher fMAX at the cost of increased area and latency.
- off: The Intel® oneAPI DPC++/C++ Compiler attempts to optimize for lower latency at the potential cost of lower fMAX. Disabling hyper-optimized handshaking might also decrease area. This is useful for smaller designs where you are willing to give up fMAX for lower latency and area.
Examples
icpx -fsycl -fintelfpga -Xshardware -Xshyper-optimized-handshaking=auto <source_file>.cpp
icpx -fsycl -fintelfpga -Xshardware -Xshyper-optimized-handshaking=off <source_file>.cpp
The -Xshyper-optimized-handshaking option applies only to designs targeting Intel® Stratix® 10 and Intel® Agilex™ devices. If you use this option on other target devices, the compiler fails and produces an error. This option applies only when running the report or hardware flow.