Developer Guide

FPGA Optimization Guide for Intel® oneAPI Toolkits

ID 767853
Date 7/13/2023
Public

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

Document Table of Contents

Maximum Throughput Without Area Optimization Heuristics Flow

The maximum throughput without area optimization heuristics flow attempts to maximize your kernel throughput without applying area optimizations or heuristics. Specifically, the compiler might disable optimizations and heuristics that increase the throughput at the cost of area in this flow.

To compile your design with the maximum throughput without area optimization heuristics flow, pass the -⁠Xsoptimize=throughput flag to the icpx command, as shown in the following example:

icpx -fsycl -fintelfpga -Xshardware -Xsoptimize=throughput <source_file>.cpp

The maximum throughput without area optimization heuristics flow applies the following compiler controls for on-chip memories:

  • Do not create extra banks
  • Do not create extra replicates
  • Do not create extra private copies
The following table shows how you can manually override these underlying controls:
Description User Control
Number of banks [[intel::numbanks(N)]]
Number of replicates [[intel::max_replicates(N)]]
Number of private copies [[intel::private_copies(N)]]
NOTE:

These manual controls are beneficial in overriding one or more of the underlying controls without affecting other underlying controls that the -⁠Xsoptimize=throughput compiler flag implies.