如何在 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:
我认为速度的差异是 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
有人在 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:
我认为速度的差异是 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