Developer Guide

FPGA Optimization Guide for Intel® oneAPI Toolkits

ID 767853
Date 12/16/2022
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

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
NOTE:

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.