Hello i'm new to GPU and Computer vision. I just know some basic mathematics and was looking for the smallest and lightest processor with enough computation power to calculate large matrix multiplication and inversion so that i could do Computer Vision, Machine Learning, Neural Network, Intelligent and Advance Control techniques, Optimization and so on.
I am about to build a very small and low weight Quad-Rotor That should be intelligent Enough so it needs a powerful processor so I'v found this board :
Orange pi zero plus 2 (Allwinner H5 processor with quad cortex A53 core and 6 Mali 450 shader unit)
The CPU is well powerful Enough but i was wondering if its possible to do some algebraic calculations like matrix multiplication and inversion using the mali 450 GPU. is it possible?
i know that it only supports OpenGL not OpenCL. But is it possible to use OpenGL to do matrix calculation?
can i access GPU directly and force it to do mathematical calculations? Then i would write my own Libraries.
I'm quite familiar with arm cortex M series and Register Based Programming.
The most critical Application for me is Computer Vision. I could do the rest using CPU alone but it would be awesome if i could use this powerful 40GFlops GPU for Advanced Control techniques.
The only means to program the Mali-450 GPU is via the OpenGL ES 2.x graphics API, so you'll need to write a graphics shader program which reads input from an RGBA data texture or a gemetry mesh, and writes results back to an image in memory, and then interpret that as a data payload.
The main limitation for OpenGL ES 2.x is the limited set of data formats you have to play with- 8-bit per color channel unorm (unsigned normalized) color data is the highest-precision as you are going to get. You can pack fp16 data into two channels, but it starts costing you some cycles.
You'd have more luck with our newer Mali-Txxx and Mali-Gxx series products, which can support OpenGL ES 3.x (Mali-T760 onwards supports writing to floating point textures in memory with recent drivers), and OpenCL (although note platform support varies by vendor, not all vendors will supply OpenCL drivers).
HTH,Pete