【问题标题】:Using Mali-400 GPU (OpenGL ES 2.0) for general purpose computation?使用 Mali-400 GPU (OpenGL ES 2.0) 进行通用计算?
【发布时间】:2019-12-14 05:59:58
【问题描述】:

我正准备购买SOPINE A64 modulescluster 用于基本(基于CPU)并行计算,我注意到这些模块也有GPU。不难发现Mali-400 与 OpenCL 兼容,但我无法确认是否能够使用 OpenGL 接口进行通用 GPU 编程。我不需要做任何花哨的事情;我只是想知道是否可以将一些矩阵繁重的任务卸载到 GPU。

我可以在 OpenGL 中的 GPGPU 编程上找到有用的 tutorial,但它假定访问 GLUT,这在 OpenGL ES 2.0 上不可用,我在 SE 上找到的最相关的答案是关于做我想做的事在 iOS 上,但不是使用相同的 GPU。

是否像使用 GLUT 之外的其他东西来设置 OpenGL 环境然后按照链接教程进行操作一样简单?还是我需要注意其他硬件限制?

【问题讨论】:

    标签: opengl-es opengl-es-2.0 gpgpu mali


    【解决方案1】:

    Mali-400 仅支持 OpenGL ES 2.0,因此虽然您可以将其用于非图形计算,但请注意它有一些严重的限制。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      • 2012-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-13
      • 2012-02-17
      相关资源
      最近更新 更多