【问题标题】:Best way to make loop profiling进行循环分析的最佳方法
【发布时间】:2013-04-18 11:43:28
【问题描述】:

我必须更改一个 C/C++ 程序,其中一个函数中有很多循环。我必须添加 cuda 功能。

在我开始进行更改之前,我想花时间检查所有发现的循环。但我没有找到任何能做到这一点的分析程序。最好的方法是什么。我在linux上。如果您有任何解决方案,请告诉我。

在这里你会找到一个工具的例子,它可以制作出我想要的东西,但我还没有找到它或类似的东西:http://carbon.ucdenver.edu/~dconnors/papers/wbia06-loopprof.pdf

【问题讨论】:

  • 为什么不只分析包含循环的函数呢?它们(希望)不包含比循环本身更多的代码,是吗?
  • 您是否已经看过 gprof(假设您使用 gcc 进行 cpming)?
  • 因为结尾只有一个函数,而这个函数包含很多循环。 @ogni42 是的,我看过 gprof,但输出并不是我想要的。

标签: c++ c loops profiling profiler


【解决方案1】:

我会使用gperftools,并找出代码大部分时间花在哪里。一旦你确定了一个函数或函数的一部分,你可能就完成了。准确了解函数中哪些指令是“最重的”将需要针对该特定循环长时间运行的测试用例,以便分析器可以为循环中的每条指令(或至少大多数指令)获取足够的数据。但是,如果您想用另一种技术替换代码,实际上分析到指令可能并不相关——替换几行代码的一个循环不太可能有太大帮助,因为开销太大。相反,您想占用更大的块并将其移至 CUDA。

【讨论】:

    猜你喜欢
    • 2015-03-10
    • 2021-03-07
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多