Developer Guide

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

ID 785441
Date 10/24/2024
Public
Document Table of Contents

Specify Schedule fMAX Target for Kernels (scheduler_target_fmax_mhz)

The schedule fmax target determines the pipelining effort the scheduler attempts during the scheduling process.

You can use one or both of the following options to specify the kernel specific fmax target:

  • By using the [[intel::scheduler_target_fmax_mhz(N)]] source-level attribute.
  • By directing the Intel® oneAPI DPC++/C++ Compiler to globally compile all kernels -Xsclock=<clock target in Hz/KHz/MHz/GHz or s/ms/us/ns/ps> option in the icpx command.

If you use both the command-line option and source-level attribute, the kernel attribute takes the priority. Consider the following example:

cgh.single_task<class mykernel1>([=] {
  ...
});

cgh.single_task<class mykernel2>([=
]() [[intel::scheduler_target_fmax_mhz(200)]] {
  ...
});

In you direct the compiler to compile the above code with –Xsclock=300MHz in the icpx command, the compiler schedules kernel mykernel1 at 300 MHz and kernel mykernel2 at 200 MHz.

The schedule target fmax determines the pipelining effort during compilation. Refer to the Quartus compilation summary in the report.html file to get the actual fmax value.