I am doing the following test
0 : compile kernel for GPU
1 : start timing
2 : Launch kernel solving a problem returning a result
3 : stop timing
4 : Sleep(100ms)
5 : show timing
6 : goto 1
I have experienced that using a NVidia card the time measured is in my case always 25ms with or without the sleep in line 4.
Using an AMD card I see the time as 32ms when sleeping and 16 ms when not sleeping.
If I change the sleep to some value less than 100ms, then it does not affect the gpu kernel time.
For both NVidia and AMD I see the first launch as taking longer and for both the following times are lower.
Is there a well described flushing/pausing/something of the kernel on AMD devices which I should know about?
Amd timing with Sleep inbetween calls
GPU:55
GPU:35
GPU:35
GPU:35
GPU:35
GPU:32
GPU:32
GPU:32
GPU:32
GPU:32
Amd timing without sleep between calls
GPU:49
GPU:16
GPU:15
GPU:15
GPU:16
GPU:16
GPU:16
GPU:16
GPU:15
GPU:16