I have cuda events in my code to record the time of execution. When I click “Start Debuggin” from VS 2008, the timer gives a value of 1.5 seconds. However, when I run the program from .exe file, it gives time of .4 seconds. Why this difference?
Share
There’s no inherent reason that running attached to the debugger should introduce a performance difference, other than (just a few possibilities):
Do you have any conditional breakpoints set? Depending on the condition, these can have a dramatic impact on execution time.
Are you explicitly writing large amounts of data to the
DebugorTracelisteners? (Edit: that’s relevant for C#, probably not for C++.)Is the EXE compiled in Release mode? By default, the Release config turns on optimizations that aren’t present when building in Debug mode.
Is your timing code really only timing the relevant section? If you’re starting the timer at the start of program execution instead of around the GPU calls that you’re really interested in, you may be accidentally timing some startup tasks that are tied to running with the debugger that won’t be active in a standalone app.