我正在尝试使用 Nivida Profiler 来分析我的代码,但我在时间线中发现了奇怪的间隙,如下所示:

cuda - Nvidia CUDA Profiler 的时间线包含很多大的缺口-LMLPHP

注意:间隙边缘的两个内核都是 CudaMemCpyAsync(主机到设备)

我在 Ubuntu 14.04 上运行最新版本的 CUDA、8.0.61 和最新的 Nvidia 显示驱动程序。

Intel 集成显卡用于显示器而不是 Nvidia。因此,Nvidia 显卡只运行代码,而不运行其他任何东西。

我也启用了 CPU Profiling 来检查这些差距,但没有显示任何内容!

cuda - Nvidia CUDA Profiler 的时间线包含很多大的缺口-LMLPHP

此外,没有启用调试选项(-G 或 -g)
这是一个“发布版本”

cuda - Nvidia CUDA Profiler 的时间线包含很多大的缺口-LMLPHP

我的笔记本电脑规范:

  • 英特尔酷睿 i7 4720HQ
  • 英伟达 GTX 960m
  • 16GB DDR3 内存
  • 1 TB 硬盘

  • 有没有办法追踪这些空时隙中发生的事情?

    谢谢,

    最佳答案

    恐怕没有自动方法,但是您可以在代码中添加自定义跟踪以查找发生了什么:

    为此,您可以使用 NVTX。

    按照一些 tutorialsdocumentation 的链接。

    这些分析漏洞可能是由于数据加载、主机在内核执行之间完成的内存分配/初始化造成的。

    关于cuda - Nvidia CUDA Profiler 的时间线包含很多大的缺口,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44819131/

    10-14 07:05