Hi, what is correct way of distributing OpenCL runtime with our application?
We'd like to achieve following: when launched on any target machine, we want our application to detect any OpenCL AMD GPU devices and use them, or (if no devices are present) fall back to slower C++ implementation. Is it possible to distribute OpenCL dynamic library with the application just for case that there is no OpenCL installed on target system? We have already tried to compile our application with libOpenCL.so from APP SDK and move the application together with the library to other machine. However, there were weird problems with deadlocks when throwing C++ exceptions anywhere in application if it was linked with the libOpenCL.so and moved to other machines.
How can we achieve correct and safe automatic detection of OpenCL devices in unknown environment of target machines? I'm interested in solution for Linux and Windows.