我怎么知道CUDA程序中存在nvprof?

时间:2017-10-29 19:17:46

标签: cuda nvprof

我想要使用nvprof my_prog配置一个小型CUDA程序。问题是我想以这样的方式编写程序

  • 当我运行cudaProfilerStart时,它会调用cudaProfilerStopmy_prog
  • 当我运行nvprof时,它不会调用任何上述API,因此可以摆脱分析开销。

问题因此变成了如何让我的代码在运行时意识到WHERE username = ? OR (email = ? AND password = ?) 的存在,而无需额外的命令行参数。

1 个答案:

答案 0 :(得分:1)

您是否测量并验证了cudaProfilerStart / Stop调用在未附加nvprof时会引入可测量的开销?我非常怀疑情况就是这样。

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

无法检测nvprof是否正在运行,因为如果配置文件应用程序“感知”了分析器并改变其行为,那么这种方法会破坏分析的目的。