小编use*_*733的帖子

使callgrind显示kcachegrind调用图中的所有函数调用

我正在使用valgrind工具-callgrind和kcachegrind对大型项目进行概要分析,并且想知道是否有一种方法可以使callgrind报告所有功能(不仅是最昂贵的功能)的统计信息。

具体来说-当我在kcachegrind中可视化调用图时,它仅包含那些非常昂贵的函数,但是我想知道是否有办法将项目中的所有函数都包含在调用图中。下面给出了用于生成分析信息的命令:

valgrind --dsymutil=yes --tool=callgrind $EXE 
Run Code Online (Sandbox Code Playgroud)

我不确定是否必须为valgrind提供任何选项,或者是否可能以其他优化方式编译应用程序。这可能有些琐碎,但我找不到解决方案。任何对此的高度赞赏。

谢谢 !

valgrind callgrind kcachegrind

4
推荐指数
2
解决办法
4999
查看次数

警告:“全局”函数忽略内联限定符

我在头文件中有一个模板化函数,并在使用 CUDA 编译时收到一些警告。

警告:“全局”函数忽略内联限定符

template<typename A,typename B>
__global__ inline void functionA(ar1, arg2)
{}
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

cuda

1
推荐指数
1
解决办法
1072
查看次数

#ifdef/#ifndef和#endif

我有一段代码必须在CPU和CUDA-GPU上运行,而另一段代码只在CPU上运行. #define ENABLE_CUDA是我'开启'在整个应用程序中启用CUDA代码.这是我的代码看起来像....

# define ENABEL_CUDA is the preprocessor directive to turn ON/OFF CUDA code.

CPU and GPU code --This piece of code has to be executed irrespective of whether CUDA is ON / OFF.

standalone CPU code alone -- This piece of code has to be executed only if CUDA is OFF.
Run Code Online (Sandbox Code Playgroud)

我的解决方案是:

#ifdef ENABLE_CUDA

  CPU AND GPU code
# else
  CPU AND GPU code
  standalone CPU code 
# endif
Run Code Online (Sandbox Code Playgroud)

但这涉及ifdef和else块中的代码复制(CPU和GPU代码),我想避免它.

我怎么能完成它?为了避免重复代码,必须做些什么?关于此的任何指示赞赏...

c++ cuda

0
推荐指数
1
解决办法
649
查看次数

标签 统计

cuda ×2

c++ ×1

callgrind ×1

kcachegrind ×1

valgrind ×1