Hard-lockup while/after calling GPU through OpenCL

Discussion created by ebfe on Jan 17, 2010
Latest reply on Feb 21, 2010 by omkaranathan


I'm the maintainer of Pyrit and currently try to make my OpenCL-code work smoothly with AMD's implementation. I'm running Ubuntu 9.04 with 9.12-hotfix using a HD4850.

While I managed to jump through the hoops required to get the code working, I currently experience hard lockups when using OpenCL on the GPU: The system completly stops responding with no choice but to hit the power-switch. This may happen while the code is executing or even after the process has successfully exited. It seems once Pyrit has been using OpenCL on the GPU-device, the system is prone to lockup within the next 30 seconds or so. This does not happen when using the CPU-device only.

As hard-lockups are impossible to debug myself, I welcome you to take a look at the code yourself. You'll find the most important OpenCL-related code in the function calc_pmklist().
The only source of the problem I can currently think of is the fact that the OpenCL-code is not called by the main thread of the process; this may cause locking issues in the OpenCL-library. Maybe you can guide me on how to gain more debug-information for this particular problem?

On the pro-side: The OpenCL-code running on Stream 2.0 is about twice as fast as the (almost) same code running on Stream 1.4 (via brooks). My HD4850 performs somewhere between a GTX280 and a GTX295 running CUDA.