cornell-zhang / heterocl

HeteroCL: A Multi-Paradigm Programming Infrastructure for Software-Defined Heterogeneous Computing
https://cornell-zhang.github.io/heterocl/
Apache License 2.0
322 stars 92 forks source link

Expose interface for post-implementation strategy configuration #326

Closed hecmay closed 3 years ago

hecmay commented 3 years ago

HCL runtime always uses the default config of the EDA tools for post implementation (e.g. target frequency, strategies for placement & routing, physical optimization, e.t.c). We need to add an interface to HCL to allow users to configure those options.

Here is some configurations I used in the auto-tuning tools for FPGA synthesis.

  1. Vitis/Vivado options table
  2. Intel AOCL options table

    For most of the time, after randomly sampling the search space, we can get around 10% improvement on frequency. E.g. for the SuSy GEMM design, we can get a design point with F=210MHz compared with the default (F=193MHz).

The PR #321 will be separated into multiple smaller PRs. This feature will be introduced in one of them.