cudaMemset行号

时间:2013-02-13 08:06:01

标签: cuda nsight

我写了一个CUDA应用程序。我的应用程序调用内核大约40次。在对其进行分析之后,在每个内核完成它的执行之后,有一个cudaMemset()。而这些cudaMemsets耗费了大量时间。但是,我的cudaMemset文件中没有.cu。 CUDA API内部是否调用cudaMemset?还有什么方法可以知道CUDA分析器中的行号吗?

1 个答案:

答案 0 :(得分:1)

Nsight Visual Studio Edition Trace Activity支持在所有CUDA Runtime和CUDA Driver API调用上捕获调用堆栈。

为CUDA运行时API调用启用Callstack跟踪

  1. Nsight 菜单中,执行启动效果分析。 ( Nsight中的新分析活动< 3)
  2. 在“活动编辑器”中,展开“跟踪设置”部分和“CUDA”部分。
  3. 运行时API跟踪旁边的CUDA部分中,将调用堆栈跟踪设置为始终
  4. 运行Analysis Activity。
  5. 查看CUDA Runtime API调用的Callstack跟踪

    1. 在捕获的分析报告中,单击左上角的报告页面选择器,然后选择页面 CUDA运行时API调用
    2. 在表格中点击感兴趣的API电话。
    3. 在报告页面左下角的相关性窗格树中,单击堆栈跟踪
    4. 上述过程可以针对其他API域进行。关联窗格还可用于确定生成内核启动或内存副本的API调用和调用堆栈。

      Nsight Visual Studio Edition 3.0 RC1 Analysis Report showing Call Stack Trace