Tensorflow Lite: плохая производительность графического процессора

#android #tensorflow #benchmarking #tensorflow-lite

#Android #tensorflow #сравнительный анализ #tensorflow-lite

Вопрос:

Я провожу несколько тестов, запуская пользовательскую модель (4 полностью подключенных слоя по 400 единиц в каждом) на устройстве Android. Я тестирую производительность среды выполнения с помощью тестового приложения для Android Tensorflow Lite. Однако я испытываю очень странное поведение: сравнительный анализ модели с использованием графического процессора приводит к худшей производительности, чем при использовании только процессоров.

Это производительность с процессорами:

Среднее время вывода в США: Прогрев: 38,8272, Инициализация: 465, Вывод: 38,8438, общий максимальный размер резидентного набора = 0 МБ, общий размер malloc-ed = 0 МБ, выделенный / отображаемый размер = -0,273354 МБ

хотя это производительность, которую я получаю с помощью графического процессора:

Среднее время вывода в США: Прогрев: 418,266, Инициализация: 297403, Вывод: 1231,89, общий максимальный размер резидентного набора = 29,2383 МБ, общий размер malloc-ed = 0 МБ, размер выделенного / mmapped в использовании = 0,192513 МБ

Как вы можете заметить, время вывода с графическим процессором примерно в 4 раза превышает время выполнения с процессорами. Как это возможно?

Это команда, которую я использую для сравнения модели:

 adb shell am start -S -n org.tensorflow.lite.benchmark/.BenchmarkModelActivity 
--es args '"--graph=<model_path> --num_threads=4 --num_runs=10000 --use_gpu=true"'
  

Комментарии:

1. На каком оборудовании?

2. Я пробовал 3 разных смартфона: Nexus 5, Nexus 6 и Xiaomi Mi 9T.

3. Есть предложения?