PDA

View Full Version : NVIDIA Watchdog times out my OpenCL execution



Cbswe
04-04-2011, 10:50 AM
A "feature" on nividia cards is something called "watchdog". It purposely times out any execution on a core that runs for longer then 5s.

I'm trying to implement a program that searches for solutions to instances of NP-complete problems with a brute force approach (exhaustive search). This means that executions might take several seconds. Is there any good strategy to get around this timeout? It actually seems to view a running queue as a one execution. So just breaking it up into more kernels with more precise search intervals doesn't seem to do the trick.

david.garcia
04-04-2011, 03:23 PM
Is there any good strategy to get around this timeout?

Here's Microsoft's knowledgebase entry on WDDM's timeout (http://msdn.microsoft.com/en-us/windows/hardware/gg487368.aspx)

Cbswe
04-08-2011, 10:50 AM
Is there any good strategy to get around this timeout?

Here's Microsoft's knowledgebase entry on WDDM's timeout (http://msdn.microsoft.com/en-us/windows/hardware/gg487368.aspx)

Thanks for the answer!
But I'm not really interested in disabling this property. I'd like some way to go around it.

Would queue partitioning with clFinish-calls in between prevent this time-out?

david.garcia
04-08-2011, 02:13 PM
If you split your NDRange invocations into smaller chunks you will do fine. For example, instead of enqueuing 1 million work-items at once you may want to enqueue 100,000 work items ten times. You don't need and you don't want to call clFinish in between NDRanges.

Cbswe
04-08-2011, 02:25 PM
If you split your NDRange invocations into smaller chunks you will do fine. For example, instead of enqueuing 1 million work-items at once you may want to enqueue 100,000 work items ten times. You don't need and you don't want to call clFinish in between NDRanges.

Thanks for the answer! I'll try that!