【发布时间】:2021-02-25 17:59:17
【问题描述】:
琐事
在 NVIDIA Nsight 系统中,您可以使用 --stats=true 标志来获取 GPU 和 CPU 之间数据传输的详细信息。输出包括类似于以下内容的部分:
CUDA Memory Operation Statistics (KiB)
Total Operations Average Minimum Maximum Name
------------------- -------------- ------------------- ----------------- ------------------- -------------------
8192.000 2 4096.000 4096.000 4096.000 [CUDA memcpy HtoD]
528384.000 2 264192.000 4096.000 524288.000 [CUDA memcpy DtoD]
问题
是否可以获得每个 API 调用的统计信息?也就是说,我们能不能得到每个cudaMemCpyxxx调用中Host/Device之间传输的数据量?
【问题讨论】:
-
您可以从 GUI 中的时间线视图中获取此信息,但我认为这不是您所要求的。
-
要从命令行执行此操作,this blog 有“扩展汇总统计信息”中的步骤 1. 导出到 sqlite 数据库 2. 构建适当的数据库查询 3. 利润
-
谢谢@RobertCrovella。这对我行得通。但 GUI 不显示该信息。你能详细说明一下吗? (我可以获取内核信息,但不能获取
cudaMemcpyxxx。