12 Replies Latest reply on Aug 20, 2010 6:26 PM by Raistmer

    Second GPU on HD5970 produces incorrect results

      How threadsafe is ATIs OpenCL-implementation?


      I'm the author of Pyrit and have yet another possible bug in ATIs OpenCL-implementation to ask about. The upstream-bug is tracked at http://code.google.com/p/pyrit/issues/detail?id=123

      A user reports that his setup crashes with a HD5970. The cause of the error is a self-test in my code that checks if the GPU is actually computing correct results; this catches the second GPU on the HD5970 producing bogus results (see comment #3).

      What puzzles me is that there is a *ton* of error checking in my OpenCL code, which checks every single API-call. No error is reported, all functions return CL_SUCCESS...

      Does someone have an idea what might cause this problem?

      One possible explanation for this might be that Pyrit uses one host-thread for every GPU, possibly calling the OpenCL-library from different threads at the same time. This *should* not be a problem as there are no global variables (all data is local to the calling thread) and the OpenCL-library is *supposed* to be thread-safe.

      You can find the whole source-code at http://code.google.com/p/pyrit/source/browse/#svn/trunk/cpyrit_opencl