Как запустить модель нейронной сети на Android с использованием графического процессора?

Кто-нибудь пробовал запустить обнаружение объектов или модель crnn на Android? Я попытался запустить модель crnn (сериализованный pytorch), но это занимает 1 с на Huawei P30 lite и 5 с на Samsung J4 Core.

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

Samsung J4
  CPU : quad core
  GPU : Adreno 308

Графические процессоры в устройстве Android отличаются от выделенных графических процессоров в том смысле, что у них нет видеопамяти и управления питанием. И CPU, и GPU используют одну и ту же RAM. Перед запуском модели на ПК с графическим процессором мы указываем, что мои вычисления нужно разместить на графическом процессоре, например

model = MyModel()
model.cuda()

Но когда я пытаюсь запустить модель на Android, использует ли она преимущества встроенного графического процессора? или вычисления в моем Huawei быстрее из-за этого восьмиядерного процессора, но у Huawei явно лучший графический процессор, чем у моего устройства Samsung.

2 ответа

Решение

На данный момент невозможно запустить pytorch на ARM-GPU:

Проблема с Github

PyTorch Форум

Я думаю, что разница в скорости связана с разными процессорами!

TFLite работает хорошо, если вы можете перейти с PyTorch.

В частности, для вашего графического процессора Mali в соответствии с https://developer.arm.com/ip-products/processors/machine-learning/arm-nn - ArmNN будет передавать работу соответственно CPU/GPU, работая под Android NNAPI, который взаимодействует с TFLite / Caffe2.

Информация о NNAPI: https://developer.android.com/ndk/guides/neuralnetworks

Другие вопросы по тегам