"Display driver AMD stopped responding and has successfully recovered"
This warning is caused when the kernel time exceeds the watchdog timer limit as set by windows. The windows restarts the GPU as it needs it to refresh the screen.
You can get details about how to tackle this in AMD APP SDK Documentation.
thanks for your reply,
I tried to set registry using documentation, which says:
Under Windows Vista, to prevent long programs from causing a dialog to be displayed indicating that the display driver has stopped responding, disable the Vista Timeout Detection and Recovery (TDR) feature, which is trying to detect hangs in graphics hardware. To do this, use regedit.exe to create the following REG_DWORD entry in the registry, and set its value to 0: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\TdrLevel
This avoids the constant polling by the driver and the kernel to prevent long work units from monopolizing the device. (To restore default functionality, set the TdrLevel to 3.) Note that Microsoft strongly discourages disabling this feature, and only recommends doing so for debugging purposes. Do so at your own risk.
more info on web: http://msdn.microsoft.com/en-us/windows/hardware/gg487368.aspx
but it didn't solve the problem.
I think, that when the GPU restarts after the long time (exceeding default TdrDelay 2 seconds), the clEnqueueReadBuffer fails, because of:
The operating system resets the appropriate state of the graphics stack. The Video Memory Manager component of the graphics stack purges all allocations from video memory. (see web page) - The memory is not available.
I tried to set the registry keys using these sources on different GPUs, but with no success. The message "Display driver AMD stopped responding and has successfully recovered" still appears.
TdrLevel = 0
TdrDelay = 32 (DEC)
TdrDdiDelay = 32 (DEC)
ATI HD 4500
Name: ATI RV710
Driver version: CAL 1.4.900
Version: OpenCL 1.0 ATI-Stream-v2.3 (451)
Windows 7 professional
thanks for any help
I solved this problem using registry key TdrDebugMode = 1 using the website from previous post which tells gpu to ignore any timeout. It is only temporary solution, but it works for me.
(I tried it on 2 different GPU, but it worked only on first GPU. Maybe I did something wrong on the second one).
Maybe it helps somebody with similar problem.