Opengl es 使用Mali-400 GPU(OpenGL ES 2.0)进行通用计算?

Opengl es 使用Mali-400 GPU(OpenGL ES 2.0)进行通用计算?,opengl-es,opengl-es-2.0,gpgpu,mali,Opengl Es,Opengl Es 2.0,Gpgpu,Mali,我准备购买一个用于基本(基于CPU的)并行计算的组件,我注意到这些模块也有GPU。不难发现与OpenCL不兼容,但我很难确定是否能够使用OpenGL接口进行通用GPU编程。我不需要做任何花哨的事;我只是想知道我是否可以将一些矩阵繁重的任务转移到GPU上 我可以在OpenGL中找到一个关于GPGPU编程的有用方法,但它假设可以访问GLUT,这在OpenGL ES 2.0中是不可用的,我在SE上找到的最相关的答案是关于在相同的GPU上做我想做的事情 它是否像使用GLUT之外的东西来设置OpenGL环

我准备购买一个用于基本(基于CPU的)并行计算的组件,我注意到这些模块也有GPU。不难发现与OpenCL不兼容,但我很难确定是否能够使用OpenGL接口进行通用GPU编程。我不需要做任何花哨的事;我只是想知道我是否可以将一些矩阵繁重的任务转移到GPU上

我可以在OpenGL中找到一个关于GPGPU编程的有用方法,但它假设可以访问GLUT,这在OpenGL ES 2.0中是不可用的,我在SE上找到的最相关的答案是关于在相同的GPU上做我想做的事情


它是否像使用GLUT之外的东西来设置OpenGL环境并遵循链接教程一样简单?或者我还需要注意其他硬件限制吗?

Mali-400仅支持OpenGL ES 2.0,因此,尽管您可以将其用于非图形计算,但它也有一些严重的限制

  • 片段着色器仅支持
    mediump
    处理,即FP16精度
  • 。。。但它不是IEEE-754 FP16——所以不要期望在极端情况下有完整的IEEE-754语义
  • 整数处理比您预期的要有限(即,它只是假装为整数的浮点数,所以比16位窄)
  • 输出必须通过纹理,这是某种形式的8位每通道颜色格式。您可以将更广泛的数据打包到其中,但这并不理想
  • 将数据返回到CPU是昂贵的(图形内存通常是未缓存的)

Mali-400仅支持OpenGL ES 2.0,因此,尽管您可以将其用于非图形计算,但它也有一些严重的限制

  • 片段着色器仅支持
    mediump
    处理,即FP16精度
  • 。。。但它不是IEEE-754 FP16——所以不要期望在极端情况下有完整的IEEE-754语义
  • 整数处理比您预期的要有限(即,它只是假装为整数的浮点数,所以比16位窄)
  • 输出必须通过纹理,这是某种形式的8位每通道颜色格式。您可以将更广泛的数据打包到其中,但这并不理想
  • 将数据返回到CPU是昂贵的(图形内存通常是未缓存的)