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.