RenderScript 是唯一独立于设备的方式在 Android 上运行 GPGPU 代码吗?



RenderScript 是唯一在 Android 上运行 GPGPU 代码的独立于设备的方式吗?我不计算Tegra,因为只有少数手机拥有它。

RenderScript 是官方的 Android 计算平台。 因此,它将在所有Android设备上使用。 它专门设计用于解决在许多不同的设备上运行一个代码库的问题。

好吧,使用 RenderScript 并不一定意味着您的代码将在 GPU 上运行。它还可能使用 CPU 并(希望)在多个 CPU 内核上并行化任务并使用 CPU 矢量指令。但据我所知,你永远无法确定这一点,决策过程有点像黑匣子。

如果你想确保你的代码在GPU上运行,你可以使用OpenGL ES 2.0着色器"模拟"一些GPGPU函数。这将在支持 OpenGL ES 2.0 的所有设备上运行。这取决于你想做什么,但例如,许多图像处理功能可以通过这种方式非常有效地实现。有一个名为ogles_gpgpu的库,它为Android和iOS系统上的GPGPU提供了架构:https://github.com/internaut/ogles_gpgpu

OpenGL ES 3.1也支持"计算着色器",但很少有设备支持此功能。

最新更新