做循环分析的最好方法

Best way to make loop profiling

本文关键字:方法 循环      更新时间:2023-10-16

我必须改变一个C/c++程序有很多循环在一个函数内。我必须添加cuda函数。

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

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

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