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也支持"计算着色器",但很少有设备支持此功能。