I’m new to OpenCL and have come across circumstances where it just hangs the system, and I have to do a forced reboot. Program crashes are fine - I can deal with it, but system freezes make debugging a painful experience.
Should I get a second GPU to run development on, or won’t that make a difference because it’s a driver crash which would affect the entire system anyway?
What OS are you using? I don’t write drivers on Windows, but AFAIK since Windows Vista there’s a watchdog that should prevent a GPU hang from freezing the whole system. The way it works is if an operation takes more than, say, 5 seconds, it resets the GPU. This is built into the OS and is enabled by default.
If I was working on WinXP I would definitely upgrade.
Win7 64bit, latest nvidia drivers as of 2 days ago (for a 9800 GTX). I’ve let it go for 5 minutes, so whatever failsafe is not kicking in.
That’s bad. I don’t know enough about what’s causing the hang to know whether a separate GPU would prevent it.
While this may not be a great solution, have you considered debugging your code running it on a CPU instead? Just in case something in your code is triggering the hang (although we agree that nothing in your code should freeze the whole system).
Try using the nVidia developer drivers…I’ve found that sometimes the latest release drivers don’t work so happily with OpenCL.
I agree with David though…run it on the CPU (Go get AMD’s APP SDK and it should open up your CPU as an identifiable device). See what happens. Let us know
Ok, problem and solution found. I’d run a application that had written some settings to my registry, namely, the one that determines the graphics device driver timeout. It had been disabled and the timings set to insane values. The defaults are as follows:
TdrLevel: 3 (on)
TdrDelay: 6 (seconds)
TdrDdiDelay: 6 (seconds)