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

时间:2020-04-24 11:34:16

标签: android tensorflow gpu torchvision torchscript

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

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上运行模型之前,我们先指定将计算结果放置在GPU上,例如

model = MyModel()
model.cuda()

但是,当我尝试在Android上运行模型时,是否可以利用此内置GPU?由于采用了八核处理器,因此在我的华为中运算速度更快,但华为显然拥有比三星设备更好的GPU。

2 个答案:

答案 0 :(得分:1)

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

Github Issue

PyTorch Forum

我认为速度差异是由不同的CPU造成的!

答案 1 :(得分:1)

如果您可以从PyTorch移动,TFLite效果很好。

具体来说,对于https://developer.arm.com/ip-products/processors/machine-learning/arm-nn中的Mali GPU-ArmNN将在与TFLite / Caffe2交互的Android NNAPI下工作,将工作适当地分配到CPU / GPU。

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