0

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

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

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

4

1 回答 1

2

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

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