Synchronize CUDA timer when stopping it
Previously, when Stop was called on a Cuda timer, it would record a stop event but it would not synchronize it at that time. Instead, the synchronize was only called when GetElapsedTime was called. The problem is that the time of the event is only marked when synchronize is called. Thus, if the event completed before GetElapsedTime was called, it would record the time from when the event acutally happened to the time when GetElapsedTime was called as part of the elapsed time, which is incorrect. Fix the problem by synchronizing when Stop is called. Although this makes the Timer more invasive, generally using the Timer can cause synchronization to happen. This behavior is consistent with the Timer implementation for other devices.
Showing with 2 additions and 1 deletion