The embedded world is so extremely flexible, because it is full of open standards. We therefore expect that big processor vendors will push harder than Google can push back. OpenCL-support is very important for GPGPU-libraries like ArrayFire, VexCL, ViennaCL – these can be ported to Android in less time.
Apple now has introduced Metal on iOS to increase the fragmentation even more. StreamHPC and friends are working hard on getting one language to have on all platforms, so we can build on bringing solutions to you. Understand that if OpenCL gets popular on Android, this increases the chance that it will get accepted on other mobile platforms like iOS and Windows Mobile/Phone.
On the other hand it is getting blocked wherever it can, as GPGPU brings unique apps. A RenderScript-only or Metal-only app is good for sales of one type of smartphone – good for them, bad for developers who want to target the whole market.
Getting the current status
To get more insight on the current situation, Pavan Yalamanchili of ArrayFire has created a spreadsheet (click here to edit yourself). It is publicly editable, so anybody can help complete it. Be clear about the version of Android you are running, as for instance in 4.4.4 there are possibly some blocks thrown up by Google. If you found drivers, but did not get OpenCL running, please put that in the notes. You can easily find out if your smartphone supports OpenCL, using this OpenCL-Info app. Thanks in advance of helping out!
Why not just RenderScript?
We think that RenderScript can be built on top of OpenCL. This helps allowing new programming languages and finding the optimal programming-solution faster than just trusting Google engineers – solving this problem is not about being smart, but about being open to more routes.
Same is for Metal, which even tries to replace both OpenCL and OpenGL. Again it is a higher level language which can be expressed in OpenGL and OpenCL.
Let’s see if Apple and Google serve their dedicated developers, or if we-the-developers must serve them. Let’s hope for the best.
At least Android is getting ES 3.1 in Android L along with Android Extension Pack “AEP”. Compute shaders are a start and “AEP” is a nice thing to see as that may allow GPU manufacturers to get various extensions to ES out there in a more timely manner. While initially geometry shaders and other aspects have been touted in AEP it will be interesting to see if any desktop equivalent AZDO extensions are also brought to ES sooner than later over the next year or so which definitely minimizes the impact of APIs like Apple’s Metal. Google of course would really do itself a favor by openly embracing OpenCL of course; it’s not too late.
I’ve added Dell Venue 7 (Intel Atom Z3460) and Venue 8 (Intel Atom Z3480) to the list.
Regards,
Alex.