OpenCL support was added to Adreno Profiler last month, although using it requires driver updates that will take a while to propogate to commercial devices. We will be releasing an update to the SDK either late this week or early next week that will have a few OpenCL samples. They will also require a device that has OpenCL support.

I can't provide any specific information on if or when OpenCL support will be available in commercial devices, since the decision to expose OpenCL to end developers - either at launch or via OTA updates - is made by handset manufacturers and carriers.

Thanks for the update. Looks like Qualcomm's OpenCL implementation work is going fine.

Will OpenCL drivers be available to the APQ8064 MDP tablets?

I have been working on several OpenCL projects, one of which (http://www.raijincl.org) is an open-source autotuning GEMM (matrix multiply) implementation which is already showing very good results on AMD and Nvidia hardware. Hoping to bring all of my projects over to Qualcomm products as soon as I can get a device with OpenCL drivers.

Surely the Adreno 320 must be using a unified memory system so I don't see why there should be any issues with data transfer. I have not seen the OpenCL capability of the Adreno 320 yet so I could be wrong but I doubt that they have dedicated memory for it.
So in principle you should be able to allocate memory on the CPU and use it on the GPU without having to transfer. see cl_mem_use_host_ptr for the buffer definition in OpenCL.

Easy answer. NO. I don't have a Nexus 4 but as far as I am aware Google doesn't provide the opencl library/driver needed for the demo so it shouldn't work.
Also Google is a bit allergic to OpenCL and they have repeatedly said that Renderscript is the Compute API for android so don't expect miracle from them. At least if Renderscript was supporting as much as OpenCL then I wouldn't mind but it is far from the case unfortunately...
Amazon seems to be playing with that and with some luck companies like Samsung might be willing to add that but until then you are limited to development platform.
Laurent.

Unfortunately, the situation with OpenCL support on commercial devices is complicated. Although we provide a driver to our customers, it's up to them and Google to expose the APIs to third party developers. I can't comment on any specific plans they might have in this area, since at this point, it's really up to them.

And for more details here is the list of supported 2D and 3D textures.

I am always amazed by how so few formats can be supported on CPU... Sure I understand that to optimize all formats it is a lot of work but a default implementation for all existing format even if slow should be the minimum for the CPU.

No single or dual channel format supported at all on CPU. No 8bit single or dual channel on GPU either.

This is clearly the point I hate the most in OpenCL. It is supposed to be portable but how can you port something when the Image format are mostly optional and vary so much from one platform to another.

The textures format I was hoping to use are not available on the Adreno 320 or the CPU, what a surprise...

Rant over :)

Well I have also written the full wrapper now but I have not tested any kernel yet.

Made progress in Nexus 4 phone for using OpenCL in java & also made it to work with aparapi framework , so one can write pure java applications (using GPGPU & OpenCL) on the Nexus 4 devices. IMHO same approach can be used for any other future Android phones with proper OpenCL.so libraries deployed in the phones (without HW/SW vendor's SDKs).

Hi everyone. I found this upcoming developer board for $149 : http://www.inforcecomputing.com/product/moreinfo/ifc6410.html based upon the APQ8064 (quad-core Krait with Adreno 320). The board supports Android 4.1.2 and vendors have confirmed that they will provide OpenCL drivers. Just thought people might be interested :)

I was able to run OpenCL on my HTC Butterfly. It even does better than the Nexus 4 I have, as the Nexus 4 tends to crash after a few interations. It seems that not many people mentioned this phone anywhere.

Can anyone summarize the OpenCL tools supported by the Adreno SDK, and describe where they run and how?

For example, the profiler runs the GUI under Windows only (what flavors?) but the executable runs on the SnapDragon.

There is an emulator for Windows. There is a plugin for Eclipse. Is this for Eclipse running under Ubuntu? On an Android system? What does the plugin enable? Can you interactively debug a kernel running on the GPU and set breakpoints? Ditto on the CPU? Does printf() work from inside a kernel?

Where does the offline compiler run? On Android? On Windows? can it run under a Linux distro like Ubuntu?

Any idea about what source code compatability issues arise with respect to other OpenCL implementations, particularly Mac?

I think Android 4.3 update for Nexus 10 is removing proper OpenCL support. Kishonti report that kernels no longer compile under 4.3. I think Google likely forced ARM to do so, given that they control the firmware for nexus devices. Can anyone confirm the status of Nexus 4. Google's behavior of actively opposing an open standard is really disappointing.

Can anyone confirm which Qualcomm device comes with official OpenCL drivers with support? I think Qualcomm's MDP (mobile development platform) devices likely support OpenCL "officially".

Yes. I have observed that when I manually updated my Nexus-4 with Android 4.3, no /system/lib/libOpenCL.so is available. I thought that when they do OTA update they (Google/LG) will include the OpenCL support. More in my blog about Nexus-4 manual update.

If this is the case, then it would problematic for me -- I bought Nexus-4 as it has OpenCL and BT 4.0.

I am not aware of those files in Android 4.3. If they are not .so file, most probably we might not be able to load via dynamic-loading. May be we can force them. But I am not sure.

I had a backup file of working libOpenCL.so, I could not copy as I have not rooted my phone (deliberatly). I will keep informed here, if I have any progress on this. One way I can see to use my backed-so-file is to give explicit path for loading -- But I am not sure whether this works with 4.3 (as some of the compiler version/etc changes), it may not work.

Pages

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.