Intel Advisor:检查方法,包括所有子方法

Intel Advisor: Inspect method including all submethods

使用 Intel Advisor 和屋顶线模型,我想评估某个功能的性能。此函数使用 Eigen 库进行矩阵运算,其中完成了主要工作。

在输出中我可以看到我的函数具有相对较小的自身时间和我的函数调用的几个 Eigen 函数。现在我想将我函数的所有 FLOPS 和内存操作组合在一起(而不是每个单独的函数)并将此结果用于屋顶线模型。我怎样才能做到这一点?

注意:我在英特尔支持论坛 [1] 中发布了类似的问题。

[1] https://software.intel.com/en-us/forums/intel-advisor-xe/topic/806091

为了在 Advisor Roofline 图表上进行 loopnest/functions 聚合,您必须 运行 "Roofline with CallStacks" 如 https://software.intel.com/en-us/articles/roofline-with-callstacks

所述

更具体地说,在命令行的情况下,您必须使用: advixe-cl -collect survey -project-dir MyResults -- MyExecutable advixe-cl -collect tripcounts -flop -stacks -project-dir MyResults -- MyExecutable (NB -stacks 额外标志)。

完成后,您需要在图表上找到与您的功能相对应的点,然后 "collapse" 它。基本上,带有调用堆栈的 Roofline 可以配置 Roofline model/chart 的粒度/嵌套级别。 当使用自顶向下视图与 Roofline 图表并排使用或展开右侧 "roofline call stacks" 视图时,使用 Callstacks 在 Roofline 上的父子点导航更容易: