【问题标题】:Nvidia CUDA Profiler's timeline contains many large gapsNvidia CUDA Profiler 的时间线包含许多较大的空白
【发布时间】:2017-06-29 07:44:06
【问题描述】:

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

注意:间隙边缘的两个内核都是 CudaMemCpyAsync (Host-to-Device)

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

Intel 集成显卡用于显示而不是 Nvidia。所以,英伟达显卡只是运行代码,没有别的。

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

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

我的笔记本电脑的规格:

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

有没有办法追踪这些空闲时间段中发生的事情?

谢谢,

【问题讨论】:

  • 那些大的差距大约是 0.1 ms ...

标签: cuda nvidia profile timeline


【解决方案1】:

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

为此,您可以使用 NVTX。

点击一些tutorialsdocumentation的链接。

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

【讨论】:

  • 我会尝试并发布我的反馈。谢谢
  • 嗯,它奏效了。这些间隙实际上是我编写的用于从硬盘读取输入数据的 CPU 代码,但我不知道它们花费了这么长时间。谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多