Как использовать несколько ядер в Caffe2 на мобильном телефоне? - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть простая модель, состоящая только из сверток (даже без активации между ними), и я хотел сравнить ее в Caffe2 на устройстве ARM Android с использованием нескольких ядер.

Когда я запускаю

./speed_benchmark --init_net=model_for_inference-simplified-init-net.pb --net=model_for_inference-simplified-predict-net.pb --iter=1

он работает на одном ядре.

Тест скорости был построен с использованием:

scripts/build_android.sh -DANDROID_ABI=arm64-v8a -DANDROID_TOOLCHAIN=clang -DBUILD_BINARY=ON

На X86 он был собран с помощью

mkdir build
cd build
cmake .. -DBUILD_BINARY=ON

и установкой OMP_NUM_THREADS= 8 помогает, но не в ARM

Нужно ли менять команду построения для arm, устанавливать некоторые переменные окружения, некоторые двоичные аргументы или что-то еще?

1 Ответ

0 голосов
/ 08 февраля 2019

Я не знал, что мне нужно установить информацию о двигателе в модели, как описано в https://caffe2.ai/docs/mobile-integration.html

После обновления сети прогноза:

for op in predict_net.op:
  if op.type == 'Conv':
    op.engine = 'NNPACK'

больше ядер началииспользоваться

...