从VS2008运行和仅运行.exe时,GPU代码给出不同的时间

时间:2011-10-21 14:52:32

标签: windows cuda gpgpu nvidia

我的代码中有cuda事件来记录执行时间。当我从VS 2008中单击“Start Debuggin”时,计时器给出的值为1.5秒。但是,当我从.exe文件运行程序时,它给出的时间为.4秒。为什么会出现这种差异?

1 个答案:

答案 0 :(得分:1)

除了(只是几种可能性)之外,附加到调试器的运行应该引入性能差异没有固有的原因:

您是否设置了条件断点?根据具体情况,这些会对执行时间产生巨大影响。

您是否明确将大量数据写入DebugTrace听众? (编辑:这与C#相关,可能不适用于C ++。)

EXE是否在发布模式下编译?默认情况下,Release配置会启用在调试模式下构建时不存在的优化。

您的计时代码真的只是在相关部分计时吗?如果您在程序执行开始时而不是在您真正感兴趣的GPU调用周围启动计时器,则可能会意外地计算一些启动任务,这些启动任务与运行时无法激活的调试器相关联一个独立的应用程序。