I am working with the Zynq Ultrascale+ ZCU102 Board. On it is a Mali-400 MP2 GPU. I need to use this as an additional computational unit (i.e. use OpenCL rather than OpenGL). I have read that this GPU only supports OpenGL. Is there a way to use OpenCL? If not, can I use OpenGL instead and ignore displaying anything. Ideally, I don't want to have to connect a display to the board.
Thanks in advance!
Hi,
Mali-400 only supports OpenGL ES 2.0; there is no support for OpenCL in the hardware.
Using OpenGL for GPGPU workloads is possible, but with OpenGL ES 2.0 only there will be many limitations.
The pixel processors are the main data crunching capacity, but they only support "mediump" fp16 (and not IEEE fp16 at that) processing precision. In addition their only ability to output data is via image framebuffer output (e.g. render to texture), so you'll need to map your output data set in to RGBA8 color data and store it into a texture which can be read back on to the CPU.
HTH,Pete
Alright, thank you very much. Do you have some basic source code to explain exactly what is needed to use OpenGL for GPGPU computing? Even something simple like adding two vectors on the Mali 400 and getting the result back on the CPU.
I've have tried using the example here but it uses GLEW which to my best knowledge doesn't support OpenGL ES 2.0. Any help will be greatly appreciated. Thanks!