Hi,
I'm trying to get the 64 bit OpenCL 1.2 libraries onto my Android development board. My goal is to finally use ARM Compute Library with OpenCL on Android.
I see that since Android 4.x onwards OpenCL support was stopped by Google (probably to promote Renderscript).
The Mali OpenCL SDK (refered from Khronos website) seems broken.
The Mali SDK Home page has a link for Mali OpenCL SDK which is getting redirected to ARM Compute Library page.
The ARM Compute Library has suupport for Android and has OpenCL Stubs and asking the user to use the real libOpenCL.so library
My guess is that the Mali OpenCL SDK page is temporarily down for maintainence.
Could someone help please?
Where do I find the OpenCL 1.2 SDK?
How do I (cross) compile the OpenCL 1.2 libraries for Android?
I don't want to port the Mali OpenCL SDK into Android build system and build from within Android SDK. I'm fine using a standalone Android toolchain to cross-compile the Mali OpenCL SDK and copying the libraries onto my target.
Thank you.
Regards,
San
Don't get your hopes up too high! My original support query that I quoted was originally handed over to the ACL team which led me off to the white elephant chase of the arm_compute-v17.06-bin/lib/ solution which proved to be just another set of compiled versions of the stub libarm_compute.so!
Regards
Dave
Dave, please try the hint given by Pete. Check if OpelCL symbols are already there in your libGLES_mali.so. It worked for me.
Thanks,
I don't have the libGLES_mali.so installed on my Odroid XU4, I'm getting a bit short of eMMC space and will have to rebuild to a larger device before installing extra stuff. A search for libGLES proved unsuccesful. What I did find however on my OpenCV 3.3 install there is a file in the build/lib/ directory libopencv_core.so which has all the opencl symbols listed, that may fit the bill, only trouble is I can't find out what version of OpenCL is used by OpenCV.
On doing a bit of further searching I also found that in /usr/lib/arm-linux-gnueabihf/mali-egl/ there is a file libmali,so that also appears to have the cl symbols listed. Again I have been trying to find out what version of OpenCL is used.
Following the suggestion, if I symlink to one of these file with a local libOpenCL.so, what about the stub library name libarm_compute.so? Does that become irrelevant or does that also have to be symlinked?
Cheers
Dave, from what I understand, ComputeLibrary/build/libarm_compute.so and ComputeLibrary/build/ibarm_compute_core.so are the main ACL libraries.
All the CL subs are inside ComputeLibrary/build/libOpenCL.so . You don't need ComputeLibrary/build/libOpenCL.so anymore, as you'd have symlnked libOpenCL.so to your libmali.so which contains the actual CL symbols.
You can just delete your ComputeLibrary/build/libOpenCL.so and use your symlinked version.
Hope this helps.