如何在 Android 上利用 GPU 运行 神经网络模型?

How to run Neural Network model on Android taking advantage of GPU?

有人在 Android 上尝试过 运行 对象检测或 crnn 模型吗?我尝试 运行 crnn 模型(序列化的 pytorch),但在华为 P30 lite 上需要 1 秒,在三星 J4 Core 上需要 5 秒。

Huawei P30 lite
    CPU : octa core processor
    GPU : Mali-G51 MP4

Samsung J4
  CPU : quad core
  GPU : Adreno 308

android 设备中的 GPU 不同于专用 GPU,因为它们没有 VRAM 和电源管理。 CPU 和 GPU 共享相同的 RAM。在使用 GPU 在 PC 上使用 运行ning 模型之前,我们指定将我的计算放在 GPU 上,例如

model = MyModel()
model.cuda()

但是当我尝试在 Android 上 运行 建模时,它是否利用了这个内置 GPU?或者因为这个八核处理器,我的华为计算速度更快,但华为显然比我的三星设备有更好的 GPU。

目前无法在 ARM-GPU 上 运行 pytorch:

Github Issue

PyTorch Forum

我认为速度的差异是 cpu 的差异造成的!

如果您可以从 PyTorch 迁移,TFLite 会很好用。

具体来说,对于您的 Mali GPU,根据 https://developer.arm.com/ip-products/processors/machine-learning/arm-nn - ArmNN 将适当地分包给 CPU/GPU,在与 TFLite / Caffe2 接口的 Android NNAPI 下工作。

NNAPI 信息:https://developer.android.com/ndk/guides/neuralnetworks