我想要使用nvprof my_prog
配置一个小型CUDA程序。问题是我想以这样的方式编写程序
cudaProfilerStart
时,它会调用cudaProfilerStop
和my_prog
。nvprof
时,它不会调用任何上述API,因此可以摆脱分析开销。问题因此变成了如何让我的代码在运行时意识到WHERE username = ? OR (email = ? AND password = ?)
的存在,而无需额外的命令行参数。
答案 0 :(得分:1)
您是否测量并验证了cudaProfilerStart / Stop调用在未附加nvprof时会引入可测量的开销?我非常怀疑情况就是这样。
如果这是一个问题,您可以使用#ifdef
指令从发布版本中排除这些调用。
无法检测nvprof是否正在运行,因为如果配置文件应用程序“感知”了分析器并改变其行为,那么这种方法会破坏分析的目的。