我正在使用nvprof来分析某些东西(包括CPU工作和GPU工作,即我使用nvprof标记等),并且我得到了nvprof产生的二进制文件。我可以将它们导入到NVVP(NVidia Visual Profiler; Linux版本)中,只需稍加努力就可以将其保存到XML中。
然而 ... XML不包含关于我的各种CPU何时执行的操作的时序数据。它提到了它们的存在,但不再存在。此外,XML的末尾在PDM标记内有这个二进制blob,可能是Base64编码的东西。我不清楚那里是否有任何帮助。
答案 0 :(得分:3)
这是一个相当古老的问题,但也许有人会觉得答案很有用。
nvprof
输出文件实际上是SQLite3数据库,您可以使用独立的sqlite3程序或以编程方式打开它们。时间线信息在这些表中(所有时间戳都以纳秒为单位):
CUPTI_ACTIVITY_KIND_CONCURRENT_KERNEL
- 有关内核的数据CUPTI_ACTIVITY_KIND_MEMCPY
- 有关内存副本的数据(非P2P)CUPTI_ACTIVITY_KIND_MEMCPY2
- 有关P2P内存副本的数据CUPTI_ACTIVITY_KIND_MEMSET
- 有关memsets的数据CUPTI_ACTIVITY_KIND_RUNTIME
- 有关CUDA Runtime API调用的数据CUPTI_ACTIVITY_KIND_DRIVER
- 有关CUDA驱动程序API调用的数据CUPTI_ACTIVITY_KIND_MARKER
- 有关NVTX标记的数据。它与其他表格略有不同,因为它没有start
和end
字段。相反,标记的开头和结尾是2个条目(结尾有name=0
)您可以使用correlationId
字段将API调用与内核/ memcopies / memset相关联。