Using Intel Advisor and the roof line model, I would like to assess the performance of a certain function. This function uses the Eigen library for matrix operations, where the main part of work is done.
In the output I can see my function with a relatively small self time and several Eigen functions called by my function. Now I would like to group all FLOPS and memory operations of my function together (rather than of each separate function) and use this result for the roof line model. How can I achieve this?
Note: I have posted a similar question in the Intel Support Forum [1].
[1] https://software.intel.com/en-us/forums/intel-advisor-xe/topic/806091
In order to do loopnest/functions aggregation on Advisor Roofline chart, you have to run "Roofline with CallStacks" as described at https://software.intel.com/en-us/articles/roofline-with-callstacks
More specifically, in case of command line, you have to use:
advixe-cl -collect survey -project-dir MyResults -- MyExecutable advixe-cl -collect tripcounts -flop -stacks -project-dir MyResults -- MyExecutable
(NB -stacks extra flag).Once done, you'll need to locate the dot corresponding to your function on the chart and "collapse" it. Basically, Roofline with Callstacks makes it possible to configure the granularity / nesting level of your Roofline model/chart. Navigating through parent-child dots on Roofline with Callstacks is easier when either using Top-Down view side by side with Roofline chart or when expanding righthand-side "roofline call stacks" view: