进行循环分析的最佳方法

时间:2013-04-18 11:43:29

标签: c++ c loops profiling profiler

我必须在一个函数中使用大量循环来更改C / C ++程序。我必须添加cuda功能。

在我开始进行更改之前,我想花点时间找到所有循环。但是我找不到任何能够做到这一点的分析程序。这样做的最佳方式是什么?我在linux上。如果您有任何解决方案,请告诉我。

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

1 个答案:

答案 0 :(得分:1)

我会使用gperftools,并找出代码花费大部分时间的位置。一旦确定了函数或函数的一部分,就可能已经完成了。准确理解哪个指令是函数中“最重”的指令将需要为该特定循环运行长时间的测试用例,以便探查器可以为循环中的每条指令(或至少大多数指令)获取足够的数据。但实际上,如果您希望用其他技术替换代码,那么实际分析到指令可能并不相关 - 替换几行代码中的一个循环不太可能有用,因为开销太大了。相反,你想要一个更大的块并将其移动到CUDA。