我如何知道nvprof在CUDA程序中的存在



我有一个小的CUDA程序,我想用nvprof来评测它。问题是,我想以

  • 当我运行nvprof my_prog时,它将调用cudaProfilerStartcudaProfilerStop
  • 当我运行my_prog时,它不会调用上面的任何API,因此可以消除分析开销

因此,问题变成了如何让我的代码在运行nvprof时意识到它的存在,而不需要额外的命令行参数。

您是否测量并验证了当未连接nvprof时,cudaProfiler启动/停止调用会引入可测量的开销?我非常怀疑情况是否如此。

如果这是一个问题,您可以使用#ifdef指令将这些调用从您的发布版本中排除。

没有办法检测nvprof是否正在运行,因为如果被分析的应用程序"感知"到探查器并更改其行为,那么这就违背了分析的目的。

相关内容

  • 没有找到相关文章

最新更新