Intel® High Level Design
Support for Intel® High Level Synthesis Compiler, DSP Builder, OneAPI for Intel® FPGAs, Intel® FPGA SDK for OpenCL™
702 Discussions

Confusion regarding Stratix 10 OpenCL compilation report

JSchr20
Novice
1,911 Views

I have compiled an OpenCL-with-RTL design for both the s10gx reference board and the pac_s10_dc board on the devcloud darby nodes.  The design works fine, but the compilation report has left me confused about what resources it's using.

I had previously compiled a similar design for arria10 boards, and I was maintaining a spreadsheet listing Fmax and resource usage for various design configurations.  I did this easily, without having to use the reports.html GUI, by going into the reports subdirectory in the build directory and parsing a line of text I pulled out via a find/grep command:

find . -name "quartus_data.js" | xargs grep -i "quartusfitresourceusagesummary"

This returned a line that contained Fmax and kernel resource usage information (among other info).  In particular, I could verify that the Fmax and kernel resource usage listed there matched what I saw on the report.html GUI.

The Stratix 10 compiles do not appear to have that same quartus_data.js file, nor any file with that same string, so I went looking around for some other file I could parse for my answers.  The most promising of those is acl_quartus_report.txt.  For one of my builds, it looks like this:

ALUTs: 170781
Registers: 383,070
Logic utilization: 175,003 / 933,120 ( 19 % )
I/O pins: 653 / 912 ( 72 % )
DSP blocks: 45 / 5,760 ( < 1 % )
Memory bits: 5,288,728 / 240,046,080 ( 2 % )
RAM blocks: 811 / 11,721 ( 7 % )
Actual clock freq: 261
Kernel fmax: 261.09
pll_1x_setting: 261
pll_2x_setting: 522
1x clock fmax: 261.09
2x clock fmax: 10000
Highest non-global fanout: 4662

However, the report.html GUI for that same compile lists the following kernel resource stats:

Kernel System:

ALUTs       FFs        RAMs     MLABs     DSPs

42545    84118     509         966         84

Those stats are totally different from each other, and it's not as if one's uniformly larger than the other.  What's going on?  Is there a text file I can parse easily that will give me the correct resource usage stats?

Thank you!

0 Kudos
1 Solution
HRZ
Valued Contributor III
1,876 Views

Yes, the numbers in "acl_quartus_report.txt" is the entire chip usage. I just did a comparison between the HTML report on Arria 10 and Stratix 10 and I think I now see what you mean. On Arria 10 reports, after place and routing, a new section is added to the summary tab of the report named " Quartus Fit Resource Utilization Summary" which has the post-place-and-route resource usage of the kernel alone. However, this does not exist in the report for Stratix 10.

Looking through the compilation files, it seems these numbers are extracted from the biggest "*.fit.rpt". There is a table called "Fitter Resource Utilization by Entity" in the file and the entity called "freeze_wrapper_inst" seems to refer to the whole dynamic partition that includes the OpenCL kernel instance and its interfaces to the BSP. The same table also exists in the compilation folder for Stratix 10, it is just that it is located in "build/output_files/". I believe the same entity in that report also refers to the dynamic partition of the design and its area usage should represent the post-place-and-route area usage of the kernel, which is what you are looking for.

View solution in original post

6 Replies
HRZ
Valued Contributor III
1,899 Views

The correct place to look for post-place-and-route area usage and frequency, regardless of target device, is the "acl_quartus_report.txt" file. Any number that you see in the HTML report is an "estimation" (as also mentioned in the report itself). Moreover, it seems you are looking at the area usage of the kernel alone. The final area usage will be the area usage of the kernel plus the area usage of the OpenCL BSP, which, in the case of Stratix 10, is quite large.

JSchr20
Novice
1,889 Views

Thanks for your response!

I had been given to believe that the report.html file was only an estimate *if* a full compile hadn't been run, but that after a full compile, the report reflected real numbers.  I'm surprised that's not true; that's very useful to know, thank you.

Thanks also about the caution regarding kernel size vs. full-design size.  I am aware of the distinction.  I am specifically paying attention to kernel size in my spreadsheets because my kernel is small relative to the BSP, and I'm trying to estimate how many copies of it I can fit in the full design.

 

0 Kudos
JSchr20
Novice
1,886 Views

One further question: do the numbers in the "acl_quartus_report.txt" file represent the entire chip resource usage (BSP + kernel)?  That's my suspicion given the numbers, but I want to confirm that.

If I want kernel numbers only, do you have any idea which of the many build reports contains the final info on that?  I can obviously subtract, assuming the resource estimate for the BSP in report.html is accurate enough, but this information must exist somewhere.  I will go spelunking...

Thank you!

0 Kudos
HRZ
Valued Contributor III
1,877 Views

Yes, the numbers in "acl_quartus_report.txt" is the entire chip usage. I just did a comparison between the HTML report on Arria 10 and Stratix 10 and I think I now see what you mean. On Arria 10 reports, after place and routing, a new section is added to the summary tab of the report named " Quartus Fit Resource Utilization Summary" which has the post-place-and-route resource usage of the kernel alone. However, this does not exist in the report for Stratix 10.

Looking through the compilation files, it seems these numbers are extracted from the biggest "*.fit.rpt". There is a table called "Fitter Resource Utilization by Entity" in the file and the entity called "freeze_wrapper_inst" seems to refer to the whole dynamic partition that includes the OpenCL kernel instance and its interfaces to the BSP. The same table also exists in the compilation folder for Stratix 10, it is just that it is located in "build/output_files/". I believe the same entity in that report also refers to the dynamic partition of the design and its area usage should represent the post-place-and-route area usage of the kernel, which is what you are looking for.

JSchr20
Novice
1,866 Views

Thank you!  That utilization report is, of course, the one that comes straight from Quartus, so I'm familiar with reading it, and you've been very helpful pointing me to the right "copy" of it, and to the correct layer of the hierarchy.   It's impressively confusing inside those build directories.  A note to Intel: I would like to be able to see this final information in the report.html, and also to be able to extract it easily from the underlying forms there, as I could with Arria 10.

0 Kudos
AnilErinch_A_Intel
1,845 Views

Hi ,

Thanks for the discussions.

We will take a note about this on aligning view of S10 reports similar to the A10 reports.

Thanks and Regards

Anil


Reply