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
Hi Dave + San. Unfortunately, you are correct. The OpenCL SDK is no longer available. It has been replaced by the Compute Library. Arm has no plans on supporting or releasing any updates for it.
We moved Malideveloper over to Arm's fresher developer website and we are still in the process of making the content on there fit together. The reason there are Open CL links is because they used to point back to the Malideveloper website, which now doesn't exist. We are removing them as soon as we can. I think the pages may have been lost in the migration as they were hosted on a server outside of my remit.
I'm afraid I only curate the content around here and sorry for not being much more help.
Ben
Hi Ben
Thanks for confirming what I had thought but that now leaves us with Compute Library very much as a chocolate poker. When running the examples before using the library for real. The Opencl Stub returns the message that we don't have a real OpenCL library and needs a real armlib_compute.so (along with OpenCL.so + others) in order to run the examples and Compute Library. So we turn full circle to my TAC710361 request to find where do we get these shared oblect files from?
I think I'll give up my research into using GPUs for image analysis and go back to FPGA!
Regards
Dave
Hi Ben,
Thanks for your inputs. Indeed, my intention is to use ACL.
However, the ACL (even the latest V17.10) has OpenCL stub library and forcing us to use the real libOpenCL.so (which is no more available).
Seems like a deaclock and our project is blocked.
Is there a woraround you could suggest? Should we takeup with the ACL team?
Thanks,San
Hi San + Dave,
Yes, I would recommend flagging these issues with the ACL team. They sound like major bugs. Especially if it is stopping projects.
Once again I apologise for the resources not being available, and developer.arm being misleading on the topic. I have reported this thread to the ACL team too.
Kind regards,
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!
Ben Walshe said:
I have reported this thread to the ACL team too.
Thanks a lot Ben. I guess I don't have to open another thread. I'll wait for inputs from ACL team.
Thanks,
Dave, please try the hint given by Pete. Check if OpelCL symbols are already there in your libGLES_mali.so. It worked for me.
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.