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.
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.