14

我现在在 Android 上编程,我想知道我们现在是否可以在 Android 上使用 GPGPU?我曾经听说 Renderscript 将来可能会在 GPGPU 上执行。但我想知道我们现在是否可以在 GPGPU 上编程?如果我可以在 Android GPGPU 上编程,我在哪里可以找到一些教程或示例程序?感谢您的帮助和建议。

到目前为止,我知道 OpenGL ES 库现在使用 GPU 进行加速,但我想使用 GPU 进行计算。我想做的是加速计算,所以我希望使用一些API库,比如OpenCL。

4

4 回答 4

9

2021-4 月更新

Google 已宣布弃用 RenderScript API,转而支持Android 12 中的 Vulkan。

Android 7.0 兼容性定义文档 - 3.3.1.1中提供了制造商包含 Vulkan API 的选项。图形库

原始答案

其实Renderscript Compute此时并不使用GPU,而是为它设计的

来自在 Android 平台上工作的 Romain Guy:

  • Renderscript Compute 目前受 CPU 限制,但使用 for_each 构造,它将立即利用多个内核
  • Renderscript Compute 设计为在 GPU 和/或 CPU 上运行
  • Renderscript Compute 避免了编写 JNI 代码并为您提供独立于架构的高性能结果
  • 从 Android 4.1 开始,Renderscript Compute 可以受益于 SIMD 优化(ARM 上的 NEON)

https://groups.google.com/d/msg/android-developers/m194NFf_ZqA/Whq4qWisv5MJ

于 2012-09-09T06:39:37.777 回答
3

是的,有可能 。

您可以使用 renderscript 或 opengGL ES 2.0 。

renderscript 在 android 3.0 及更高版本上可用,openGL ES 2.0 在大约 95% 的设备上可用。

于 2012-09-09T05:56:40.893 回答
3

从 Android 4.2 开始,Renderscript 可以在计算中涉及 GPU(在某些情况下)。更多信息在这里:http ://android-developers.blogspot.com/2013/01/evolution-of-renderscript-performance.html

据我了解,ScriptIntrinsic子类经过优化,可以在兼容硬件上的 GPU 上运行(例如,带有 Mali T604 的 Nexus10)。文档:http: //developer.android.com/reference/android/renderscript/ScriptIntrinsic.html

当然,您可以决定使用 OpenCL,但 Renderscript 保证(由 Google,作为 Android 本身的一部分)即使在不支持 GPGPU 计算的硬件上也能运行,并且将使用硬件支持的任何其他可用加速手段。继续运行。

于 2013-03-05T09:27:59.447 回答
1

有多种选择: 您可以使用几乎所有设备都支持的 OpenGL ES 2.0,但 GPGPU 的功能有限。您可以使用 OpenGL ES 3.0,使用它可以在 GPU 处理方面做更多的事情。或者您可以使用 RenderScript,但这是特定于平台的,而且不会对您的算法是在 GPU 上运行还是在 CPU 上运行产生任何影响。关于这个主题的总结可以在这篇硕士论文中找到:Parallel Computing for Digital Signal Processing on Mobile Device GPUs

您还应该查看ogles_gpgpu,它允许在 Android 和 iOS 上通过 OpenGL ES 2.0 进行 GPGPU。

于 2015-01-11T13:00:59.247 回答