我正在使用valgrind工具-callgrind和kcachegrind对大型项目进行概要分析,并且想知道是否有一种方法可以使callgrind报告所有功能(不仅是最昂贵的功能)的统计信息。
具体来说-当我在kcachegrind中可视化调用图时,它仅包含那些非常昂贵的函数,但是我想知道是否有办法将项目中的所有函数都包含在调用图中。下面给出了用于生成分析信息的命令:
valgrind --dsymutil=yes --tool=callgrind $EXE
Run Code Online (Sandbox Code Playgroud)
我不确定是否必须为valgrind提供任何选项,或者是否可能以其他优化方式编译应用程序。这可能有些琐碎,但我找不到解决方案。任何对此的高度赞赏。
谢谢 !
我在头文件中有一个模板化函数,并在使用 CUDA 编译时收到一些警告。
警告:“全局”函数忽略内联限定符
template<typename A,typename B>
__global__ inline void functionA(ar1, arg2)
{}
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
我有一段代码必须在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代码),我想避免它.
我怎么能完成它?为了避免重复代码,必须做些什么?关于此的任何指示赞赏...