Hello,
Is it possible to use the Mali user space drivers on the Nexus 10 available at http://malideveloper.arm.com/develop-for-mali/drivers/mali-t6xx-gpu-user-space-drivers/ with stock Google firmware for OpenCL development? I don't want to change/debug the OS itself, so I don't think I should follow the guide at http://community.arm.com/docs/DOC-10124
If so, which exact firmware version is required for the r5p0-06rel0 drivers? The device has 3 different flavors of Android 5.0 available by Google (here: https://developers.google.com/android/nexus/images#mantaray - 5.0, 5.0.1 and 5.0.2), none of them seem to work with this driver properly, I get errors when calling OpenCL functions (usually CL_OUT_OF_HOST_MEMORY when calling clGetDeviceID), a similar thing I encountered when using nonworking Linux kernel + user space driver combination on a Samsung Chromebook 2, so I think (hope) the same happens here, and just need the correct combination.
What about the older r4p1-00rel0 / r4p0-02rel0 drivers, what exact firmware version should they work with?
My program works on both a Qualcomm-based Samsung Galaxy S5, and on a Samsung Chromebook 2, so both Android and Mali work (separately..), I am just missing a proper driver on the Nexus.
Thank you for your help,Robert
Hi Robert,
The drivers consist of two parts, the Kernel Module, and the user-space drivers. Both parts are available separately through Developer for you to use and the Nexus 10 is supported. The userspace drivers are available as prebuilt binaries ARM Mali Midgard GPU User Space Drivers - Mali Developer Center, the kernel side is available as source from Open Source Mali-T6xx, Mali-T7xx & Mali-T860/T880 GPU Kernel Device Drivers which needs to be built against the kernel of the device you are running on.
The version of userspace and kernel side need to match in order to work.
In this case I would suggest following the Android from scratch guide Android from scratch on Google Nexus 10 with ARM Mali GPU is the easiest way to get this working for you, unless you feel able to do the kernel side driver/kernel integration, build and deploy onto the device yourself.
Hope this Helps,
Rich
The Mali driver has a Renderscript front-end to support compute in Android and this doesn't allow native OpenCL applications to run directly. Stock drivers for Android usually come with only Renderscript support, although some also support OpenCL depending on the vendor. The next public binaries r6p0 for Nexus 10 to be published on malideveloper.arm.com as Rich mentioned above will contain both Renderscript and OpenCL front-ends.
Guillaume
Hi,
I created Nexus 10 build following https://community.arm.com/docs/DOC-10124 , I was able to run clinfo command line application but building any program gives.
ERROR: CL_COMPILER_NOT_AVAILABLE(-3)
I was able to run the same program on some other device, so the program seems to be fine. Someone else had the same problem http://stackoverflow.com/questions/32275731/opencl-compiler-not-available
Can we assume that we couldn't run OpenCL on Nexus device or is there a way to run and profile(using DS5) any OpenCL programs on Nexus 10.
Cheers,
Prashant
Hi Prashant,
This is expected with all available Mali drivers for Nexus 10 until now, unlike other platforms, on Nexus 10 they do support compute with RenderScript but not OpenCL. We're now working on releasing new public drivers on malideveloper.arm.com with OpenCL enabled, I'll add an update when this is ready. If possible we'll also update the guide you've been using to automatically pick the new drivers.
Best wishes,
Hi Guillaume,
Will wait for driver update for Nexus. My aim is to run and profile android apps, command line C,C++ openCL & OpenGLES executables using DS5. Is there any other android build with any other device( using latest Mali GPU) where I can do this ? Would prefer actual mobile or tablet.
Regards,
Hi psharma,
The list of public drivers we release can be found here:
http://malideveloper.arm.com/resources/drivers/arm-mali-midgard-gpu-user-space-drivers/
All of these drivers do support OpenCL with the exception of Nexus 10 drivers, and Juno r6p0.
Specifically for Android, it looks like your options are: Juno r5p0, and gem5 r8p0 currently, until we release the newer Nexus 10 drivers with CL support. Note that neither gem5 nor Juno are 'actual mobile or tablet' devices.
Note that this is just the list provided by us. There are plenty of production devices with Mali that have CL enabled, for example the Honor 7 comes to mind as one.
Kind Regards,
Michael McGeagh