Как запустить модель нейронной сети на 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:
Я думаю, что разница в скорости связана с разными процессорами!
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