Hi,
I have a couple of ODroid XU3s and they are working great. They are running the Mali T628 GPUs and currently support OpenCL 1.1.
However, I want to switch over to OpenCL 1.2 or 2.0 for future development work.
Does anyone know when updated drivers might be released for the T628?
Or can anyone suggest a different SoC to use with the equivalent or better specs to the XU3 and supports OpenCL 1.2 or 2.0?
Thanks!
Ben
Hi mans,
Thanks for additional comments on this. Though I appreciate it may be frustrating I'm afraid we have to stand by the "no comment" on future releases for the time being.
It is feasible in certain cases to use some of the OpenCL-accelerated samples in OpenCV as they are. Or indeed, just make small changes to them if possible to remove CL1.2-specific features. But I should try and set your expectations generally with OpenCV. The OpenCL back-end that can be enabled has been optimised with desktop GPUs in mind. As you may know, one of the great strengths of OpenCL is its flexibility allowing you to target specific architectural characteristics. Although this means you can reach optimal performance on a particular platform, this can easily lead to implementations that are then not optimal when ported to other platforms. This is particularly true for the CL layer within OpenCV. Having one application that runs optimally across all platforms is ideal, but not yet a reality.
The other issue with OpenCV to be wary of is that its basic architecture is synchronous, This means that - typically - you make a call and wait for the result. In a mobile architecture you want to minimise synchronisation points between processor types as much as possible. A filter graph framework would be more optimal where you set up a chain of inter-dependent kernels to run on the GPU and then let the graph run in parallel with any other processing you want to do on the CPU.
That isn't to say of course that OpenCV doesn't have its uses. It remains an unparalleled resource for vision algorithms, and extremely useful when it comes to prototyping applications. My recommendation though is to plan in a significant refactoring phase to then get the best out of a heterogeneous SoC. With Mali GPUs, I'd recommend looking through some of the optimisation guides to get a good idea of the sort of things that will work optimally. There's a selection here: GPU Compute, OpenCL and RenderScript Tutorials - Mali Developer Center . And if you have any specific optimisation questions from this, do of course let us know.
I appreciate that's not the ideal answer, but I hope it helps nevertheless.
Best regards, Tim
Thanks Tim,
Your reply was a good one and shed light on some questions that I had. I like to create an new thread for optimum implementation of Opencv algorithm on Mali so we can discusss samples codes from opencv that works directly on Mali and samples which needs some modification.
Do you have any library for filter graph type of framework that I can use optimally on Mali GPUs?
No problem, we'll look out for your additional questions on OpenCV.
There is no such graph-based framework currently available for Mali. As things stand you would need to implement this kind of functionality within your own application, bearing in mind the particular strengths of mobile architectures as you optimise.