Developer Guide

Intel® oneAPI DPC++/C++ Compiler Handbook for FPGAs

ID 785441
Date 6/24/2024
Public

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

Document Table of Contents

Minimum Latency Flow

The minimum latency flow attempts to minimize your kernel latency at the cost of decreased fMAX. Use this flow to optimize latency-sensitive designs.

To compile your design with the minimum latency flow, pass the -Xsoptimize=latency flag to the icpx command, as shown in the following example:

icpx -fintelfpga -Xshardware -Xsoptimize=latency <source_file>.cpp

The following table lists the underlying controls that are enabled by the minimum latency flow, as well as their equivalent user controls. You can use these same user controls to manually override the underlying controls:

Description Equivalent User Control
Disable hyper-optimized handshaking on Agilex™ 7 and Stratix® 10 devices -Xshyper-optimized-handshaking=off
Use zero-latency stall-free clusters exit FIFO -Xssfc-exit-fifo-type=zero-latency
Disable loop speculation [[intel::speculated_iterations(0)]]

[[intel::max_reinvocation_delay(1)]]

Set reinvocation delay on all loops to 1 thereby allowing new loop invocations to begin immediately after a previous loop invocation has completed [[intel::max_reinvocation_delay(1)]]