做循环分析的最好方法
Best way to make loop profiling
我必须改变一个C/c++程序有很多循环在一个函数内。我必须添加cuda函数。
在我开始更改之前,我想花时间查看所有找到的循环。但我没发现有任何分析程序能做到这一点。最好的方法是。我在linux上。如果你有任何解决办法,请告诉我。
在这里你会发现一个工具的例子谁做的正是我想要的,但我还没有找到它或类似的东西:http://carbon.ucdenver.edu/~dconnors/papers/wbia06-loopprof.pdf
我会使用gperftools
,并找出代码在哪里花费了大部分时间。一旦您确定了一个函数或函数的一部分,您可能就完成了。准确地理解函数中哪些指令是"最重的",将需要对特定循环进行长时间运行的测试用例,以便分析器可以为循环中的每个指令(或至少大多数指令)获得足够的数据。但实际上,如果您想用另一种技术替换代码,那么对指令进行分析可能是不相关的——替换几行代码的一个循环不太可能有多大帮助,因为这会带来太多的开销。相反,你想要一个更大的块,并将其移动到CUDA。
相关文章:
- 方法内部但循环仍得到预期的不合格id错误C++
- 在 c++ 中实现嵌套循环的更短方法吗?
- 如何在C++中循环访问未知对象方法?
- EnQueue 方法在循环队列中未正确返回C++?
- C++模板方法中的循环依赖关系
- 为什么这种方法会进入无限循环?
- 编写按初始值循环的循环的更好方法是什么
- 循环遍历标准的正确方法::array<char*, N>
- 类方法 - 数据结构中 For 循环的运行时错误
- 循环依赖,在继承类的情况下使用覆盖方法
- 从列表/向量制作嵌套 for 循环的最佳方法是什么?
- 从基于迭代器的for循环转换后,如何在map::find()中调用方法
- 是否可以在基于范围的 for 循环中使用模板化的开始/结束方法
- 还有其他方法可以为乘法表编写循环以获取运行时值吗?
- 如何避免模板方法的循环依赖
- 使用虚拟变量对 std::vector 内部循环进行切片的最佳方法
- 有什么方法可以在 c++ 中组织"cycling"(循环)数字?
- 我应该避免在循环中重复访问相同的方法吗?
- 遍历 STL 映射(集/多集)的最佳方法,同时元素可能会在循环期间被删除并重新插入?
- 在 C 中并行化嵌套循环的几种方法之间的差异,C++使用 OpenMP